Comparing version 0.3.2-rc.1 to 0.3.2
@@ -33,3 +33,2 @@ 'use strict'; | ||
const BITBUCKET_TOKEN = (0, _config.getBitbucketToken)(); | ||
const GIT_REPO_NAME = (0, _gitCli.getRemoteRepositoryName)(); | ||
@@ -51,2 +50,3 @@ const GIT_REPO_ORIGIN_USERNAME = (0, _gitCli.getRemoteUsername)(); | ||
function bitbucketRequest(url, params = {}, method) { | ||
const BITBUCKET_TOKEN = (0, _config.getBitbucketToken)(); | ||
return (0, _axios2.default)({ | ||
@@ -53,0 +53,0 @@ url, |
@@ -6,4 +6,8 @@ 'use strict'; | ||
}); | ||
exports.CONFIG_FILE_PATH = undefined; | ||
exports.requireLogin = exports.CONFIG_FILE_PATH = undefined; | ||
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); | ||
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
@@ -21,2 +25,20 @@ | ||
let requireLogin = exports.requireLogin = (() => { | ||
var _ref = (0, _asyncToGenerator3.default)(function* () { | ||
const token = getBitbucketToken(); | ||
if (!token || token.length < 1) { | ||
console.log(_chalk2.default.yellow('This feature requires bitbucket access.')); | ||
console.log(_chalk2.default.cyan('Let\'s login to your account!')); | ||
return runSetup(); | ||
} | ||
return _promise2.default.resolve('success'); | ||
}); | ||
return function requireLogin() { | ||
return _ref.apply(this, arguments); | ||
}; | ||
})(); | ||
exports.getConfig = getConfig; | ||
@@ -23,0 +45,0 @@ exports.getBitbucketToken = getBitbucketToken; |
@@ -36,5 +36,5 @@ #!/usr/bin/env node | ||
promptPullRequestCommand({ status: _args.status, create: _args.create }).catch(e => { | ||
console.log('e = ', e); | ||
console.log(_chalk2.default.magenta('Sorry, there was an error')); | ||
if (e) { | ||
console.log(_chalk2.default.magenta('Sorry, there was an error')); | ||
console.log(e); | ||
} | ||
@@ -54,5 +54,5 @@ }); | ||
jira().catch(e => { | ||
console.log('e = ', e); | ||
console.log(_chalk2.default.magenta('Sorry, there was an error')); | ||
if (e) { | ||
console.log(_chalk2.default.magenta('Sorry, there was an error')); | ||
console.log(e); | ||
} | ||
@@ -59,0 +59,0 @@ }); |
@@ -30,2 +30,4 @@ 'use strict'; | ||
try { | ||
yield (0, _config.requireLogin)(); | ||
const [statuses, activity] = yield _promise2.default.all([(0, _bitbucket.bitbucketRequest)(pullrequest.links.statuses.href).then(function ({ values }) { | ||
@@ -97,11 +99,13 @@ return values; | ||
var _ref3 = (0, _asyncToGenerator3.default)(function* () { | ||
const currentBranch = (0, _gitCli.getBranch)(); | ||
const prObj = { | ||
source: { branch: { name: currentBranch } }, | ||
title: '', | ||
description: '', | ||
reviewers: [] | ||
}; | ||
const spinner = (0, _ora2.default)(); | ||
try { | ||
yield (0, _config.requireLogin)(); | ||
try { | ||
const currentBranch = (0, _gitCli.getBranch)(); | ||
const prObj = { | ||
source: { branch: { name: currentBranch } }, | ||
title: '', | ||
description: '', | ||
reviewers: [] | ||
}; | ||
const { createpr } = yield _inquirer2.default.prompt({ | ||
@@ -126,2 +130,3 @@ type: 'confirm', | ||
spinner.start('Preparing pull request...'); | ||
const [repository, defaultReviewers = []] = yield _promise2.default.all([(0, _bitbucket.getRepository)(), | ||
@@ -134,2 +139,3 @@ // if default reviewers has an error, skip this step | ||
spinner.succeed('All set!'); | ||
if (repository) { | ||
@@ -226,2 +232,3 @@ const { | ||
spinner.start('Creating your pull request...'); | ||
const pullRequest = yield (0, _bitbucket.createPullRequest)((0, _extends3.default)({}, prObj, { | ||
@@ -234,4 +241,4 @@ destination: { branch: { name: destination } }, | ||
})); | ||
spinner.succeed('Pull request created!'); | ||
console.log(`${_chalk2.default.green('Pull request created!')}`); | ||
(0, _log.logPRLink)(pullRequest.links.html.href); | ||
@@ -242,2 +249,3 @@ } | ||
} catch (e) { | ||
spinner.fail('Whoops!'); | ||
const { fields } = e || {}; | ||
@@ -252,4 +260,2 @@ const { source = [] } = fields || {}; | ||
}); | ||
} else { | ||
console.log(e); | ||
} | ||
@@ -268,10 +274,16 @@ | ||
var _ref4 = (0, _asyncToGenerator3.default)(function* () { | ||
const spinner = (0, _ora2.default)(); | ||
try { | ||
yield (0, _config.requireLogin)(); | ||
spinner.start('Getting pull requests...'); | ||
const pullrequests = yield (0, _bitbucket.getPullRequests)(); | ||
if (pullrequests.length === 0) { | ||
console.log(_chalk2.default.yellow('No pull requests available')); | ||
spinner.succeed(`${_chalk2.default.green('All clear!')}`); | ||
console.log(_chalk2.default.cyan('No pull requests available.\n')); | ||
return true; | ||
} | ||
console.log(`\n${pullrequests.length} Pull request(s)`); | ||
console.log(''); | ||
spinner.succeed(`Found ${pullrequests.length} pull request(s)`); | ||
@@ -324,2 +336,3 @@ const prGroups = yield _promise2.default.all(pullrequests.map((() => { | ||
} catch (e) { | ||
spinner.fail('Whoops, something happened!'); | ||
throw e; | ||
@@ -336,4 +349,7 @@ } | ||
var _ref6 = (0, _asyncToGenerator3.default)(function* (pullrequest) { | ||
const spinner = (0, _ora2.default)(); | ||
try { | ||
spinner.start(); | ||
const actions = yield getPullRequestActions(pullrequest); | ||
spinner.stop(); | ||
const { action } = yield _inquirer2.default.prompt({ | ||
@@ -358,3 +374,5 @@ type: 'list', | ||
if (action) { | ||
spinner.start(); | ||
const data = yield action(); | ||
spinner.succeed(`Done`); | ||
(0, _log.logPRLink)(pullrequest.links.html.href); | ||
@@ -368,2 +386,3 @@ if (data && data.values) { | ||
} catch (e) { | ||
spinner.fail('Whoops, something happened'); | ||
throw e; | ||
@@ -380,8 +399,15 @@ } | ||
var _ref7 = (0, _asyncToGenerator3.default)(function* () { | ||
const spinner = (0, _ora2.default)(); | ||
try { | ||
yield (0, _config.requireLogin)(); | ||
spinner.start('Getting pull requests...'); | ||
const list = yield (0, _bitbucket.getPullRequests)(); | ||
if (list.length === 0) { | ||
return console.log('No pull requests found'); | ||
spinner.succeed(`${_chalk2.default.green('All clear!')}`); | ||
console.log(_chalk2.default.cyan('No pull requests available.\n')); | ||
return true; | ||
} | ||
spinner.stop(); | ||
@@ -414,3 +440,5 @@ const { pullrequest } = yield _inquirer2.default.prompt({ | ||
spinner.start('Getting summary...'); | ||
yield renderPRSummary(pullrequest); | ||
spinner.stop(); | ||
@@ -441,2 +469,6 @@ return yield promptPullRequestActions(pullrequest); | ||
var _ora = require('ora'); | ||
var _ora2 = _interopRequireDefault(_ora); | ||
var _config = require('./config'); | ||
@@ -443,0 +475,0 @@ |
{ | ||
"name": "hiflow", | ||
"version": "0.3.2-rc.1", | ||
"version": "0.3.2", | ||
"description": "A pull request and gitflow management tool", | ||
@@ -25,12 +25,13 @@ "main": "lib/index.js", | ||
"dependencies": { | ||
"axios": "^0.16.2", | ||
"axios": "^0.18.0", | ||
"babel-runtime": "^6.23.0", | ||
"chalk": "^2.3.0", | ||
"change-case": "^3.0.1", | ||
"inquirer": "^4.0.0", | ||
"inquirer": "^5.2.0", | ||
"inquirer-chalk-pipe": "^1.2.0", | ||
"js-yaml": "^3.9.0", | ||
"lodash": "^4.17.4", | ||
"ora": "^2.1.0", | ||
"qs": "^6.5.0", | ||
"yargs": "^8.0.2" | ||
"yargs": "^11.0.0" | ||
}, | ||
@@ -40,3 +41,3 @@ "devDependencies": { | ||
"babel-core": "^6.26.0", | ||
"babel-eslint": "^7.2.3", | ||
"babel-eslint": "^8.2.3", | ||
"babel-jest": "^22.0.4", | ||
@@ -47,4 +48,4 @@ "babel-plugin-add-module-exports": "^0.2.1", | ||
"babel-preset-env": "^1.6.1", | ||
"chai": "^3.5.0", | ||
"cross-env": "^4.0.0", | ||
"chai": "^4.1.2", | ||
"cross-env": "^5.1.5", | ||
"eslint": "^4.14.0", | ||
@@ -54,9 +55,9 @@ "eslint-config-airbnb-base": "^12.1.0", | ||
"eslint-plugin-import": "^2.0.0", | ||
"eslint-plugin-mocha": "^4.9.0", | ||
"eslint-plugin-mocha": "^5.0.0", | ||
"eslint-plugin-promise": "^3.5.0", | ||
"eslint-plugin-standard": "^3.0.1", | ||
"flow-bin": "^0.45.0", | ||
"flow-bin": "^0.72.0", | ||
"jest": "^22.0.4", | ||
"jest-cli": "^22.0.4", | ||
"mocha": "^3.3.0", | ||
"mocha": "^5.2.0", | ||
"regenerator-runtime": "^0.11.1", | ||
@@ -63,0 +64,0 @@ "rimraf": "^2.6.1" |
# hiflow | ||
[![Greenkeeper badge](https://badges.greenkeeper.io/hixme/hiflow.svg)](https://greenkeeper.io/) | ||
A tool to improve git workflows via cli. Provides pull request management | ||
@@ -4,0 +6,0 @@ when the repo is hosted on bitbucket. |
@@ -10,3 +10,2 @@ import axios from 'axios' | ||
const BITBUCKET_TOKEN = getBitbucketToken() | ||
const GIT_REPO_NAME = getRemoteRepositoryName() | ||
@@ -28,2 +27,3 @@ const GIT_REPO_ORIGIN_USERNAME = getRemoteUsername() | ||
export function bitbucketRequest(url, params = {}, method) { | ||
const BITBUCKET_TOKEN = getBitbucketToken() | ||
return axios({ | ||
@@ -30,0 +30,0 @@ url, |
@@ -137,2 +137,14 @@ import fs from 'fs' | ||
export async function requireLogin() { | ||
const token = getBitbucketToken() | ||
if (!token || token.length < 1) { | ||
console.log(chalk.yellow('This feature requires bitbucket access.')) | ||
console.log(chalk.cyan('Let\'s login to your account!')) | ||
return runSetup() | ||
} | ||
return Promise.resolve('success') | ||
} | ||
function handlePrompt({ | ||
@@ -139,0 +151,0 @@ username, |
@@ -28,5 +28,5 @@ #!/usr/bin/env node | ||
.catch((e) => { | ||
console.log('e = ', e) | ||
console.log(chalk.magenta('Sorry, there was an error')) | ||
if (e) { | ||
console.log(chalk.magenta('Sorry, there was an error')) | ||
console.log(e) | ||
} | ||
@@ -45,5 +45,5 @@ }) | ||
.catch((e) => { | ||
console.log('e = ', e) | ||
console.log(chalk.magenta('Sorry, there was an error')) | ||
if (e) { | ||
console.log(chalk.magenta('Sorry, there was an error')) | ||
console.log(e) | ||
} | ||
@@ -50,0 +50,0 @@ }) |
import inquirer from 'inquirer' | ||
import chalk from 'chalk' | ||
import ora from 'ora' | ||
import { | ||
getBitbucketUsername, | ||
requireLogin, | ||
} from './config' | ||
import { | ||
@@ -41,2 +44,4 @@ bitbucketRequest, | ||
try { | ||
await requireLogin() | ||
const [statuses, activity] = await Promise.all([ | ||
@@ -98,11 +103,13 @@ bitbucketRequest(pullrequest.links.statuses.href).then(({ values }) => values), | ||
async function promptCreatePullRequest() { | ||
const currentBranch = getBranch() | ||
const prObj = { | ||
source: { branch: { name: currentBranch } }, | ||
title: '', | ||
description: '', | ||
reviewers: [], | ||
} | ||
const spinner = ora() | ||
try { | ||
await requireLogin() | ||
try { | ||
const currentBranch = getBranch() | ||
const prObj = { | ||
source: { branch: { name: currentBranch } }, | ||
title: '', | ||
description: '', | ||
reviewers: [], | ||
} | ||
const { createpr } = await inquirer.prompt({ | ||
@@ -121,2 +128,3 @@ type: 'confirm', | ||
spinner.start('Preparing pull request...') | ||
const [repository, defaultReviewers = []] = await Promise.all([ | ||
@@ -129,2 +137,3 @@ getRepository(), | ||
spinner.succeed('All set!') | ||
if (repository) { | ||
@@ -204,2 +213,3 @@ const { | ||
spinner.start('Creating your pull request...') | ||
const pullRequest = await createPullRequest({ | ||
@@ -213,4 +223,4 @@ ...prObj, | ||
}) | ||
spinner.succeed('Pull request created!') | ||
console.log(`${chalk.green('Pull request created!')}`) | ||
logPRLink(pullRequest.links.html.href) | ||
@@ -221,2 +231,3 @@ } | ||
} catch (e) { | ||
spinner.fail('Whoops!') | ||
const { fields } = e || {} | ||
@@ -231,4 +242,2 @@ const { source = [] } = fields || {} | ||
}) | ||
} else { | ||
console.log(e) | ||
} | ||
@@ -251,10 +260,16 @@ | ||
async function runStatus() { | ||
const spinner = ora() | ||
try { | ||
await requireLogin() | ||
spinner.start('Getting pull requests...') | ||
const pullrequests = await getPullRequests() | ||
if (pullrequests.length === 0) { | ||
console.log(chalk.yellow('No pull requests available')) | ||
spinner.succeed(`${chalk.green('All clear!')}`) | ||
console.log(chalk.cyan('No pull requests available.\n')) | ||
return true | ||
} | ||
console.log(`\n${pullrequests.length} Pull request(s)`) | ||
console.log('') | ||
spinner.succeed(`Found ${pullrequests.length} pull request(s)`) | ||
@@ -298,2 +313,3 @@ const prGroups = await Promise.all(pullrequests.map(async (pullrequest) => { | ||
} catch (e) { | ||
spinner.fail('Whoops, something happened!') | ||
throw e | ||
@@ -304,4 +320,7 @@ } | ||
async function promptPullRequestActions(pullrequest) { | ||
const spinner = ora() | ||
try { | ||
spinner.start() | ||
const actions = await getPullRequestActions(pullrequest) | ||
spinner.stop() | ||
const { action } = await inquirer.prompt({ | ||
@@ -320,3 +339,5 @@ type: 'list', | ||
if (action) { | ||
spinner.start() | ||
const data = await action() | ||
spinner.succeed(`Done`) | ||
logPRLink(pullrequest.links.html.href) | ||
@@ -330,2 +351,3 @@ if (data && data.values) { | ||
} catch (e) { | ||
spinner.fail('Whoops, something happened') | ||
throw e | ||
@@ -336,8 +358,15 @@ } | ||
async function promptPullRequestList() { | ||
const spinner = ora() | ||
try { | ||
await requireLogin() | ||
spinner.start('Getting pull requests...') | ||
const list = await getPullRequests() | ||
if (list.length === 0) { | ||
return console.log('No pull requests found') | ||
spinner.succeed(`${chalk.green('All clear!')}`) | ||
console.log(chalk.cyan('No pull requests available.\n')) | ||
return true | ||
} | ||
spinner.stop() | ||
@@ -364,3 +393,5 @@ const { pullrequest } = await inquirer.prompt({ | ||
spinner.start('Getting summary...') | ||
await renderPRSummary(pullrequest) | ||
spinner.stop() | ||
@@ -367,0 +398,0 @@ return await promptPullRequestActions(pullrequest) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
339120
3034
96
11
+ Addedora@^2.1.0
+ Addedaxios@0.18.1(transitive)
+ Addedcli-spinners@1.3.1(transitive)
+ Addedcliui@4.1.0(transitive)
+ Addedclone@1.0.4(transitive)
+ Addedcross-spawn@6.0.6(transitive)
+ Addeddefaults@1.0.4(transitive)
+ Addedend-of-stream@1.4.4(transitive)
+ Addedexeca@1.0.0(transitive)
+ Addedfollow-redirects@1.5.10(transitive)
+ Addedget-stream@4.1.0(transitive)
+ Addedinvert-kv@2.0.0(transitive)
+ Addedis-buffer@2.0.5(transitive)
+ Addedlcid@2.0.0(transitive)
+ Addedlog-symbols@2.2.0(transitive)
+ Addedmap-age-cleaner@0.1.3(transitive)
+ Addedmem@4.3.0(transitive)
+ Addedmimic-fn@2.1.0(transitive)
+ Addednice-try@1.0.5(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedora@2.1.0(transitive)
+ Addedos-locale@3.1.0(transitive)
+ Addedp-defer@1.0.0(transitive)
+ Addedp-is-promise@2.1.0(transitive)
+ Addedpump@3.0.2(transitive)
+ Addedwcwidth@1.0.1(transitive)
+ Addedwrappy@1.0.2(transitive)
+ Addedyargs@11.1.1(transitive)
+ Addedyargs-parser@9.0.2(transitive)
- Removedaxios@0.16.2(transitive)
- Removedcliui@3.2.0(transitive)
- Removedcross-spawn@5.1.0(transitive)
- Removederror-ex@1.3.2(transitive)
- Removedexeca@0.7.0(transitive)
- Removedfollow-redirects@1.15.9(transitive)
- Removedget-stream@3.0.0(transitive)
- Removedgraceful-fs@4.2.11(transitive)
- Removedhosted-git-info@2.8.9(transitive)
- Removedinquirer@4.0.2(transitive)
- Removedinvert-kv@1.0.0(transitive)
- Removedis-arrayish@0.2.1(transitive)
- Removedis-buffer@1.1.6(transitive)
- Removedis-core-module@2.16.1(transitive)
- Removedlcid@1.0.0(transitive)
- Removedload-json-file@2.0.0(transitive)
- Removedlru-cache@4.1.5(transitive)
- Removedmem@1.1.0(transitive)
- Removednormalize-package-data@2.5.0(transitive)
- Removedos-locale@2.1.0(transitive)
- Removedparse-json@2.2.0(transitive)
- Removedpath-parse@1.0.7(transitive)
- Removedpath-type@2.0.0(transitive)
- Removedpify@2.3.0(transitive)
- Removedpseudomap@1.0.2(transitive)
- Removedread-pkg@2.0.0(transitive)
- Removedread-pkg-up@2.0.0(transitive)
- Removedresolve@1.22.10(transitive)
- Removedrx-lite@4.0.8(transitive)
- Removedrx-lite-aggregates@4.0.8(transitive)
- Removedspdx-correct@3.2.0(transitive)
- Removedspdx-exceptions@2.5.0(transitive)
- Removedspdx-expression-parse@3.0.1(transitive)
- Removedspdx-license-ids@3.0.21(transitive)
- Removedstrip-bom@3.0.0(transitive)
- Removedsupports-preserve-symlinks-flag@1.0.0(transitive)
- Removedvalidate-npm-package-license@3.0.4(transitive)
- Removedyallist@2.1.2(transitive)
- Removedyargs@8.0.2(transitive)
- Removedyargs-parser@7.0.0(transitive)
Updatedaxios@^0.18.0
Updatedinquirer@^5.2.0
Updatedyargs@^11.0.0