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.
@@ -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, readOpener, removeResult, waitForResult, writeRequest, } from 'gcb-core';
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 an opener request produced no answer.
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
- * Write, wait for and report one opener request.
34
- *
35
- * @param request - the validated request.
36
- * @param success - formats the success line from the answer.
37
- * @returns 0 after the answer is reported.
38
- */
39
- export async function submitToOpener(request, success) {
40
- const noun = request.kind === 'fork'
41
- ? 'fork'
42
- : request.kind === 'issue'
43
- ? 'issue'
44
- : request.kind === 'reply'
45
- ? 'reply'
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 opener = readOpener(dir);
52
- if (opener === undefined) {
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
- ' or drop --as-user to open it as the app instead');
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
- const needed = request.kind === 'issue' ? 'issue' : request.kind === 'fork' ? 'fork' : request.kind === 'reply' ? 'reply' : undefined;
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
- // A short override makes the timeout path testable without a 180-second test; absent means the
71
- // contract value.
72
- const configured = Number(process.env['GCB_OPENER_TIMEOUT_MS']);
73
- const timeoutMs = Number.isInteger(configured) && configured > 0 ? configured : ANSWER_TIMEOUT_MS;
74
- let answer = await waitForResult(dir, id, timeoutMs, 50);
75
- // A result can land between the deadline and the cleanup. Re-read before claiming the request
76
- // disappeared; deleting it first would turn a successful, late answer into a false "dropped".
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
- fail(noAnswerMessage(dir, id, noun, timeoutMs));
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 open it: ${answer.error}`);
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":"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"}
1
+ {"version":3,"file":"host-submit.js","sourceRoot":"","sources":["../../src/commands/host-submit.ts"],"names":[],"mappings":"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"}
@@ -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, read from a file \u2014 a pull request 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 reply, resolve, edit or comment; fails if no user token is\n configured. Without it, open/reply/edit/comment use the app;\n resolve always needs the person\n --as-user <login> Create or reply through the host broker, using ~/.config/gh-<login>\n (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 --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";
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
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAgCA,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,kgGAgDpB,CAAC;AA6BF;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuTpE"}
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"}
@@ -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 { submitToOpener } from './host-submit.js';
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', 'via-host', 'status',
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, read from a file — a pull request body is usually long
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 is
49
- configured. Without it, open/reply/edit/comment use the app;
50
- resolve always needs the person
51
- --as-user <login> Create or reply through the host broker, using ~/.config/gh-<login>
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.has('help') || args.has('h')) {
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 && action !== 'open' && action !== 'reply') {
191
- fail('--as-user <login> only opens or replies through the host broker; use bare --as-user for ' +
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
- return submitToOpener({
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 submitToOpener({
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, {
@@ -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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"}
@@ -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 { submitToOpener } from './host-submit.js';
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 submitToOpener({ kind: 'fork', repo: source, host, account, proxy, session: 'repo', pid: process.pid }, (answer) => `forked ${source} as ${account}: ${answer.url ?? '(no url)'}`);
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) {