gcb-client 0.4.0 → 0.6.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 +26 -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 +192 -70
- package/lib/commands/gh.js.map +1 -1
- package/lib/commands/host-submit.d.ts +9 -2
- package/lib/commands/host-submit.d.ts.map +1 -1
- package/lib/commands/host-submit.js +75 -27
- 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 +34 -23
- package/lib/commands/pr.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 -225
- package/lib/commands/issue.js.map +0 -1
|
@@ -6,8 +6,8 @@
|
|
|
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
12
|
* Explain why a host-broker request produced no answer.
|
|
13
13
|
*
|
|
@@ -31,22 +31,14 @@ export function noAnswerMessage(dir, id, noun, timeoutMs) {
|
|
|
31
31
|
}
|
|
32
32
|
const KINDS = {
|
|
33
33
|
'pull-request': { noun: 'pull request' },
|
|
34
|
-
issue: { noun: 'issue', needed: 'issue' },
|
|
35
34
|
fork: { noun: 'fork', needed: 'fork' },
|
|
36
35
|
reply: { noun: 'reply', needed: 'reply' },
|
|
37
36
|
edit: { noun: 'edit', needed: 'edit' },
|
|
38
|
-
'issue-edit': { noun: 'issue edit', needed: 'issue-edit' },
|
|
39
|
-
'issue-comment': { noun: 'issue comment', needed: 'issue-comment' },
|
|
40
37
|
review: { noun: 'review', needed: 'review' },
|
|
38
|
+
action: { noun: 'action', needed: 'action' },
|
|
41
39
|
};
|
|
42
|
-
/**
|
|
43
|
-
|
|
44
|
-
*
|
|
45
|
-
* @param request - the validated request.
|
|
46
|
-
* @param success - formats the success line from the answer.
|
|
47
|
-
* @returns 0 after the answer is reported.
|
|
48
|
-
*/
|
|
49
|
-
export async function submitToHostBroker(request, success) {
|
|
40
|
+
/** Write, wait for and return one host-broker answer. */
|
|
41
|
+
async function exchange(request, timeoutMs = ANSWER_TIMEOUT_MS, claimedTimeoutMs) {
|
|
50
42
|
const problems = requestProblems(request);
|
|
51
43
|
if (problems.length > 0)
|
|
52
44
|
fail(problems.join('; '));
|
|
@@ -55,17 +47,16 @@ export async function submitToHostBroker(request, success) {
|
|
|
55
47
|
if (gitDir === undefined)
|
|
56
48
|
fail('--as-user needs a git repository: run it from the checkout');
|
|
57
49
|
const dir = channelDir(gitDir);
|
|
58
|
-
const
|
|
59
|
-
if (
|
|
50
|
+
const hostBroker = readHostBroker(dir);
|
|
51
|
+
if (hostBroker === undefined) {
|
|
60
52
|
fail(`no host broker is watching ${dir}\n` +
|
|
61
53
|
' start one on the host: gcb host --repo <that checkout>\n' +
|
|
54
|
+
' if one is already running, restart it from this gcb-host version\n' +
|
|
62
55
|
' or drop --as-user to do it as the app instead');
|
|
63
56
|
}
|
|
64
|
-
if (needed !== undefined && !(Array.isArray(
|
|
57
|
+
if (needed !== undefined && !(Array.isArray(hostBroker.kinds) && hostBroker.kinds.includes(needed))) {
|
|
65
58
|
fail(`the host broker does not advertise ${needed} support; restart it from this gcb-host version`);
|
|
66
59
|
}
|
|
67
|
-
// requestProblems above already checked the contract. Keep the catch as defence in case the two
|
|
68
|
-
// validators ever diverge; a stack trace would tell the caller none of it.
|
|
69
60
|
let id;
|
|
70
61
|
try {
|
|
71
62
|
id = writeRequest(dir, request);
|
|
@@ -73,21 +64,78 @@ export async function submitToHostBroker(request, success) {
|
|
|
73
64
|
catch (error) {
|
|
74
65
|
fail(error.message);
|
|
75
66
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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);
|
|
83
74
|
if (answer === undefined)
|
|
84
75
|
answer = await waitForResult(dir, id, 300, 50);
|
|
85
|
-
if (answer === undefined)
|
|
86
|
-
|
|
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
|
+
}
|
|
87
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);
|
|
88
119
|
if (answer.error !== undefined)
|
|
89
120
|
fail(`the host broker could not do it: ${answer.error}`);
|
|
90
121
|
say(success(answer));
|
|
91
122
|
return 0;
|
|
92
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
|
+
}
|
|
93
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,eAAe,EACf,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 Catalogued reads use gcb gh pr view|list|checks|status instead.\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,28GAsDpB,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,13 +11,12 @@
|
|
|
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
18
|
import { submitToHostBroker } from './host-submit.js';
|
|
20
|
-
import { fail, parseArgs, say, validateArgs } from 'gcb-core';
|
|
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',
|
|
@@ -43,14 +42,15 @@ Opening (the default)
|
|
|
43
42
|
A <remote>:<branch> here names the same repository as --repo
|
|
44
43
|
--title <text> The title [required]
|
|
45
44
|
--body <text> The body, inline
|
|
46
|
-
--body-file <path> The body
|
|
45
|
+
--body-file <path> The body from a file, or '-' for stdin; a PR body is usually long
|
|
47
46
|
--draft Open it as a draft
|
|
48
47
|
--as-user Act as the authorized person through the broker for open,
|
|
49
48
|
review, reply, resolve, edit or comment; fails if no user token
|
|
50
49
|
is configured. Without it, open/review/reply/edit/comment use
|
|
51
50
|
the app; resolve always needs the person
|
|
52
51
|
--as-user <login> Create, review, reply or edit through the host broker, using
|
|
53
|
-
~/.config/gh-<login> (run 'gcb host' on the host)
|
|
52
|
+
~/.config/gh-<login> (run 'gcb host' on the host).
|
|
53
|
+
Catalogued reads use gcb gh pr view|list|checks|status instead.
|
|
54
54
|
|
|
55
55
|
Acting on one
|
|
56
56
|
--number <n> The pull request number [required]
|
|
@@ -195,11 +195,11 @@ export async function runPr(argv) {
|
|
|
195
195
|
action !== 'reply' &&
|
|
196
196
|
action !== 'submit-review' &&
|
|
197
197
|
action !== 'update') {
|
|
198
|
-
fail('
|
|
198
|
+
fail('the flag-only gcb pr form only opens, replies or reviews through the host broker; use gcb gh pr ... for ' +
|
|
199
199
|
JSON.stringify(action));
|
|
200
200
|
}
|
|
201
201
|
if (asUser && !['open', 'resolve', 'reply', 'edit', 'comment', 'submit-review', 'update'].includes(action)) {
|
|
202
|
-
fail('
|
|
202
|
+
fail('the flag-only gcb pr form only opens, replies, resolves, edits or comments on a pull request, so it does not go with ' +
|
|
203
203
|
JSON.stringify(action));
|
|
204
204
|
}
|
|
205
205
|
if (account !== undefined && !LOGIN.test(account)) {
|
|
@@ -235,16 +235,6 @@ export async function runPr(argv) {
|
|
|
235
235
|
const head = qualified(args.value('head'));
|
|
236
236
|
const base = baseBranch();
|
|
237
237
|
const title = args.value('title');
|
|
238
|
-
const bodyFile = args.value('body-file');
|
|
239
|
-
let body = args.value('body');
|
|
240
|
-
if (bodyFile !== undefined) {
|
|
241
|
-
try {
|
|
242
|
-
body = readFileSync(bodyFile, 'utf8');
|
|
243
|
-
}
|
|
244
|
-
catch (error) {
|
|
245
|
-
fail(`cannot read ${bodyFile}: ${error.message}`);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
238
|
if (action === 'open') {
|
|
249
239
|
if (!head)
|
|
250
240
|
fail('--head is required to open a pull request');
|
|
@@ -267,12 +257,6 @@ export async function runPr(argv) {
|
|
|
267
257
|
if (jq !== undefined && action !== 'review') {
|
|
268
258
|
fail('--jq only goes with --id');
|
|
269
259
|
}
|
|
270
|
-
if (action === 'update' && title === undefined && body === undefined && base === undefined) {
|
|
271
|
-
fail('an update has to change something: pass --title, --body/--body-file or --base');
|
|
272
|
-
}
|
|
273
|
-
if ((action === 'comment' || action === 'reply' || action === 'edit') && (body === undefined || body.trim() === '')) {
|
|
274
|
-
fail('a comment has to say something: pass --body or --body-file');
|
|
275
|
-
}
|
|
276
260
|
const filePath = args.value('file');
|
|
277
261
|
const lineArg = args.value('line');
|
|
278
262
|
const side = (args.value('side') ?? 'right').toLowerCase();
|
|
@@ -305,6 +289,25 @@ export async function runPr(argv) {
|
|
|
305
289
|
if (action === 'resolve' && (resolveId === undefined || resolveId.trim() === '')) {
|
|
306
290
|
fail(`--resolve needs the id of the thread being resolved, got ${JSON.stringify(resolveId)}`);
|
|
307
291
|
}
|
|
292
|
+
const hasBody = args.value('body') !== undefined || args.value('body-file') !== undefined;
|
|
293
|
+
let bodyValue;
|
|
294
|
+
let bodyRead = false;
|
|
295
|
+
const readBody = () => {
|
|
296
|
+
if (!bodyRead) {
|
|
297
|
+
bodyValue = bodyFromArgs(args);
|
|
298
|
+
bodyRead = true;
|
|
299
|
+
}
|
|
300
|
+
return bodyValue;
|
|
301
|
+
};
|
|
302
|
+
if (action === 'update' && title === undefined && !hasBody && base === undefined) {
|
|
303
|
+
fail('an update has to change something: pass --title, --body/--body-file or --base');
|
|
304
|
+
}
|
|
305
|
+
if ((action === 'comment' || action === 'reply' || action === 'edit') && !hasBody) {
|
|
306
|
+
fail('a comment has to say something: pass --body or --body-file');
|
|
307
|
+
}
|
|
308
|
+
if ((action === 'comment' || action === 'reply' || action === 'edit') && readBody()?.trim() === '') {
|
|
309
|
+
fail('a comment has to say something: pass --body or --body-file');
|
|
310
|
+
}
|
|
308
311
|
if (action === 'review') {
|
|
309
312
|
const ghArgs = ['pr', 'review-by-id', String(number), reviewId, '--repo', repo, '--host', host];
|
|
310
313
|
const socketArg = args.value('socket');
|
|
@@ -319,6 +322,7 @@ export async function runPr(argv) {
|
|
|
319
322
|
return runGh(ghArgs, { unreachableExitCode: 3 });
|
|
320
323
|
}
|
|
321
324
|
if (action === 'update') {
|
|
325
|
+
const body = hasBody ? readBody() : undefined;
|
|
322
326
|
if (account !== undefined) {
|
|
323
327
|
return submitToHostBroker({
|
|
324
328
|
kind: 'edit',
|
|
@@ -362,7 +366,11 @@ export async function runPr(argv) {
|
|
|
362
366
|
if (events.length !== 1)
|
|
363
367
|
fail('choose exactly one of --approve, --request-changes or --review-comment');
|
|
364
368
|
const event = events[0];
|
|
365
|
-
if (event !== 'approve' &&
|
|
369
|
+
if (event !== 'approve' && !hasBody) {
|
|
370
|
+
fail(`--${event === 'comment' ? 'review-comment' : 'request-changes'} needs --body or --body-file`);
|
|
371
|
+
}
|
|
372
|
+
const body = event === 'approve' && !hasBody ? undefined : readBody();
|
|
373
|
+
if (event !== 'approve' && body?.trim() === '') {
|
|
366
374
|
fail(`--${event === 'comment' ? 'review-comment' : 'request-changes'} needs --body or --body-file`);
|
|
367
375
|
}
|
|
368
376
|
if (account !== undefined) {
|
|
@@ -398,6 +406,7 @@ export async function runPr(argv) {
|
|
|
398
406
|
if (account !== undefined && action === 'reply') {
|
|
399
407
|
if (number === undefined || replyTo === undefined)
|
|
400
408
|
fail('--as-user <login> needs --number and --reply-to');
|
|
409
|
+
const body = readBody();
|
|
401
410
|
return submitToHostBroker({
|
|
402
411
|
kind: 'reply',
|
|
403
412
|
repo,
|
|
@@ -414,6 +423,7 @@ export async function runPr(argv) {
|
|
|
414
423
|
if (account !== undefined) {
|
|
415
424
|
if (head === undefined || title === undefined)
|
|
416
425
|
fail('--as-user needs --head and --title');
|
|
426
|
+
const body = hasBody ? readBody() : undefined;
|
|
417
427
|
if (args.value('repo') !== undefined && host.toLowerCase() !== 'github.com') {
|
|
418
428
|
fail('--as-user <login> with --repo only targets github.com; --host is not supported for create');
|
|
419
429
|
}
|
|
@@ -433,6 +443,7 @@ export async function runPr(argv) {
|
|
|
433
443
|
if (socketPath === undefined) {
|
|
434
444
|
fail('no broker socket: pass --socket, set GIT_BROKER_SOCKET, or run `gcb setup`');
|
|
435
445
|
}
|
|
446
|
+
const body = ['open', 'comment', 'reply', 'edit'].includes(action) && hasBody ? readBody() : undefined;
|
|
436
447
|
let response;
|
|
437
448
|
try {
|
|
438
449
|
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/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { CommandBackend } from 'gcb-core';
|
|
2
|
+
import type { Primary } from './primary.ts';
|
|
2
3
|
export { runHelper } from './helper.ts';
|
|
3
4
|
export declare const CLIENT_HELP: string;
|
|
5
|
+
export declare function runClient(argv: readonly string[], primary?: Primary): Promise<number>;
|
|
4
6
|
export declare const clientBackend: CommandBackend;
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkBxC,eAAO,MAAM,WAAW,QAyB2C,CAAC;AAUpE,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAmD3F;AAED,eAAO,MAAM,aAAa,EAAE,cAK3B,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -43,9 +43,18 @@ Environment
|
|
|
43
43
|
GIT_BROKER_REQUIRE=1 Fail closed instead of behaving as if not installed when unconfigured
|
|
44
44
|
GIT_BROKER_SOCKET_FILE Where to read the socket path from when no variable is set
|
|
45
45
|
GCB_PROXY Per-push broker proxy: a URL, or empty for direct
|
|
46
|
+
GCB_PRIMARY CLI that runs catalogued actions (default: gh)
|
|
46
47
|
|
|
47
48
|
Host commands such as init/stage/compose/diagnose are in gcb-host.`;
|
|
48
|
-
|
|
49
|
+
/** Ask the selected action's own scan, rather than a second interpretation of its argv. */
|
|
50
|
+
async function actionAsksHelp(domain, sub, argv) {
|
|
51
|
+
if (sub === undefined || sub.startsWith('-')) {
|
|
52
|
+
return argv.includes('--help') || argv.includes('-h');
|
|
53
|
+
}
|
|
54
|
+
return (await import('./commands/gh.js')).actionHelpRequested(`${domain}:${sub}`, argv);
|
|
55
|
+
}
|
|
56
|
+
export async function runClient(argv, primary) {
|
|
57
|
+
const choose = async () => primary ?? (await import('./primary.js')).primaryFromEnv();
|
|
49
58
|
const [command, ...rest] = argv;
|
|
50
59
|
switch (command) {
|
|
51
60
|
case 'setup':
|
|
@@ -60,29 +69,34 @@ async function run(argv) {
|
|
|
60
69
|
// Bare `pr` asks the catalog too, where `run` needs no branch: the flag-only path would only
|
|
61
70
|
// tell it that --repo is required.
|
|
62
71
|
if (rest.length === 0)
|
|
63
|
-
return (await
|
|
72
|
+
return (await choose()).run(['pr']);
|
|
64
73
|
const sub = rest[0];
|
|
65
74
|
if (sub === 'review' && rest.some((argument) => argument === '--id' || argument.startsWith('--id='))) {
|
|
66
75
|
return (await import('./commands/pr.js')).runPr(rest.slice(1));
|
|
67
76
|
}
|
|
68
|
-
if (sub === 'create' &&
|
|
69
|
-
rest.some((argument) => argument === '--as-user' ||
|
|
70
|
-
argument.startsWith('--as-user=') ||
|
|
71
|
-
argument === '-as-user' ||
|
|
72
|
-
argument.startsWith('-as-user='))) {
|
|
77
|
+
if (sub === 'create' && (await import('./commands/gh.js')).actionHasAsUser('pr:create', rest)) {
|
|
73
78
|
// `pr create` is the catalogued action, but `--as-user` is the flag-only lifecycle's flag.
|
|
74
79
|
// Accept the obvious spelling instead of making the caller discover that `create` must go.
|
|
75
80
|
return (await import('./commands/pr.js')).runPr(rest.slice(1));
|
|
76
81
|
}
|
|
77
82
|
if (sub !== undefined && Object.hasOwn(GH_ACTIONS, `pr:${sub}`)) {
|
|
78
|
-
|
|
83
|
+
if (await actionAsksHelp('pr', sub, rest)) {
|
|
84
|
+
return (await import('./commands/gh.js')).runGh(['pr', ...rest], { unreachableExitCode: 3 });
|
|
85
|
+
}
|
|
86
|
+
return (await choose()).run(['pr', ...rest], { unreachableExitCode: 3 });
|
|
79
87
|
}
|
|
80
88
|
return (await import('./commands/pr.js')).runPr(rest);
|
|
81
89
|
}
|
|
82
90
|
case 'run':
|
|
83
|
-
|
|
91
|
+
if (await actionAsksHelp('run', rest[0], rest)) {
|
|
92
|
+
return (await import('./commands/gh.js')).runGh(['run', ...rest]);
|
|
93
|
+
}
|
|
94
|
+
return (await choose()).run(['run', ...rest]);
|
|
84
95
|
case 'issue':
|
|
85
|
-
|
|
96
|
+
if (await actionAsksHelp('issue', rest[0], rest)) {
|
|
97
|
+
return (await import('./commands/gh.js')).runGh(['issue', ...rest]);
|
|
98
|
+
}
|
|
99
|
+
return (await choose()).run(['issue', ...rest]);
|
|
86
100
|
case 'repo':
|
|
87
101
|
return (await import('./commands/repo.js')).runRepo(rest);
|
|
88
102
|
case 'gh':
|
|
@@ -96,6 +110,6 @@ export const clientBackend = {
|
|
|
96
110
|
role: 'client',
|
|
97
111
|
commands: CLIENT_COMMANDS,
|
|
98
112
|
help: CLIENT_HELP,
|
|
99
|
-
run,
|
|
113
|
+
run: runClient,
|
|
100
114
|
};
|
|
101
115
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/primary.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Options a primary passes through to the action runner. */
|
|
2
|
+
export interface PrimaryRunOptions {
|
|
3
|
+
readonly unreachableExitCode?: number;
|
|
4
|
+
readonly identity?: 'app' | 'user';
|
|
5
|
+
}
|
|
6
|
+
/** One CLI that can run a catalogued action. */
|
|
7
|
+
export interface Primary {
|
|
8
|
+
/** The configured name, e.g. `gh`. */
|
|
9
|
+
readonly name: string;
|
|
10
|
+
/** Run one catalogued action. */
|
|
11
|
+
run(argv: readonly string[], options?: PrimaryRunOptions): Promise<number>;
|
|
12
|
+
}
|
|
13
|
+
/** The `gh` adapter. */
|
|
14
|
+
export declare const GH_PRIMARY: Primary;
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the configured primary.
|
|
17
|
+
*
|
|
18
|
+
* Only `gh` is implemented; an unknown name fails closed instead of falling back to a different
|
|
19
|
+
* CLI that would interpret the argv differently.
|
|
20
|
+
*
|
|
21
|
+
* @param env - the environment to read `GCB_PRIMARY` from.
|
|
22
|
+
* @param primaries - the available adapters, keyed by name.
|
|
23
|
+
* @returns the selected primary.
|
|
24
|
+
*/
|
|
25
|
+
export declare function primaryFromEnv(env?: NodeJS.ProcessEnv, primaries?: Readonly<Record<string, Primary>>): Primary;
|
|
26
|
+
//# sourceMappingURL=primary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primary.d.ts","sourceRoot":"","sources":["../src/primary.ts"],"names":[],"mappings":"AAUA,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,WAAW,OAAO;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5E;AAED,wBAAwB;AACxB,eAAO,MAAM,UAAU,EAAE,OAGxB,CAAC;AAKF;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAqB,GAC/D,OAAO,CAQT"}
|
package/lib/primary.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CLI adapter that runs a catalogued action.
|
|
3
|
+
*
|
|
4
|
+
* The action catalog names `gh` commands today. A primary is the small seam between dispatch and
|
|
5
|
+
* that CLI, so selecting another forge CLI later does not require editing every command module.
|
|
6
|
+
*/
|
|
7
|
+
import { fail } from 'gcb-core';
|
|
8
|
+
import { runGh } from './commands/gh.js';
|
|
9
|
+
/** The `gh` adapter. */
|
|
10
|
+
export const GH_PRIMARY = {
|
|
11
|
+
name: 'gh',
|
|
12
|
+
run: (argv, options) => runGh(argv, options),
|
|
13
|
+
};
|
|
14
|
+
/** The adapters available in production. */
|
|
15
|
+
const DEFAULT_PRIMARIES = { [GH_PRIMARY.name]: GH_PRIMARY };
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the configured primary.
|
|
18
|
+
*
|
|
19
|
+
* Only `gh` is implemented; an unknown name fails closed instead of falling back to a different
|
|
20
|
+
* CLI that would interpret the argv differently.
|
|
21
|
+
*
|
|
22
|
+
* @param env - the environment to read `GCB_PRIMARY` from.
|
|
23
|
+
* @param primaries - the available adapters, keyed by name.
|
|
24
|
+
* @returns the selected primary.
|
|
25
|
+
*/
|
|
26
|
+
export function primaryFromEnv(env = process.env, primaries = DEFAULT_PRIMARIES) {
|
|
27
|
+
const configured = env['GCB_PRIMARY'] ?? GH_PRIMARY.name;
|
|
28
|
+
const selected = Object.hasOwn(primaries, configured) ? primaries[configured] : undefined;
|
|
29
|
+
if (selected === undefined) {
|
|
30
|
+
const available = Object.keys(primaries).join(', ');
|
|
31
|
+
fail(`unsupported primary ${JSON.stringify(configured)}; available: ${available}`);
|
|
32
|
+
}
|
|
33
|
+
return selected;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=primary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primary.js","sourceRoot":"","sources":["../src/primary.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAgBzC,wBAAwB;AACxB,MAAM,CAAC,MAAM,UAAU,GAAY;IACjC,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;CAC7C,CAAC;AAEF,4CAA4C;AAC5C,MAAM,iBAAiB,GAAsC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;AAE/F;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,SAAS,GAAsC,iBAAiB;IAEhE,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|