mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-22 08:41: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 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 #
|
# Install shellcheck #
|
||||||
|
|
Loading…
Reference in a new issue