bjira 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -2
- package/package.json +5 -5
- package/src/index.js +1 -1
- package/.babelrc +0 -13
- package/dist/command.js +0 -15
- package/dist/comment.js +0 -70
- package/dist/create.js +0 -127
- package/dist/errorhandler.js +0 -37
- package/dist/field.js +0 -158
- package/dist/index.js +0 -49
- package/dist/init.js +0 -63
- package/dist/issue.js +0 -176
- package/dist/jira.js +0 -116
- package/dist/preset.js +0 -56
- package/dist/project.js +0 -88
- package/dist/query.js +0 -83
- package/dist/run.js +0 -104
- package/dist/set.js +0 -137
- package/dist/sprint.js +0 -129
- package/dist/user.js +0 -34
package/README.md
CHANGED
|
@@ -1,4 +1,65 @@
|
|
|
1
1
|
# Jira cli
|
|
2
2
|
|
|
3
|
-
This is a simple Jira CLI tool.
|
|
4
|
-
|
|
3
|
+
This is a simple Jira CLI tool. License: MIT
|
|
4
|
+
|
|
5
|
+
# How to install it
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
$ npm install -g bjira
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
# How to configure it
|
|
12
|
+
|
|
13
|
+
Run `bjira init` to set up the tool. You can optain the API token from your
|
|
14
|
+
jira settings.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
$ bjira init
|
|
18
|
+
? Provide your jira host: your-config.atlassian.net
|
|
19
|
+
? Please provide your jira username: username
|
|
20
|
+
? API token: [hidden]
|
|
21
|
+
? Enable HTTPS Protocol? Yes
|
|
22
|
+
Config file succesfully created in: /home/baku/.bjira.json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
# How to use it
|
|
26
|
+
|
|
27
|
+
Run `bjira help` to see the main help menu. Each command is well documented.
|
|
28
|
+
|
|
29
|
+
There are 2 main concepts to know:
|
|
30
|
+
- presets
|
|
31
|
+
- custom fields.
|
|
32
|
+
|
|
33
|
+
## Presets
|
|
34
|
+
|
|
35
|
+
Let's say you want to retrieve all the open issues assigned to you for project
|
|
36
|
+
FOO. The query is something like this:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
bjira query 'project = "FOO" AND status != "Done" AND status != "Cancelled" AND assignee = currentUser()'
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
You can save this query as a preset:
|
|
43
|
+
```
|
|
44
|
+
bjira create mine 'project = "FOO" AND status != "Done" AND status != "Cancelled" AND assignee = currentUser()'
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Then, you can run it using its query name:
|
|
48
|
+
```
|
|
49
|
+
bjira run mine
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Custom fields
|
|
53
|
+
Jira is strongly configurable via custom fields. You can retrieve the list of custom fields using:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
bjira field listall
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
If you want to see some of them in the issue report, add them:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
bjira field add "Story Points"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Any custom fields added to the list will be shown in the issue report (See `bjira issue`).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bjira",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "A simple jira CLI tool",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"author": {
|
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
},
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
|
-
"url": "git://github.com/bakulf/
|
|
15
|
+
"url": "git://github.com/bakulf/bjira.git"
|
|
16
16
|
},
|
|
17
17
|
"bugs": {
|
|
18
|
-
"url": "https://github.com/bakulf/
|
|
18
|
+
"url": "https://github.com/bakulf/bjira/issues"
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"type": "module",
|
|
22
|
-
"engines"
|
|
23
|
-
"node"
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=13.2.0"
|
|
24
24
|
},
|
|
25
25
|
"engineStrict": true,
|
|
26
26
|
"dependencies": {
|
package/src/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import Run from './run.js';
|
|
|
17
17
|
import Set from './set.js';
|
|
18
18
|
import Sprint from './sprint.js';
|
|
19
19
|
|
|
20
|
-
const DEFAULT_CONFIG_FILE = path.join(os.homedir(), ".
|
|
20
|
+
const DEFAULT_CONFIG_FILE = path.join(os.homedir(), ".bjira.json")
|
|
21
21
|
|
|
22
22
|
const commands = [
|
|
23
23
|
new Comment(),
|
package/.babelrc
DELETED
package/dist/command.js
DELETED
package/dist/comment.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _execa = _interopRequireDefault(require("execa"));
|
|
9
|
-
|
|
10
|
-
var _inquirer = _interopRequireDefault(require("inquirer"));
|
|
11
|
-
|
|
12
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
13
|
-
|
|
14
|
-
var _temp = _interopRequireDefault(require("temp"));
|
|
15
|
-
|
|
16
|
-
var _command = _interopRequireDefault(require("./command.js"));
|
|
17
|
-
|
|
18
|
-
var _jira = _interopRequireDefault(require("./jira.js"));
|
|
19
|
-
|
|
20
|
-
var _errorhandler = _interopRequireDefault(require("./errorhandler.js"));
|
|
21
|
-
|
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
-
|
|
24
|
-
class Comment extends _command.default {
|
|
25
|
-
addOptions(program) {
|
|
26
|
-
const commentCmd = program.command('comment').description('Add a comment to an issue').argument('<id>', 'The issue ID').action(async id => {
|
|
27
|
-
_temp.default.track();
|
|
28
|
-
|
|
29
|
-
let file;
|
|
30
|
-
|
|
31
|
-
try {
|
|
32
|
-
file = _temp.default.openSync('jira');
|
|
33
|
-
} catch (e) {
|
|
34
|
-
console.log("Failed to open a temporary file");
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const code = await new Promise(resolve => {
|
|
39
|
-
const subprocess = (0, _execa.default)(process.env.EDITOR, [file.path], {
|
|
40
|
-
detached: true,
|
|
41
|
-
stdio: 'inherit'
|
|
42
|
-
});
|
|
43
|
-
subprocess.on('error', () => resolve(-1));
|
|
44
|
-
subprocess.on('close', resolve);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
if (code !== 0) {
|
|
48
|
-
console.log("Failed to run the app");
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
let comment = _fs.default.readFileSync(file.path);
|
|
53
|
-
|
|
54
|
-
comment = comment.toString().trim();
|
|
55
|
-
|
|
56
|
-
if (comment === "") {
|
|
57
|
-
console.log("No comment message");
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const jira = new _jira.default(program);
|
|
62
|
-
const data = await jira.spin('Adding the comment...', jira.api.addComment(id, comment));
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
;
|
|
69
|
-
var _default = Comment;
|
|
70
|
-
exports.default = _default;
|
package/dist/create.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
9
|
-
|
|
10
|
-
var _inquirer = _interopRequireDefault(require("inquirer"));
|
|
11
|
-
|
|
12
|
-
var _cliTable = _interopRequireDefault(require("cli-table3"));
|
|
13
|
-
|
|
14
|
-
var _command = _interopRequireDefault(require("./command.js"));
|
|
15
|
-
|
|
16
|
-
var _jira = _interopRequireDefault(require("./jira.js"));
|
|
17
|
-
|
|
18
|
-
var _issue = _interopRequireDefault(require("./issue.js"));
|
|
19
|
-
|
|
20
|
-
var _project = _interopRequireDefault(require("./project.js"));
|
|
21
|
-
|
|
22
|
-
var _user = _interopRequireDefault(require("./user.js"));
|
|
23
|
-
|
|
24
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
|
-
class Create extends _command.default {
|
|
27
|
-
addOptions(program) {
|
|
28
|
-
const cmd = program.command('create').description('Create a new issue').action(async () => {
|
|
29
|
-
const jira = new _jira.default(program);
|
|
30
|
-
const project = await _project.default.pickProject(jira);
|
|
31
|
-
const issueQuestions = [{
|
|
32
|
-
type: 'list',
|
|
33
|
-
name: 'issueType',
|
|
34
|
-
message: 'Issue type:',
|
|
35
|
-
choices: project.issueTypes,
|
|
36
|
-
filter: name => project.issueTypes.find(obj => obj.name === name)
|
|
37
|
-
}, {
|
|
38
|
-
type: 'input',
|
|
39
|
-
name: 'summary',
|
|
40
|
-
message: 'Summary:',
|
|
41
|
-
default: 'New Issue'
|
|
42
|
-
}, {
|
|
43
|
-
type: 'input',
|
|
44
|
-
name: 'description',
|
|
45
|
-
message: 'Description:'
|
|
46
|
-
}, {
|
|
47
|
-
type: 'confirm',
|
|
48
|
-
name: 'assign',
|
|
49
|
-
message: 'Do you want to assign it?'
|
|
50
|
-
}]; // Ask for the issue name and type
|
|
51
|
-
|
|
52
|
-
const issueAnswers = await _inquirer.default.prompt(issueQuestions); // Create the issue object
|
|
53
|
-
|
|
54
|
-
const newIssue = {
|
|
55
|
-
fields: {
|
|
56
|
-
project: {
|
|
57
|
-
key: project.key
|
|
58
|
-
},
|
|
59
|
-
summary: issueAnswers.summary,
|
|
60
|
-
issuetype: {
|
|
61
|
-
id: issueAnswers.issueType.id
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
if (issueAnswers.description) {
|
|
67
|
-
newIssue.fields.description = issueAnswers.description;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (issueAnswers.assign) {
|
|
71
|
-
const userList = await _user.default.pickUser(jira);
|
|
72
|
-
const userNames = [];
|
|
73
|
-
const userIds = [];
|
|
74
|
-
userList.forEach(user => {
|
|
75
|
-
if (user.active) {
|
|
76
|
-
userNames.push(user.displayName);
|
|
77
|
-
userIds.push(user.accountId);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
const assigneeQuestion = [{
|
|
81
|
-
type: 'list',
|
|
82
|
-
name: 'assignee',
|
|
83
|
-
message: 'Assignee:',
|
|
84
|
-
choices: userNames,
|
|
85
|
-
filter: name => {
|
|
86
|
-
const pos = userNames.indexOf(name);
|
|
87
|
-
return {
|
|
88
|
-
pos,
|
|
89
|
-
name,
|
|
90
|
-
id: userIds[pos]
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
}];
|
|
94
|
-
const assigneeAnswer = await _inquirer.default.prompt(assigneeQuestion);
|
|
95
|
-
newIssue.fields.assignee = {
|
|
96
|
-
accountId: assigneeAnswer.assignee.id
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
if (issueAnswers.issueType.name === 'Task') {
|
|
101
|
-
const parentIssueQuestion = [{
|
|
102
|
-
type: 'input',
|
|
103
|
-
name: 'issueParentName',
|
|
104
|
-
message: 'Please provide the epic:'
|
|
105
|
-
}];
|
|
106
|
-
const parentIssueAnswer = await _inquirer.default.prompt(parentIssueQuestion);
|
|
107
|
-
|
|
108
|
-
if (parentIssueAnswer.issueParentName !== '') {
|
|
109
|
-
newIssue.fields.parent = {
|
|
110
|
-
key: parentIssueAnswer.issueParentName
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const issue = await jira.spin('Creating the issue...', jira.api.addNewIssue(newIssue));
|
|
116
|
-
console.log('');
|
|
117
|
-
console.log('New issue: ' + _chalk.default.bold.red(issue.key));
|
|
118
|
-
console.log(_chalk.default.blue(_issue.default.url(jira, issue.key)));
|
|
119
|
-
console.log('');
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
;
|
|
126
|
-
var _default = Create;
|
|
127
|
-
exports.default = _default;
|
package/dist/errorhandler.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
9
|
-
|
|
10
|
-
var _cliTable = _interopRequireDefault(require("cli-table3"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class ErrorHandler {
|
|
15
|
-
static showError(jira, e) {
|
|
16
|
-
const table = new _cliTable.default({
|
|
17
|
-
chars: jira.tableChars,
|
|
18
|
-
head: ['Errors']
|
|
19
|
-
});
|
|
20
|
-
e.error.errorMessages.forEach(error => table.push([_chalk.default.blue(error)]));
|
|
21
|
-
console.log(table.toString());
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
static showWarningMessages(jira, messages) {
|
|
25
|
-
const table = new _cliTable.default({
|
|
26
|
-
chars: jira.tableChars,
|
|
27
|
-
head: ['Warnings']
|
|
28
|
-
});
|
|
29
|
-
messages.forEach(warning => table.push([_chalk.default.blue(warning)]));
|
|
30
|
-
console.log(table.toString());
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
;
|
|
36
|
-
var _default = ErrorHandler;
|
|
37
|
-
exports.default = _default;
|
package/dist/field.js
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
9
|
-
|
|
10
|
-
var _cliTable = _interopRequireDefault(require("cli-table3"));
|
|
11
|
-
|
|
12
|
-
var _command = _interopRequireDefault(require("./command.js"));
|
|
13
|
-
|
|
14
|
-
var _errorhandler = _interopRequireDefault(require("./errorhandler.js"));
|
|
15
|
-
|
|
16
|
-
var _jira = _interopRequireDefault(require("./jira.js"));
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
class Field extends _command.default {
|
|
21
|
-
addOptions(program) {
|
|
22
|
-
const cmd = program.command("field").description("Do things related to issue fields");
|
|
23
|
-
cmd.command("listall").description("Show the list of fields").action(async () => {
|
|
24
|
-
const jira = new _jira.default(program);
|
|
25
|
-
let resultFields;
|
|
26
|
-
|
|
27
|
-
try {
|
|
28
|
-
resultFields = await Field.listFields(jira);
|
|
29
|
-
} catch (e) {
|
|
30
|
-
_errorhandler.default.showError(jira, e);
|
|
31
|
-
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const table = new _cliTable.default({
|
|
36
|
-
chars: jira.tableChars,
|
|
37
|
-
head: ['Name', 'Supported', 'Type']
|
|
38
|
-
});
|
|
39
|
-
resultFields.forEach(field => {
|
|
40
|
-
var _field$schema, _field$schema2;
|
|
41
|
-
|
|
42
|
-
const supported = Field.isSupported((_field$schema = field.schema) === null || _field$schema === void 0 ? void 0 : _field$schema.type);
|
|
43
|
-
table.push([_chalk.default.blue(field.name), supported, supported ? (_field$schema2 = field.schema) === null || _field$schema2 === void 0 ? void 0 : _field$schema2.type : ""]);
|
|
44
|
-
});
|
|
45
|
-
console.log(table.toString());
|
|
46
|
-
});
|
|
47
|
-
cmd.command("add").description("Add a custom field to be shown").argument('<field>', 'The field name').action(async fieldName => {
|
|
48
|
-
var _fieldData$schema;
|
|
49
|
-
|
|
50
|
-
const jira = new _jira.default(program);
|
|
51
|
-
let resultFields;
|
|
52
|
-
|
|
53
|
-
try {
|
|
54
|
-
resultFields = await Field.listFields(jira);
|
|
55
|
-
} catch (e) {
|
|
56
|
-
_errorhandler.default.showError(jira, e);
|
|
57
|
-
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const fieldData = resultFields.find(field => field.name === fieldName);
|
|
62
|
-
|
|
63
|
-
if (!fieldData) {
|
|
64
|
-
console.log("Unknown field.");
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if (!Field.isSupported((_fieldData$schema = fieldData.schema) === null || _fieldData$schema === void 0 ? void 0 : _fieldData$schema.type)) {
|
|
69
|
-
console.log("Unsupported field.");
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
jira.addField(fieldName);
|
|
74
|
-
jira.syncConfig();
|
|
75
|
-
console.log('Config file succesfully updated');
|
|
76
|
-
});
|
|
77
|
-
cmd.command("remove").description("Remove a custom field").argument('<field>', 'The field name').action(async fieldName => {
|
|
78
|
-
const jira = new _jira.default(program);
|
|
79
|
-
|
|
80
|
-
if (!jira.fields.includes(fieldName)) {
|
|
81
|
-
console.log("Unknown field.");
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
jira.removeField(fieldName);
|
|
86
|
-
jira.syncConfig();
|
|
87
|
-
console.log('Config file succesfully updated');
|
|
88
|
-
});
|
|
89
|
-
cmd.command("list").description("List the supported custom field").action(async () => {
|
|
90
|
-
const jira = new _jira.default(program);
|
|
91
|
-
const table = new _cliTable.default({
|
|
92
|
-
chars: jira.tableChars,
|
|
93
|
-
head: ['Name']
|
|
94
|
-
});
|
|
95
|
-
jira.fields.forEach(fieldName => table.push([_chalk.default.blue(fieldName)]));
|
|
96
|
-
console.log(table.toString());
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
static async listFields(jira) {
|
|
101
|
-
return await jira.spin('Retrieving the fields...', jira.api.listFields());
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
static isSupported(fieldType) {
|
|
105
|
-
return ["string", "number"].includes(fieldType);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
static async getFieldDataIfSupported(jira, fieldName) {
|
|
109
|
-
var _fieldData$schema2;
|
|
110
|
-
|
|
111
|
-
let resultFields;
|
|
112
|
-
|
|
113
|
-
try {
|
|
114
|
-
resultFields = await Field.listFields(jira);
|
|
115
|
-
} catch (e) {
|
|
116
|
-
_errorhandler.default.showError(jira, e);
|
|
117
|
-
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
let fieldData;
|
|
122
|
-
resultFields.forEach(field => {
|
|
123
|
-
if (field.name === fieldName) fieldData = field;
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
if (!fieldData) {
|
|
127
|
-
console.log(`Unable to find the field "${fieldName}"`);
|
|
128
|
-
return null;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (!Field.isSupported((_fieldData$schema2 = fieldData.schema) === null || _fieldData$schema2 === void 0 ? void 0 : _fieldData$schema2.type)) {
|
|
132
|
-
console.log("Unsupported field");
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
let type;
|
|
137
|
-
|
|
138
|
-
switch (fieldData.schema.type) {
|
|
139
|
-
case 'number':
|
|
140
|
-
type = 'number';
|
|
141
|
-
break;
|
|
142
|
-
|
|
143
|
-
case 'string':
|
|
144
|
-
type = 'input';
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return {
|
|
149
|
-
type,
|
|
150
|
-
key: fieldData.key
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
;
|
|
157
|
-
var _default = Field;
|
|
158
|
-
exports.default = _default;
|
package/dist/index.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _commander = _interopRequireDefault(require("commander"));
|
|
5
|
-
|
|
6
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
7
|
-
|
|
8
|
-
var _os = _interopRequireDefault(require("os"));
|
|
9
|
-
|
|
10
|
-
var _path = _interopRequireDefault(require("path"));
|
|
11
|
-
|
|
12
|
-
var _comment = _interopRequireDefault(require("./comment.js"));
|
|
13
|
-
|
|
14
|
-
var _create = _interopRequireDefault(require("./create.js"));
|
|
15
|
-
|
|
16
|
-
var _field = _interopRequireDefault(require("./field.js"));
|
|
17
|
-
|
|
18
|
-
var _init = _interopRequireDefault(require("./init.js"));
|
|
19
|
-
|
|
20
|
-
var _issue = _interopRequireDefault(require("./issue.js"));
|
|
21
|
-
|
|
22
|
-
var _preset = _interopRequireDefault(require("./preset.js"));
|
|
23
|
-
|
|
24
|
-
var _project = _interopRequireDefault(require("./project.js"));
|
|
25
|
-
|
|
26
|
-
var _query = _interopRequireDefault(require("./query.js"));
|
|
27
|
-
|
|
28
|
-
var _run = _interopRequireDefault(require("./run.js"));
|
|
29
|
-
|
|
30
|
-
var _set = _interopRequireDefault(require("./set.js"));
|
|
31
|
-
|
|
32
|
-
var _sprint = _interopRequireDefault(require("./sprint.js"));
|
|
33
|
-
|
|
34
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
|
-
|
|
36
|
-
const DEFAULT_CONFIG_FILE = _path.default.join(_os.default.homedir(), ".jira.json");
|
|
37
|
-
|
|
38
|
-
const commands = [new _comment.default(), new _create.default(), new _field.default(), new _init.default(), new _issue.default(), new _preset.default(), new _project.default(), new _query.default(), new _run.default(), new _set.default(), new _sprint.default()];
|
|
39
|
-
/*
|
|
40
|
-
const pjson = JSON.parse(fs.readFileSync(new URL("../package.json",
|
|
41
|
-
import.meta.url)));
|
|
42
|
-
program.version(pjson.version);
|
|
43
|
-
*/
|
|
44
|
-
|
|
45
|
-
_commander.default.option('-c, --config <file>', `config file`, DEFAULT_CONFIG_FILE);
|
|
46
|
-
|
|
47
|
-
commands.forEach(command => command.addOptions(_commander.default));
|
|
48
|
-
|
|
49
|
-
_commander.default.parseAsync(process.argv);
|
package/dist/init.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
9
|
-
|
|
10
|
-
var _inquirer = _interopRequireDefault(require("inquirer"));
|
|
11
|
-
|
|
12
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
13
|
-
|
|
14
|
-
var _command = _interopRequireDefault(require("./command.js"));
|
|
15
|
-
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
|
-
class Init extends _command.default {
|
|
19
|
-
addOptions(program) {
|
|
20
|
-
program.command('init').description('Create the initial config file').action(async () => {
|
|
21
|
-
const opts = program.opts();
|
|
22
|
-
const questions = [{
|
|
23
|
-
type: ' input',
|
|
24
|
-
name: 'host',
|
|
25
|
-
message: 'Provide your jira host:',
|
|
26
|
-
default: 'example.atlassian.net'
|
|
27
|
-
}, {
|
|
28
|
-
type: 'input',
|
|
29
|
-
name: 'username',
|
|
30
|
-
message: 'Please provide your jira username:'
|
|
31
|
-
}, {
|
|
32
|
-
type: 'password',
|
|
33
|
-
name: 'password',
|
|
34
|
-
message: 'API token:'
|
|
35
|
-
}, {
|
|
36
|
-
type: 'confirm',
|
|
37
|
-
name: 'protocol',
|
|
38
|
-
message: 'Enable HTTPS Protocol?'
|
|
39
|
-
}];
|
|
40
|
-
const answers = await _inquirer.default.prompt(questions);
|
|
41
|
-
const config = {
|
|
42
|
-
jira: {
|
|
43
|
-
protocol: answers.protocol ? 'https' : 'http',
|
|
44
|
-
host: answers.host.trim(),
|
|
45
|
-
username: answers.username.trim(),
|
|
46
|
-
password: answers.password.trim(),
|
|
47
|
-
apiVersion: '2',
|
|
48
|
-
strictSSL: true
|
|
49
|
-
},
|
|
50
|
-
presets: {}
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
_fs.default.writeFileSync(opts.config, JSON.stringify(config, null, 2), 'utf8');
|
|
54
|
-
|
|
55
|
-
console.log(`Config file succesfully created in: ${_chalk.default.green(opts.config)}`);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
;
|
|
62
|
-
var _default = Init;
|
|
63
|
-
exports.default = _default;
|