mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-25 02:01:02 -05:00
super nasty bug fix
This commit is contained in:
parent
945d5aad5d
commit
059754c8b3
7 changed files with 261 additions and 1 deletions
106
.automation/test/ruby/.gitignore
vendored
Normal file
106
.automation/test/ruby/.gitignore
vendored
Normal file
|
@ -0,0 +1,106 @@
|
|||
|
||||
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# TypeScript v1 declaration files
|
||||
typings/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Microbundle cache
|
||||
.rpt2_cache/
|
||||
.rts2_cache_cjs/
|
||||
.rts2_cache_es/
|
||||
.rts2_cache_umd/
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
.env.test
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
|
||||
# Next.js build output
|
||||
.next
|
||||
|
||||
# Nuxt.js build / generate output
|
||||
.nuxt
|
||||
dist
|
||||
|
||||
# Gatsby files
|
||||
.cache/
|
||||
# Comment in the public line in if your project uses Gatsby and *not* Next.js
|
||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||
# public
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
21
.automation/test/ruby/LICENSE
Normal file
21
.automation/test/ruby/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2020 Dave McKinstry
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
5
.automation/test/ruby/README0.md
Normal file
5
.automation/test/ruby/README0.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# csv-issue-import
|
||||
|
||||
Sample script to import a CSV file (assumedly from an Azure Boards export) to GitHub issues.
|
||||
|
||||
This script is a starting point - you'll need to update for user name mappings, your own GITHUB_TOKEN, repo name, etc. It isn't a complex or robust solution, but it does show an approach to map into GitHub issues...
|
77
.automation/test/ruby/importWIT.js
Normal file
77
.automation/test/ruby/importWIT.js
Normal file
|
@ -0,0 +1,77 @@
|
|||
const fs = require('fs');
|
||||
const axios=require('axios');
|
||||
|
||||
// UPDATE THESE (and set your GITHUB_TOKEN in the environment)
|
||||
const owner = 'LukasTestOrganization';
|
||||
const repo = 'TestImportRepo';
|
||||
const token = process.env.GITHUB_TOKEN
|
||||
|
||||
// Configure HTTP client
|
||||
const url = `https://api.github.com/repos/${owner}/${repo}/issues`;
|
||||
axios.defaults.headers.post.Accept = "application/vnd.github.v3+json";
|
||||
axios.defaults.headers.post.Authorization = `token ${token}`;
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
// getGitHubUser function - maps TFS users to GitHub users
|
||||
const userMap = [
|
||||
[ "Sample User1", "admiralawkbar"],
|
||||
[ "Sample User2", ""], // Not mapped in the GitHub side
|
||||
[ "No Suchuser", "admiralawkbar"]
|
||||
];
|
||||
|
||||
function getGitHubUser( user ) {
|
||||
var foundUser = userMap.find( function( value, index, results) {
|
||||
return (user === value[0]);
|
||||
});
|
||||
if (foundUser === undefined) {
|
||||
return "";
|
||||
} else {
|
||||
return foundUser[1];
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
// createIssue function
|
||||
// Work Item Type and state are stored as a labels
|
||||
function createIssue( title, workitem_type, state, description, assignee ) {
|
||||
var body = {
|
||||
title: title,
|
||||
body: description,
|
||||
assignees: [ getGitHubUser(assignee) ],
|
||||
labels: [ workitem_type, state ]
|
||||
};
|
||||
|
||||
var response = axios.post(url, body)
|
||||
.then((res) => {
|
||||
var issueNumber = res.data.number;
|
||||
console.log(`Created issue #${issueNumber}`);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error(error)
|
||||
});
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
fs.readFile('wit.csv', function(err, charBuffer) {
|
||||
var fileContents = charBuffer.toString();
|
||||
var lines = fileContents.split('\n');
|
||||
// The first line is the server name, so skip it
|
||||
// The second line is column headers (skipped) which is hard coded as:
|
||||
// ID,Work Item Type,Title,Assigned To,State,Tags
|
||||
// We are capturing all of it as historical description
|
||||
for( var i=2; i< lines.length; i++ ) {
|
||||
columns = lines[i].split(',');
|
||||
var id = columns[0];
|
||||
var workitem_type = columns[1];
|
||||
var title = columns[2];
|
||||
var user = columns[3];
|
||||
var state = columns[4];
|
||||
var tags = columns[5];
|
||||
|
||||
var description = `Imported ${workitem_type} #${id} from TFS, TITLE: ${title}, ASSIGNED TO: ${user}, STATE: ${state}, TAGS: ${tags}`;
|
||||
|
||||
if (id > 0 ) {
|
||||
createIssue( title, workitem_type, state, description, user );
|
||||
}
|
||||
}
|
||||
});
|
35
.automation/test/ruby/package-lock.json
generated
Normal file
35
.automation/test/ruby/package-lock.json
generated
Normal file
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"axios": {
|
||||
"version": "0.19.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
|
||||
"integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
|
||||
"requires": {
|
||||
"follow-redirects": "1.5.10"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.5.10",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
|
||||
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
|
||||
"requires": {
|
||||
"debug": "=3.1.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
}
|
||||
}
|
||||
}
|
12
.automation/test/ruby/wit.csv
Normal file
12
.automation/test/ruby/wit.csv
Normal file
|
@ -0,0 +1,12 @@
|
|||
Project: etc... Ignore
|
||||
ID,Work Item Type,Title,Assigned To,State,Tags
|
||||
1,Task,Sample task #1,Sample User1,Closed,
|
||||
2,Task,Sample task #2,Sample User1,Closed,
|
||||
43,Bug,Sample bug #1,Sample User2,Closed,
|
||||
44,Task,Sample task #3,Sample User1,Closed,
|
||||
55,Bug,Sample bug #2,Sample User3,Resolved,
|
||||
107,Task,Sample task #4,,Active,
|
||||
108,Task,Sample task #5,,Active,
|
||||
117,Test Case,Sample Test Case A,Sample User2,Closed,
|
||||
118,Issue,Sample Issue X,User X,Closed,
|
||||
2624,Task,Sample Task #6,Somebody Else,Active,
|
|
|
@ -72,7 +72,11 @@ RUN git clone https://github.com/replicatedhq/dockerfilelint.git && cd /dockerfi
|
|||
####################
|
||||
# Run GEM installs #
|
||||
####################
|
||||
RUN gem install rubocop:0.74 rubocop-rails rubocop-github:0.13
|
||||
RUN gem install rubocop:0.74.0 rubocop-rails rubocop-github:0.13.0
|
||||
|
||||
# Need to fix the version as it installs 'rubocop:0.85.1' as a dep, and forces the default
|
||||
# We then need to promot the correct verion, uninstall, and fix deps
|
||||
RUN sh -c 'gem install --default rubocop:0.74.0; yes | gem uninstall rubocop:0.85.1 -a -x -I; gem install rubocop:0.74.0'
|
||||
|
||||
######################
|
||||
# Install shellcheck #
|
||||
|
|
Loading…
Reference in a new issue