From 50a7b6e028fa92f5d5591be87fe215e1eae4871b Mon Sep 17 00:00:00 2001 From: codingCookie Date: Sun, 23 Oct 2016 16:09:23 +0200 Subject: [PATCH 1/2] just autoformat --- index.js | 81 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/index.js b/index.js index ece5647..95d4335 100644 --- a/index.js +++ b/index.js @@ -21,39 +21,39 @@ Promise.promisifyAll(github.issues); Promise.promisifyAll(github.repos); function getRepositories(user) { - return github.repos.getForUser({ - user: user, - type: 'owner' - }); + return github.repos.getForUser({ + user: user, + type: 'owner' + }); } function createLabel(repository, owner, name, color) { - return github.issues.createLabel({ - owner: owner, - repo: repository.name, - name: name, - color: color - }); + return github.issues.createLabel({ + owner: owner, + repo: repository.name, + name: name, + color: color + }); } function getIssues(repository, owner) { - return github.issues.getForRepo({ - owner: owner, - repo: repository.name - }).each(issue => issue.repo = repository); + return github.issues.getForRepo({ + owner: owner, + repo: repository.name + }).each(issue => issue.repo = repository); } function addLabels(repository, issue, owner, labels) { - github.issues.addLabels({ - owner: owner, - repo: repository.name, - number: issue.number, - body: labels - }); + github.issues.addLabels({ + owner: owner, + repo: repository.name, + number: issue.number, + body: labels + }); } function loginBasic() { - return inquirer.prompt([ + return inquirer.prompt([ { type: 'input', name: 'username', @@ -66,7 +66,7 @@ function loginBasic() { } ]).then(login => { github.authenticate({ - type: "basic", + type: "basic", username: login.username, password: login.password }); @@ -74,10 +74,13 @@ function loginBasic() { } function loginToken() { - return new Promise(function(resolve, reject) { - fs.readFile('.access-token', function(error, token) { - if(error) reject(error); - else resolve(github.authenticate({ type: "token", token: token })); + return new Promise(function (resolve, reject) { + fs.readFile('.access-token', function (error, token) { + if (error) { + reject(error); + } else { + resolve(github.authenticate({type: "token", token: token})); + } }); }); } @@ -90,11 +93,12 @@ function createToken() { message: 'Do you wish to create an access token to GitHub?' } ]).then(answer => { - if(answer.confirmToken) + if (answer.confirmToken) { return github.authorization.create({ scopes: ['repo'], note: 'github-manager-cli' }).then(result => fs.writeFile('.access-token', result.token)); + } }); } @@ -119,11 +123,12 @@ Promise.coroutine(function*() { } ]); - if(selectedRepositories.length == 0) + if (selectedRepositories.length == 0) { return; + } const issues = yield Promise.all(selectedRepositories.map(repo => getIssues(repo, owner))) - .reduce((all, current) => all.concat(current)); + .reduce((all, current) => all.concat(current)); const {selectedIssues} = yield inquirer.prompt([ { @@ -134,8 +139,9 @@ Promise.coroutine(function*() { } ]); - if(selectedIssues.length === 0) + if (selectedIssues.length === 0) { return; + } const label = yield inquirer.prompt([ { @@ -152,24 +158,25 @@ Promise.coroutine(function*() { ]); yield Promise.resolve(selectedRepositories) - .each(repo => createLabel(repo, owner, label.name, label.color)) - .then(() => selectedIssues, () => selectedIssues) - .each(issue => addLabels(issue.repo, issue, owner, [label.name])) + .each(repo => createLabel(repo, owner, label.name, label.color)) + .then(() => selectedIssues, () => selectedIssues) + .each(issue => addLabels(issue.repo, issue, owner, [label.name])) })().catch(e => displayError(e)); function displayError(error) { - if(!error) { + if (!error) { console.log('Unknown error :/'); return; } let errorMessage = error; - if(error.message && typeof error.message == 'string') { + if (error.message && typeof error.message == 'string') { const json = JSON.parse(error.message); - if(json && json.message) { + if (json && json.message) { errorMessage = json.message; - } else + } else { errorMessage = error.message; + } } console.log(`Error: ${errorMessage}`); From c11e04d0d3b180a7629f88d08ab50047ae7a81c6 Mon Sep 17 00:00:00 2001 From: codingCookie Date: Sun, 23 Oct 2016 16:42:59 +0200 Subject: [PATCH 2/2] 99xt/github-label-maker#8 add config & function to add predefined labels to selected repos --- config/labels.js | 4 ++++ index.js | 24 +++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 config/labels.js diff --git a/config/labels.js b/config/labels.js new file mode 100644 index 0000000..c0650e8 --- /dev/null +++ b/config/labels.js @@ -0,0 +1,4 @@ +module.exports = [ + {name: 'in progress', color: 'cccccc'}, + {name: 'open', color: 'cccccc'} +]; \ No newline at end of file diff --git a/index.js b/index.js index 95d4335..50896e1 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,7 @@ const GitHubApi = require("github"); const Promise = require('bluebird'); const inquirer = require('inquirer'); const fs = require('fs'); +const predefinedLabels = require('./config/labels'); const github = new GitHubApi({ debug: false, @@ -33,7 +34,13 @@ function createLabel(repository, owner, name, color) { repo: repository.name, name: name, color: color - }); + }, function(err, res) { + if (err && err.code == 422) { + console.log("Label: '" + name + "' already exists in repo '" + repository.name + "'"); + } else { + console.log("Label: '" + name + "' created in repo '" + repository.name + "'"); + } + }) } function getIssues(repository, owner) { @@ -127,6 +134,20 @@ Promise.coroutine(function*() { return; } + const {addPredefinedLabels} = yield inquirer.prompt([ + { + type: 'confirm', + name: 'addPredefinedLabels', + message: 'Do you want to add your predefined labels to the selected Repositories?' + } + ]); + + if (addPredefinedLabels) { + yield Promise.resolve(predefinedLabels) + .each(label => selectedRepositories.map(repo => createLabel(repo, owner, label.name, label.color))) + return + } + const issues = yield Promise.all(selectedRepositories.map(repo => getIssues(repo, owner))) .reduce((all, current) => all.concat(current)); @@ -161,6 +182,7 @@ Promise.coroutine(function*() { .each(repo => createLabel(repo, owner, label.name, label.color)) .then(() => selectedIssues, () => selectedIssues) .each(issue => addLabels(issue.repo, issue, owner, [label.name])) + })().catch(e => displayError(e)); function displayError(error) {