UNPKG

@adinsure-ops/ops-cli

Version:

Operations CLI for working with AdInsure

76 lines (75 loc) 2.64 kB
import { __awaiter } from "tslib"; import { Args, Flags, ux } from '@oclif/core'; import chalk from 'chalk'; import CommandBaseJira from '../../command.base.jira.js'; class JiraLabels extends CommandBaseJira { setLabels(jira_1, issue_1) { return __awaiter(this, arguments, void 0, function* (jira, issue, add = [], remove = []) { const labels = []; for (const label of add) { const add = { add: label, }; labels.push(add); } for (const label of remove) { const remove = { remove: label, }; labels.push(remove); } const edit = { update: { labels, }, }; return jira.updateIssue(issue, edit); }); } run() { const _super = Object.create(null, { run: { get: () => super.run } }); return __awaiter(this, void 0, void 0, function* () { _super.run.call(this); const { args, flags } = yield this.parse(JiraLabels); const jira = yield this.jiraInit(flags.hostname, flags.username, flags.password); if (flags.remove || flags.add) { ux.action.start(`adding "${flags.add}" and removing "${flags.remove}" labels to Jira issue ${args.issue}`, undefined, { stdout: true }); try { yield this.setLabels(jira, args.issue, flags.add, flags.remove); ux.action.stop(`${chalk.green('done')}`); } catch (_a) { ux.action.stop(`${chalk.red('error')}`); } } else { const issue = yield jira.findIssue(args.issue); this.log(JSON.stringify(issue.fields.labels)); } }); } } // static aliases = ['jira:edit:labels']; JiraLabels.description = 'list or edit labels on Jira issue'; JiraLabels.usage = 'jira:labels <issue> -a [label] -r [label]'; JiraLabels.examples = [ `$ ops jira:labels LJADIRD-1337`, ]; JiraLabels.args = { issue: Args.string({ required: true, description: 'Jira issue number', }), }; JiraLabels.flags = Object.assign(Object.assign({}, CommandBaseJira.flags), { add: Flags.string({ char: 'a', description: 'add label', multiple: true, }), remove: Flags.string({ char: 'r', description: 'remove label', multiple: true, }) }); export default JiraLabels;