-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathgithub_pullrequest.js
More file actions
105 lines (105 loc) · 3.78 KB
/
Copy pathgithub_pullrequest.js
File metadata and controls
105 lines (105 loc) · 3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#! /usr/bin/env node
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var program = require("commander");
var output_1 = require("../lib/tools/output");
var pullrequest_1 = require("../lib/action/pullrequest");
var commandTypeObject = {
'ls': {
message: 'get list data about pull request(获取pull request列表数据操作)',
childOptions: {
'-r': 'list pull requests for a repository',
'-v': 'list all the reviews of a pull request',
'-c': 'list comments on a pull request',
'-cw': 'list comments of a review of a pull request',
'-cr': 'list comments in a repository pulls',
'-rp': 'list review requests of a pull request'
}
},
'cr': {
message: 'create actions about pull request(创建关于pull request数据的操作)',
childOptions: {
'-p': 'create a pull request',
'-pr': 'create a pull request review',
'-rp': 'create a review request for a pull request'
}
},
'et': {
message: 'edit pull request actions(编辑pull request数据)',
childOptions: {
'-p': 'edit a pull request',
'-c': 'edit a comment for repository pulls'
}
},
'rm': {
message: 'delete pull request actions(删除pull request数据)',
childOptions: {
'-v': 'delete reviews of a pull request',
'-c': 'delete a comment of repository pulls',
'-r': 'delete review request of a pull request'
}
},
'mr': {
message: 'merge pull request actions(合并pull request请求)'
},
'st': {
message: 'submit pull request review'
},
'ds': {
message: 'dismiss a pull request review'
}
};
program
.version(require('../package.json').version)
.option('-h', 'get help')
.parse(process.argv);
program.on('--help', function () {
output_1.mainTitle('Commands:');
output_1.command();
Object.keys(commandTypeObject).forEach(function (item) {
output_1.command("$ gh pr " + item + " --- " + commandTypeObject[item].message);
var childOptions = commandTypeObject[item].childOptions;
if (childOptions) {
output_1.describe('the supported child options for this command as follows:');
Object.keys(childOptions).forEach(function (optionItem) {
output_1.command(" " + optionItem + " --- " + childOptions[optionItem]);
});
}
});
output_1.mainTitle('use examples:');
output_1.example();
output_1.describe('list pull requests for a repository');
output_1.example('gh pr ls -r');
output_1.example();
});
var paramArray = process.argv.slice(2);
var thecmd = paramArray[0]; // 命令类型
var theoption = paramArray[1]; // 参数值
if (!thecmd || thecmd === '-h') {
program.help();
}
if (!commandTypeObject.hasOwnProperty(thecmd)) {
output_1.error('the command you input is invalid, you could get the surpported commands through $ gh pr -h');
}
var commandObject = commandTypeObject[thecmd];
var childOptions = commandObject.childOptions;
if (childOptions) {
if (!theoption || !childOptions.hasOwnProperty(theoption)) {
output_1.error('empty or invalid child option!');
output_1.mainTitle('the supported child options as follows:');
output_1.command();
Object.keys(childOptions).forEach(function (item) {
output_1.command(item + " --- " + childOptions[item]);
});
output_1.command();
output_1.describe('list all the pull request of a repository');
output_1.example('$ gh pr ls -r');
process.exit();
}
else {
pullrequest_1.prStrategies[thecmd][theoption]();
}
}
else {
pullrequest_1.prStrategies[thecmd]();
}