gcb-client 0.3.0 → 0.5.0
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/CHANGELOG.md +36 -0
- package/README.md +42 -0
- package/lib/commands/gh.d.ts +4 -1
- package/lib/commands/gh.d.ts.map +1 -1
- package/lib/commands/gh.js +201 -73
- package/lib/commands/gh.js.map +1 -1
- package/lib/commands/host-submit.d.ts +11 -4
- package/lib/commands/host-submit.d.ts.map +1 -1
- package/lib/commands/host-submit.js +89 -35
- package/lib/commands/host-submit.js.map +1 -1
- package/lib/commands/pr.d.ts +1 -1
- package/lib/commands/pr.d.ts.map +1 -1
- package/lib/commands/pr.js +122 -45
- package/lib/commands/pr.js.map +1 -1
- package/lib/commands/repo.js +2 -2
- package/lib/commands/repo.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +25 -11
- package/lib/index.js.map +1 -1
- package/lib/primary.d.ts +26 -0
- package/lib/primary.d.ts.map +1 -0
- package/lib/primary.js +35 -0
- package/lib/primary.js.map +1 -0
- package/package.json +2 -2
- package/lib/commands/issue.d.ts +0 -10
- package/lib/commands/issue.d.ts.map +0 -1
- package/lib/commands/issue.js +0 -147
- package/lib/commands/issue.js.map +0 -1
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { existsSync } from 'node:fs';
|
|
8
8
|
import { join } from 'node:path';
|
|
9
|
-
import { ANSWER_TIMEOUT_MS, channelDir, findGitDir,
|
|
10
|
-
import { fail, say } from 'gcb-core';
|
|
9
|
+
import { ANSWER_TIMEOUT_MS, channelDir, findGitDir, readHostBroker, readResult, removeResult, requestProblems, waitForResult, writeRequest, } from 'gcb-core';
|
|
10
|
+
import { fail, getGhAction, say } from 'gcb-core';
|
|
11
11
|
/**
|
|
12
|
-
* Explain why
|
|
12
|
+
* Explain why a host-broker request produced no answer.
|
|
13
13
|
*
|
|
14
14
|
* @param dir - the channel directory.
|
|
15
15
|
* @param id - the request id.
|
|
@@ -29,37 +29,34 @@ export function noAnswerMessage(dir, id, noun, timeoutMs) {
|
|
|
29
29
|
' it may still be working: the request is not cancelled, and the host broker removes it only once\n' +
|
|
30
30
|
` it has created the ${noun} or failed. Check the ${noun} list before asking again.`);
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
: 'pull request';
|
|
32
|
+
const KINDS = {
|
|
33
|
+
'pull-request': { noun: 'pull request' },
|
|
34
|
+
fork: { noun: 'fork', needed: 'fork' },
|
|
35
|
+
reply: { noun: 'reply', needed: 'reply' },
|
|
36
|
+
edit: { noun: 'edit', needed: 'edit' },
|
|
37
|
+
review: { noun: 'review', needed: 'review' },
|
|
38
|
+
action: { noun: 'action', needed: 'action' },
|
|
39
|
+
};
|
|
40
|
+
/** Write, wait for and return one host-broker answer. */
|
|
41
|
+
async function exchange(request, timeoutMs = ANSWER_TIMEOUT_MS, claimedTimeoutMs) {
|
|
42
|
+
const problems = requestProblems(request);
|
|
43
|
+
if (problems.length > 0)
|
|
44
|
+
fail(problems.join('; '));
|
|
45
|
+
const { noun, needed } = KINDS[request.kind ?? 'pull-request'];
|
|
47
46
|
const gitDir = findGitDir(process.cwd());
|
|
48
47
|
if (gitDir === undefined)
|
|
49
48
|
fail('--as-user needs a git repository: run it from the checkout');
|
|
50
49
|
const dir = channelDir(gitDir);
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
50
|
+
const hostBroker = readHostBroker(dir);
|
|
51
|
+
if (hostBroker === undefined) {
|
|
53
52
|
fail(`no host broker is watching ${dir}\n` +
|
|
54
53
|
' start one on the host: gcb host --repo <that checkout>\n' +
|
|
55
|
-
'
|
|
54
|
+
' if one is already running, restart it from this gcb-host version\n' +
|
|
55
|
+
' or drop --as-user to do it as the app instead');
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
if (needed !== undefined && !(Array.isArray(opener.kinds) && opener.kinds.includes(needed))) {
|
|
57
|
+
if (needed !== undefined && !(Array.isArray(hostBroker.kinds) && hostBroker.kinds.includes(needed))) {
|
|
59
58
|
fail(`the host broker does not advertise ${needed} support; restart it from this gcb-host version`);
|
|
60
59
|
}
|
|
61
|
-
// writeRequest refuses what the opener would refuse — a title past its limit, a body past its limit,
|
|
62
|
-
// a head equal to its base. It throws, and a stack trace tells the caller none of that.
|
|
63
60
|
let id;
|
|
64
61
|
try {
|
|
65
62
|
id = writeRequest(dir, request);
|
|
@@ -67,21 +64,78 @@ export async function submitToOpener(request, success) {
|
|
|
67
64
|
catch (error) {
|
|
68
65
|
fail(error.message);
|
|
69
66
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
const configured = Number(process.env['GCB_HOST_TIMEOUT_MS']);
|
|
68
|
+
if (Number.isInteger(configured) && configured > 0) {
|
|
69
|
+
timeoutMs = configured;
|
|
70
|
+
if (claimedTimeoutMs !== undefined)
|
|
71
|
+
claimedTimeoutMs = Math.min(claimedTimeoutMs, configured);
|
|
72
|
+
}
|
|
73
|
+
let answer = await waitForAnswer(dir, id, timeoutMs, claimedTimeoutMs);
|
|
77
74
|
if (answer === undefined)
|
|
78
75
|
answer = await waitForResult(dir, id, 300, 50);
|
|
79
|
-
if (answer === undefined)
|
|
80
|
-
|
|
76
|
+
if (answer === undefined) {
|
|
77
|
+
const waited = claimedTimeoutMs !== undefined && existsSync(join(dir, `${id}.json.working`))
|
|
78
|
+
? claimedTimeoutMs
|
|
79
|
+
: timeoutMs;
|
|
80
|
+
fail(noAnswerMessage(dir, id, noun, waited));
|
|
81
|
+
}
|
|
81
82
|
removeResult(dir, id);
|
|
83
|
+
return answer;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Wait for an answer, giving a claimed request its own deadline after queue time.
|
|
87
|
+
*
|
|
88
|
+
* Without this the action timeout would start when the request was written, so a request claimed
|
|
89
|
+
* late could still be running when the client reported it lost.
|
|
90
|
+
*/
|
|
91
|
+
async function waitForAnswer(dir, id, queueTimeoutMs, claimedTimeoutMs) {
|
|
92
|
+
const queueDeadline = Date.now() + queueTimeoutMs;
|
|
93
|
+
let claimedDeadline;
|
|
94
|
+
for (;;) {
|
|
95
|
+
const answer = readResult(dir, id);
|
|
96
|
+
if (answer !== undefined)
|
|
97
|
+
return answer;
|
|
98
|
+
const now = Date.now();
|
|
99
|
+
if (claimedTimeoutMs !== undefined && existsSync(join(dir, `${id}.json.working`))) {
|
|
100
|
+
claimedDeadline ??= now + claimedTimeoutMs;
|
|
101
|
+
if (now >= claimedDeadline)
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
else if (now >= queueDeadline) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
await new Promise((done) => setTimeout(done, 50));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Write, wait for and report one host-broker request.
|
|
112
|
+
*
|
|
113
|
+
* @param request - the validated request.
|
|
114
|
+
* @param success - formats the success line from the answer.
|
|
115
|
+
* @returns 0 after the answer is reported.
|
|
116
|
+
*/
|
|
117
|
+
export async function submitToHostBroker(request, success) {
|
|
118
|
+
const answer = await exchange(request);
|
|
82
119
|
if (answer.error !== undefined)
|
|
83
|
-
fail(`the host broker could not
|
|
120
|
+
fail(`the host broker could not do it: ${answer.error}`);
|
|
84
121
|
say(success(answer));
|
|
85
122
|
return 0;
|
|
86
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Run one catalogued action through the host broker and forward its output.
|
|
126
|
+
*
|
|
127
|
+
* @param request - the validated action request.
|
|
128
|
+
* @returns the child's exit status as 0 or 1.
|
|
129
|
+
*/
|
|
130
|
+
export async function submitActionToHostBroker(request) {
|
|
131
|
+
const action = getGhAction(request.action);
|
|
132
|
+
const answer = await exchange(request, ANSWER_TIMEOUT_MS, action.timeoutSeconds * 1_000 + 30_000);
|
|
133
|
+
if (answer.error !== undefined)
|
|
134
|
+
fail(`the host broker could not do it: ${answer.error}`);
|
|
135
|
+
if (answer.stdout !== undefined && answer.stdout !== '')
|
|
136
|
+
process.stdout.write(answer.stdout);
|
|
137
|
+
if (answer.stderr !== undefined && answer.stderr !== '')
|
|
138
|
+
process.stderr.write(answer.stderr);
|
|
139
|
+
return answer.code === 0 ? 0 : 1;
|
|
140
|
+
}
|
|
87
141
|
//# sourceMappingURL=host-submit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-submit.js","sourceRoot":"","sources":["../../src/commands/host-submit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"host-submit.js","sourceRoot":"","sources":["../../src/commands/host-submit.ts"],"names":[],"mappings":"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"}
|
package/lib/commands/pr.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Usage text for `pr`. */
|
|
2
|
-
export declare const PR_USAGE = "Usage: gcb pr [options]\n\nOpen, update or inspect a pull request through the broker, without the credential\never reaching this side.\n\nA subcommand the gh action catalog has (pr view, pr close, \u2026) runs as that action instead;\ngcb gh --help lists them. The flags below are the flag-only lifecycle gh cannot express.\n\nOpening (the default)\n --head <branch> The branch holding the change [required]\n May be <remote>:<branch>, e.g. origin:feat/x, to name a fork\n --base <branch> The branch to merge into (default: main)\n A <remote>:<branch> here names the same repository as --repo\n --title <text> The title [required]\n --body <text> The body, inline\n --body-file <path> The body
|
|
2
|
+
export declare const PR_USAGE = "Usage: gcb pr [options]\n\nOpen, update or inspect a pull request through the broker, without the credential\never reaching this side.\n\nA subcommand the gh action catalog has (pr view, pr close, \u2026) runs as that action instead;\ngcb gh --help lists them. The flags below are the flag-only lifecycle gh cannot express.\n\nOpening (the default)\n --head <branch> The branch holding the change [required]\n May be <remote>:<branch>, e.g. origin:feat/x, to name a fork\n --base <branch> The branch to merge into (default: main)\n A <remote>:<branch> here names the same repository as --repo\n --title <text> The title [required]\n --body <text> The body, inline\n --body-file <path> The body from a file, or '-' for stdin; a PR body is usually long\n --draft Open it as a draft\n --as-user Act as the authorized person through the broker for open,\n review, reply, resolve, edit or comment; fails if no user token\n is configured. Without it, open/review/reply/edit/comment use\n the app; resolve always needs the person\n --as-user <login> Create, review, reply or edit through the host broker, using\n ~/.config/gh-<login> (run 'gcb host' on the host)\n\nActing on one\n --number <n> The pull request number [required]\n --proxy <url> Use this proxy for this request\n --no-proxy Reach GitHub directly for this request\n --status Report its state, mergeability and the runs for its commit\n --approve Submit an approving review\n --request-changes Request changes; needs --body/--body-file\n --review-comment Leave a review comment; needs --body/--body-file\n No --as-user: app identity; bare --as-user: the broker's person;\n --as-user <login>: that host gh account\n --comment Post an anchored review comment (also needs --file and --line);\n for a plain comment use: gcb gh pr comment <number> --body ...\n --file <path> Anchor that comment to a line of this file, repository-relative\n --line <n> The line to anchor to, in the new file unless --side says otherwise\n --side <left|right> Which side of the diff --line counts on (default: right)\n --threads List its review threads: their ids, whether they are resolved, and the comments\n --reply-to <id> Reply inside the thread that comment id belongs to, with --body/--body-file\n --edit <id> Replace the body of that review comment, with --body/--body-file\n (an id --threads prints; no --number is needed)\n --resolve <thread> Mark that review thread resolved (the id --threads prints)\n --id <review-id> Show one existing review (with --number)\n --jq <expr> Filter that review's JSON (with --id)\n With --number and none of the above, the title, body or base is updated.\n\nCommon\n --socket <path> Broker socket (default: $GIT_BROKER_SOCKET or the socket file)\n --host <host> Host as configured, e.g. github.com (default: github.com)\n --repo <owner/name> Repository the pull request belongs to (default: origin remote)\n -h, --help Show this help\n";
|
|
3
3
|
/**
|
|
4
4
|
* Run the `pr` command.
|
|
5
5
|
*
|
package/lib/commands/pr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AA+BA,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,k3GAqDpB,CAAC;AA8BF;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4YpE"}
|
package/lib/commands/pr.js
CHANGED
|
@@ -11,18 +11,18 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Exit codes: 0 done, 1 refused, 3 broker unreachable.
|
|
13
13
|
*/
|
|
14
|
-
import { readFileSync } from 'node:fs';
|
|
15
14
|
import { LOGIN } from 'gcb-core';
|
|
16
15
|
import { requestOverSocket, resolveSocketPath } from '../helper.js';
|
|
17
16
|
import { baseBranchFor, qualifiedBranch, remoteRepo } from './remotes.js';
|
|
18
17
|
import { runGh } from './gh.js';
|
|
19
|
-
import {
|
|
20
|
-
import { fail, parseArgs, say } from 'gcb-core';
|
|
18
|
+
import { submitToHostBroker } from './host-submit.js';
|
|
19
|
+
import { bodyFromArgs, fail, parseArgs, say, validateArgs } from 'gcb-core';
|
|
21
20
|
/** Every flag the flag-only lifecycle understands. */
|
|
22
21
|
const KNOWN_FLAGS = new Set([
|
|
23
22
|
'help', 'h', 'draft', 'close', 'comment', 'file', 'line', 'side', 'threads',
|
|
24
23
|
'reply-to', 'edit', 'resolve', 'id', 'jq', 'proxy', 'no-proxy', 'socket', 'host', 'repo',
|
|
25
|
-
'head', 'base', 'title', 'body', 'body-file', 'number', 'as-user', '
|
|
24
|
+
'head', 'base', 'title', 'body', 'body-file', 'number', 'as-user', 'status',
|
|
25
|
+
'approve', 'request-changes', 'review-comment',
|
|
26
26
|
]);
|
|
27
27
|
/** Longer than a credential request: a token is minted, then the action is performed. */
|
|
28
28
|
const PR_TIMEOUT_MS = 60_000;
|
|
@@ -42,20 +42,25 @@ Opening (the default)
|
|
|
42
42
|
A <remote>:<branch> here names the same repository as --repo
|
|
43
43
|
--title <text> The title [required]
|
|
44
44
|
--body <text> The body, inline
|
|
45
|
-
--body-file <path> The body
|
|
45
|
+
--body-file <path> The body from a file, or '-' for stdin; a PR body is usually long
|
|
46
46
|
--draft Open it as a draft
|
|
47
47
|
--as-user Act as the authorized person through the broker for open,
|
|
48
|
-
reply, resolve, edit or comment; fails if no user token
|
|
49
|
-
configured. Without it, open/reply/edit/comment use
|
|
50
|
-
resolve always needs the person
|
|
51
|
-
--as-user <login> Create
|
|
52
|
-
(run 'gcb host' on the host)
|
|
48
|
+
review, reply, resolve, edit or comment; fails if no user token
|
|
49
|
+
is configured. Without it, open/review/reply/edit/comment use
|
|
50
|
+
the app; resolve always needs the person
|
|
51
|
+
--as-user <login> Create, review, reply or edit through the host broker, using
|
|
52
|
+
~/.config/gh-<login> (run 'gcb host' on the host)
|
|
53
53
|
|
|
54
54
|
Acting on one
|
|
55
55
|
--number <n> The pull request number [required]
|
|
56
56
|
--proxy <url> Use this proxy for this request
|
|
57
57
|
--no-proxy Reach GitHub directly for this request
|
|
58
58
|
--status Report its state, mergeability and the runs for its commit
|
|
59
|
+
--approve Submit an approving review
|
|
60
|
+
--request-changes Request changes; needs --body/--body-file
|
|
61
|
+
--review-comment Leave a review comment; needs --body/--body-file
|
|
62
|
+
No --as-user: app identity; bare --as-user: the broker's person;
|
|
63
|
+
--as-user <login>: that host gh account
|
|
59
64
|
--comment Post an anchored review comment (also needs --file and --line);
|
|
60
65
|
for a plain comment use: gcb gh pr comment <number> --body ...
|
|
61
66
|
--file <path> Anchor that comment to a line of this file, repository-relative
|
|
@@ -90,6 +95,8 @@ function actionOf(args) {
|
|
|
90
95
|
// below — reading only `value` let a bare `--edit` fall through to `update`, which patched the pull
|
|
91
96
|
// request itself with the body meant for the comment.
|
|
92
97
|
const present = (name) => args.has(name) || args.value(name) !== undefined;
|
|
98
|
+
if (args.has('approve') || args.has('request-changes') || args.has('review-comment'))
|
|
99
|
+
return 'submit-review';
|
|
93
100
|
if (present('resolve'))
|
|
94
101
|
return 'resolve';
|
|
95
102
|
if (present('reply-to'))
|
|
@@ -114,20 +121,13 @@ function actionOf(args) {
|
|
|
114
121
|
*/
|
|
115
122
|
export async function runPr(argv) {
|
|
116
123
|
const args = parseArgs(argv, {
|
|
117
|
-
booleans: ['help', 'draft', 'status', 'comment', 'threads', 'no-proxy'],
|
|
124
|
+
booleans: ['help', 'draft', 'status', 'comment', 'threads', 'no-proxy', 'approve', 'request-changes', 'review-comment'],
|
|
125
|
+
optionalValues: ['as-user', 'close'],
|
|
118
126
|
});
|
|
119
|
-
if (args
|
|
127
|
+
if (validateArgs(args, argv, KNOWN_FLAGS, 'gcb pr')) {
|
|
120
128
|
say(PR_USAGE);
|
|
121
129
|
return 0;
|
|
122
130
|
}
|
|
123
|
-
if (args.has('via-host') || args.value('via-host') !== undefined) {
|
|
124
|
-
fail('--via-host was replaced by --as-user <login>');
|
|
125
|
-
}
|
|
126
|
-
// Unknown options are refused rather than ignored: a typo must not silently fall through to an update.
|
|
127
|
-
for (const name of args.names) {
|
|
128
|
-
if (!KNOWN_FLAGS.has(name))
|
|
129
|
-
fail('unknown option --' + name + ' for gcb pr');
|
|
130
|
-
}
|
|
131
131
|
if (args.positionals.length > 0)
|
|
132
132
|
fail('unexpected argument ' + JSON.stringify(args.positionals[0]) + ' for gcb pr');
|
|
133
133
|
// Before --repo: the point of the message is to name the command that does it now.
|
|
@@ -139,11 +139,13 @@ export async function runPr(argv) {
|
|
|
139
139
|
if (args.has('comment') && args.value('file') === undefined && args.value('line') === undefined) {
|
|
140
140
|
fail('--comment only posts an anchored review comment; pass --file and --line');
|
|
141
141
|
}
|
|
142
|
+
if (args.has('comment') &&
|
|
143
|
+
(args.has('approve') || args.has('request-changes') || args.has('review-comment'))) {
|
|
144
|
+
fail('--comment is an anchored review comment; use --review-comment for a review body');
|
|
145
|
+
}
|
|
142
146
|
if (args.has('no-proxy') && args.value('proxy') !== undefined) {
|
|
143
147
|
fail('--proxy and --no-proxy are mutually exclusive');
|
|
144
148
|
}
|
|
145
|
-
if (args.has('proxy') && args.value('proxy') === undefined)
|
|
146
|
-
fail('--proxy needs a value');
|
|
147
149
|
const proxy = args.has('no-proxy') ? null : args.value('proxy');
|
|
148
150
|
const socketPath = resolveSocketPath(args.value('socket'), process.env);
|
|
149
151
|
const looksLikeOption = (value) => value.startsWith('--') || /^-(?=[A-Za-z])/.test(value);
|
|
@@ -187,11 +189,15 @@ export async function runPr(argv) {
|
|
|
187
189
|
if (asUser && accounts.length > 0)
|
|
188
190
|
fail('--as-user cannot be both bare and given a login');
|
|
189
191
|
const account = accounts[0];
|
|
190
|
-
if (account !== undefined &&
|
|
191
|
-
|
|
192
|
+
if (account !== undefined &&
|
|
193
|
+
action !== 'open' &&
|
|
194
|
+
action !== 'reply' &&
|
|
195
|
+
action !== 'submit-review' &&
|
|
196
|
+
action !== 'update') {
|
|
197
|
+
fail('--as-user <login> only opens, replies or reviews through the host broker; use bare --as-user for ' +
|
|
192
198
|
JSON.stringify(action));
|
|
193
199
|
}
|
|
194
|
-
if (asUser && !['open', 'resolve', 'reply', 'edit', 'comment'].includes(action)) {
|
|
200
|
+
if (asUser && !['open', 'resolve', 'reply', 'edit', 'comment', 'submit-review', 'update'].includes(action)) {
|
|
195
201
|
fail('--as-user without a login only opens, replies, resolves, edits or comments on a pull request, so it does not go with ' +
|
|
196
202
|
JSON.stringify(action));
|
|
197
203
|
}
|
|
@@ -228,16 +234,6 @@ export async function runPr(argv) {
|
|
|
228
234
|
const head = qualified(args.value('head'));
|
|
229
235
|
const base = baseBranch();
|
|
230
236
|
const title = args.value('title');
|
|
231
|
-
const bodyFile = args.value('body-file');
|
|
232
|
-
let body = args.value('body');
|
|
233
|
-
if (bodyFile !== undefined) {
|
|
234
|
-
try {
|
|
235
|
-
body = readFileSync(bodyFile, 'utf8');
|
|
236
|
-
}
|
|
237
|
-
catch (error) {
|
|
238
|
-
fail(`cannot read ${bodyFile}: ${error.message}`);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
237
|
if (action === 'open') {
|
|
242
238
|
if (!head)
|
|
243
239
|
fail('--head is required to open a pull request');
|
|
@@ -245,7 +241,7 @@ export async function runPr(argv) {
|
|
|
245
241
|
fail('--title is required to open a pull request');
|
|
246
242
|
}
|
|
247
243
|
else if (action !== 'resolve' && action !== 'edit' && number === undefined) {
|
|
248
|
-
const verb = action === 'status' ? 'inspect' : action;
|
|
244
|
+
const verb = action === 'status' ? 'inspect' : action === 'submit-review' ? 'review' : action;
|
|
249
245
|
fail(`--number is required to ${verb} a pull request`);
|
|
250
246
|
}
|
|
251
247
|
// `--resolve` and `--edit` name their target by id and need no pull request number, but one given
|
|
@@ -260,12 +256,6 @@ export async function runPr(argv) {
|
|
|
260
256
|
if (jq !== undefined && action !== 'review') {
|
|
261
257
|
fail('--jq only goes with --id');
|
|
262
258
|
}
|
|
263
|
-
if (action === 'update' && title === undefined && body === undefined && base === undefined) {
|
|
264
|
-
fail('an update has to change something: pass --title, --body/--body-file or --base');
|
|
265
|
-
}
|
|
266
|
-
if ((action === 'comment' || action === 'reply' || action === 'edit') && (body === undefined || body.trim() === '')) {
|
|
267
|
-
fail('a comment has to say something: pass --body or --body-file');
|
|
268
|
-
}
|
|
269
259
|
const filePath = args.value('file');
|
|
270
260
|
const lineArg = args.value('line');
|
|
271
261
|
const side = (args.value('side') ?? 'right').toLowerCase();
|
|
@@ -298,6 +288,25 @@ export async function runPr(argv) {
|
|
|
298
288
|
if (action === 'resolve' && (resolveId === undefined || resolveId.trim() === '')) {
|
|
299
289
|
fail(`--resolve needs the id of the thread being resolved, got ${JSON.stringify(resolveId)}`);
|
|
300
290
|
}
|
|
291
|
+
const hasBody = args.value('body') !== undefined || args.value('body-file') !== undefined;
|
|
292
|
+
let bodyValue;
|
|
293
|
+
let bodyRead = false;
|
|
294
|
+
const readBody = () => {
|
|
295
|
+
if (!bodyRead) {
|
|
296
|
+
bodyValue = bodyFromArgs(args);
|
|
297
|
+
bodyRead = true;
|
|
298
|
+
}
|
|
299
|
+
return bodyValue;
|
|
300
|
+
};
|
|
301
|
+
if (action === 'update' && title === undefined && !hasBody && base === undefined) {
|
|
302
|
+
fail('an update has to change something: pass --title, --body/--body-file or --base');
|
|
303
|
+
}
|
|
304
|
+
if ((action === 'comment' || action === 'reply' || action === 'edit') && !hasBody) {
|
|
305
|
+
fail('a comment has to say something: pass --body or --body-file');
|
|
306
|
+
}
|
|
307
|
+
if ((action === 'comment' || action === 'reply' || action === 'edit') && readBody()?.trim() === '') {
|
|
308
|
+
fail('a comment has to say something: pass --body or --body-file');
|
|
309
|
+
}
|
|
301
310
|
if (action === 'review') {
|
|
302
311
|
const ghArgs = ['pr', 'review-by-id', String(number), reviewId, '--repo', repo, '--host', host];
|
|
303
312
|
const socketArg = args.value('socket');
|
|
@@ -312,6 +321,22 @@ export async function runPr(argv) {
|
|
|
312
321
|
return runGh(ghArgs, { unreachableExitCode: 3 });
|
|
313
322
|
}
|
|
314
323
|
if (action === 'update') {
|
|
324
|
+
const body = hasBody ? readBody() : undefined;
|
|
325
|
+
if (account !== undefined) {
|
|
326
|
+
return submitToHostBroker({
|
|
327
|
+
kind: 'edit',
|
|
328
|
+
repo,
|
|
329
|
+
host,
|
|
330
|
+
number: Number(number),
|
|
331
|
+
...(title === undefined ? {} : { title }),
|
|
332
|
+
...(body === undefined ? {} : { body }),
|
|
333
|
+
...(base === undefined ? {} : { base }),
|
|
334
|
+
account,
|
|
335
|
+
proxy,
|
|
336
|
+
session: 'pr',
|
|
337
|
+
pid: process.pid,
|
|
338
|
+
}, (answer) => `edited #${answer.number ?? '?'} as ${account}${answer.url === undefined ? '' : `: ${answer.url}`}`);
|
|
339
|
+
}
|
|
315
340
|
const ghArgs = ['pr', 'edit', String(number), '--repo', repo, '--host', host];
|
|
316
341
|
if (title !== undefined)
|
|
317
342
|
ghArgs.push(`--title=${title}`);
|
|
@@ -326,12 +351,62 @@ export async function runPr(argv) {
|
|
|
326
351
|
ghArgs.push('--no-proxy');
|
|
327
352
|
else if (args.value('proxy') !== undefined)
|
|
328
353
|
ghArgs.push('--proxy', args.value('proxy'));
|
|
329
|
-
return runGh(ghArgs, { unreachableExitCode: 3 });
|
|
354
|
+
return runGh(ghArgs, { unreachableExitCode: 3, identity: asUser ? 'user' : 'app' });
|
|
355
|
+
}
|
|
356
|
+
if (action === 'submit-review') {
|
|
357
|
+
if (['threads', 'status', 'reply-to', 'edit', 'resolve', 'close', 'file', 'line', 'side', 'draft', 'head', 'base', 'title'].some((name) => args.has(name) || args.value(name) !== undefined)) {
|
|
358
|
+
fail('--approve/--request-changes/--review-comment cannot be combined with another action');
|
|
359
|
+
}
|
|
360
|
+
const events = [
|
|
361
|
+
args.has('approve') ? 'approve' : undefined,
|
|
362
|
+
args.has('request-changes') ? 'request-changes' : undefined,
|
|
363
|
+
args.has('review-comment') ? 'comment' : undefined,
|
|
364
|
+
].filter((event) => event !== undefined);
|
|
365
|
+
if (events.length !== 1)
|
|
366
|
+
fail('choose exactly one of --approve, --request-changes or --review-comment');
|
|
367
|
+
const event = events[0];
|
|
368
|
+
if (event !== 'approve' && !hasBody) {
|
|
369
|
+
fail(`--${event === 'comment' ? 'review-comment' : 'request-changes'} needs --body or --body-file`);
|
|
370
|
+
}
|
|
371
|
+
const body = event === 'approve' && !hasBody ? undefined : readBody();
|
|
372
|
+
if (event !== 'approve' && body?.trim() === '') {
|
|
373
|
+
fail(`--${event === 'comment' ? 'review-comment' : 'request-changes'} needs --body or --body-file`);
|
|
374
|
+
}
|
|
375
|
+
if (account !== undefined) {
|
|
376
|
+
return submitToHostBroker({
|
|
377
|
+
kind: 'review',
|
|
378
|
+
repo,
|
|
379
|
+
host,
|
|
380
|
+
number: Number(number),
|
|
381
|
+
event,
|
|
382
|
+
body: body ?? '',
|
|
383
|
+
account,
|
|
384
|
+
proxy,
|
|
385
|
+
session: 'pr',
|
|
386
|
+
pid: process.pid,
|
|
387
|
+
}, (answer) => `submitted ${event} review on #${answer.number ?? '?'} as ${account}${answer.url === undefined ? '' : `: ${answer.url}`}`);
|
|
388
|
+
}
|
|
389
|
+
const ghArgs = ['pr', 'review', String(number), '--repo', repo, '--host', host];
|
|
390
|
+
if (event === 'approve')
|
|
391
|
+
ghArgs.push('--approve');
|
|
392
|
+
else
|
|
393
|
+
ghArgs.push(event === 'request-changes' ? '--request-changes' : '--comment');
|
|
394
|
+
if (body !== undefined)
|
|
395
|
+
ghArgs.push(`--body=${body}`);
|
|
396
|
+
const socketArg = args.value('socket');
|
|
397
|
+
if (socketArg !== undefined)
|
|
398
|
+
ghArgs.push('--socket', socketArg);
|
|
399
|
+
if (args.has('no-proxy'))
|
|
400
|
+
ghArgs.push('--no-proxy');
|
|
401
|
+
else if (args.value('proxy') !== undefined)
|
|
402
|
+
ghArgs.push('--proxy', args.value('proxy'));
|
|
403
|
+
return runGh(ghArgs, { unreachableExitCode: 3, identity: asUser ? 'user' : 'app' });
|
|
330
404
|
}
|
|
331
405
|
if (account !== undefined && action === 'reply') {
|
|
332
406
|
if (number === undefined || replyTo === undefined)
|
|
333
407
|
fail('--as-user <login> needs --number and --reply-to');
|
|
334
|
-
|
|
408
|
+
const body = readBody();
|
|
409
|
+
return submitToHostBroker({
|
|
335
410
|
kind: 'reply',
|
|
336
411
|
repo,
|
|
337
412
|
host,
|
|
@@ -347,10 +422,11 @@ export async function runPr(argv) {
|
|
|
347
422
|
if (account !== undefined) {
|
|
348
423
|
if (head === undefined || title === undefined)
|
|
349
424
|
fail('--as-user needs --head and --title');
|
|
425
|
+
const body = hasBody ? readBody() : undefined;
|
|
350
426
|
if (args.value('repo') !== undefined && host.toLowerCase() !== 'github.com') {
|
|
351
427
|
fail('--as-user <login> with --repo only targets github.com; --host is not supported for create');
|
|
352
428
|
}
|
|
353
|
-
return
|
|
429
|
+
return submitToHostBroker({
|
|
354
430
|
...(args.value('repo') === undefined ? {} : { repo }),
|
|
355
431
|
head,
|
|
356
432
|
base: base ?? 'main',
|
|
@@ -366,6 +442,7 @@ export async function runPr(argv) {
|
|
|
366
442
|
if (socketPath === undefined) {
|
|
367
443
|
fail('no broker socket: pass --socket, set GIT_BROKER_SOCKET, or run `gcb setup`');
|
|
368
444
|
}
|
|
445
|
+
const body = ['open', 'comment', 'reply', 'edit'].includes(action) && hasBody ? readBody() : undefined;
|
|
369
446
|
let response;
|
|
370
447
|
try {
|
|
371
448
|
response = await requestOverSocket(socketPath, {
|
package/lib/commands/pr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
package/lib/commands/repo.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { LOGIN, REPOSITORY, fail, parseArgs, say } from 'gcb-core';
|
|
9
9
|
import { requestOverSocket, resolveSocketPath } from '../helper.js';
|
|
10
10
|
import { remoteRepo } from './remotes.js';
|
|
11
|
-
import {
|
|
11
|
+
import { submitToHostBroker } from './host-submit.js';
|
|
12
12
|
const KNOWN_FLAGS = new Set([
|
|
13
13
|
'help', 'h', 'as-user', 'proxy', 'no-proxy', 'socket', 'host',
|
|
14
14
|
]);
|
|
@@ -78,7 +78,7 @@ export async function runRepo(argv) {
|
|
|
78
78
|
}
|
|
79
79
|
const host = hostValue ?? origin?.host ?? 'github.com';
|
|
80
80
|
if (account !== undefined) {
|
|
81
|
-
return
|
|
81
|
+
return submitToHostBroker({ kind: 'fork', repo: source, host, account, proxy, session: 'repo', pid: process.pid }, (answer) => `forked ${source} as ${account}: ${answer.url ?? '(no url)'}`);
|
|
82
82
|
}
|
|
83
83
|
const socketPath = resolveSocketPath(args.value('socket'), process.env);
|
|
84
84
|
if (socketPath === undefined) {
|