@adinsure-ops/ops-cli
Version:
Operations CLI for working with AdInsure
76 lines (75 loc) • 2.64 kB
JavaScript
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;