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 CHANGED
@@ -1,5 +1,41 @@
1
1
  # gcb-client
2
2
 
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#81](https://github.com/code-vaults/git-credential-broker/pull/81) [`93889a4`](https://github.com/code-vaults/git-credential-broker/commit/93889a430f5b906fec6d57b2bcbe1251ce8e9791) Thanks [@JounQin](https://github.com/JounQin)! - Dispatch catalogued `pr` and `issue` subcommands through one primary adapter. `gh` remains the
8
+ default; `GCB_PRIMARY` selects the adapter and an unsupported name fails closed.
9
+ `gcb issue` is now the same catalog shell as `gcb gh issue`, so its separate host-submit module is
10
+ gone; the host login form is `gcb gh issue ... --as-user <login>`. `--body-file -` reads the
11
+ body from standard input, matching `gh`. `gcb gh` accepts both `--as-user` forms: bare for actions the app broker
12
+ can run as a person, and a login for the catalogued action through the host broker. The host request carries the action
13
+ name and typed values; the broker rebuilds argv from the catalog.
14
+
15
+ The host-broker channel is named consistently now: `GCB_HOST_TIMEOUT_MS` replaces `GCB_OPENER_TIMEOUT_MS`, the marker file is `host-broker.json`, the channel directory is `gcb/host-broker`, and the core helpers are `readHostBroker`/`writeHostBroker`/`clearHostBroker`; the `gcb-core` result type is now `HostResult`, not `HostOpenResult`. Client and host must be upgraded together; the host program override is `GCB_HOST_COMMAND`.
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [[`51f0a65`](https://github.com/code-vaults/git-credential-broker/commit/51f0a65babcb9585a9ef56a5eeb754c9adc54bf0), [`5dedb25`](https://github.com/code-vaults/git-credential-broker/commit/5dedb25dbb47fd61f85bed444f1744214addcc22), [`705c139`](https://github.com/code-vaults/git-credential-broker/commit/705c13916643a4951476240b84f732feb236b964), [`e5bd34e`](https://github.com/code-vaults/git-credential-broker/commit/e5bd34ecabda5510763eef6e8689f6c3c14b0316), [`914535b`](https://github.com/code-vaults/git-credential-broker/commit/914535be1fb6223a0f055c2730fcaf304d976991)]:
20
+ - gcb-core@0.5.0
21
+
22
+ ## 0.4.0
23
+
24
+ ### Minor Changes
25
+
26
+ - [#78](https://github.com/code-vaults/git-credential-broker/pull/78) [`75af9c8`](https://github.com/code-vaults/git-credential-broker/commit/75af9c8427ab72602ae43f6a82ab4458b3549ecf) Thanks [@JounQin](https://github.com/JounQin)! - Let a person submit a pull request review through the broker: bare `--as-user` uses the broker's
27
+ authorized person through the app broker, while `--as-user <login>` writes a typed host request,
28
+ checked against the broker allowlist, that runs `gh pr review` without a shell. `--approve`,
29
+ `--request-changes` and `--review-comment` are the review events. `pr:edit` also supports the
30
+ same person identities, so a pull request's title, body or base can be changed through the broker.
31
+ The catalog also gains `issue:edit` and `issue:comment`, with the same app/person identity
32
+ handling.
33
+
34
+ ### Patch Changes
35
+
36
+ - Updated dependencies [[`75af9c8`](https://github.com/code-vaults/git-credential-broker/commit/75af9c8427ab72602ae43f6a82ab4458b3549ecf)]:
37
+ - gcb-core@0.4.0
38
+
3
39
  ## 0.3.0
4
40
 
5
41
  ### Minor Changes
package/README.md ADDED
@@ -0,0 +1,42 @@
1
+ # gcb-client
2
+
3
+ Container-side `gcb`: the git credential helper and the client for a host-side `gcb-host` broker.
4
+
5
+ The container holds no long-lived GitHub credential. `git push` asks this client, which asks the
6
+ broker over a unix socket; the broker returns a short-lived installation token, and the helper hands
7
+ it to Git for that push. The token expires; it is not stored in the container.
8
+
9
+ ```sh
10
+ npm install --global gcb-client
11
+ gcb setup
12
+ ```
13
+
14
+ `gcb setup` configures this environment's git to use the broker as a `!gcb` credential helper.
15
+
16
+ ## Commands
17
+
18
+ - `gcb setup`, `gcb probe`, `gcb logs`
19
+ - `gcb pr ...` — pull-request lifecycle and catalogued actions
20
+ - `gcb issue ...` — issue actions and person/host routes
21
+ - `gcb run ...` — workflow run actions
22
+ - `gcb gh ...` — run a catalogued action explicitly
23
+ - `gcb repo fork` — fork as a person
24
+
25
+ `GCB_PRIMARY` selects the CLI adapter for catalogued actions. The default is `gh`; an unsupported
26
+ name fails closed. The host broker still performs the action.
27
+
28
+ `gcb gh` accepts both person forms: bare `--as-user` for actions the app broker can run with the
29
+ person identity, and `--as-user <login>` to run the catalogued action through the host broker with
30
+ that gh account.
31
+
32
+ ## Requirements
33
+
34
+ - Node.js 24 or newer
35
+ - a running `gcb-host` broker, reachable through `GIT_BROKER_SOCKET` or `gcb setup`
36
+
37
+ See the [repository README](https://github.com/code-vaults/git-credential-broker#readme) for the
38
+ full configuration and deployment guide.
39
+
40
+ ## License
41
+
42
+ MIT
@@ -1,4 +1,7 @@
1
- /** Usage text for `gh`. */
1
+ /** Whether a catalogued action's argv carries either --as-user form, in option position. */
2
+ export declare function actionHasAsUser(actionName: string, rawRest: readonly string[]): boolean;
3
+ /** Whether a catalogued action's argv asks for help, using the same scan. */
4
+ export declare function actionHelpRequested(actionName: string, rawRest: readonly string[]): boolean;
2
5
  export declare const GH_USAGE: string;
3
6
  /**
4
7
  * Run the `gh` command.
@@ -1 +1 @@
1
- {"version":3,"file":"gh.d.ts","sourceRoot":"","sources":["../../src/commands/gh.ts"],"names":[],"mappings":"AA8CA,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,QAeL,CAAC;AAEjB;;;;;;GAMG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE;IAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAAO,GAC1F,OAAO,CAAC,MAAM,CAAC,CAgNjB"}
1
+ {"version":3,"file":"gh.d.ts","sourceRoot":"","sources":["../../src/commands/gh.ts"],"names":[],"mappings":"AAuLA,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAGvF;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAM3F;AAED,eAAO,MAAM,QAAQ,QAoBL,CAAC;AAEjB;;;;;;GAMG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE;IAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAAO,GAC1F,OAAO,CAAC,MAAM,CAAC,CAyLjB"}
@@ -4,8 +4,9 @@
4
4
  * The action catalog defines the command, flags, positionals and permissions. The client only
5
5
  * parses names and values; the broker rebuilds the canonical argv and runs gh with its own token.
6
6
  */
7
- import { GH_ACTIONS, getGhAction, parseArgs, say, fail } from 'gcb-core';
7
+ import { GH_ACTIONS, LOGIN, bodyFromArgs, buildGhArgv, getGhAction, parseArgs, say, fail } from 'gcb-core';
8
8
  import { requestOverSocket, resolveSocketPath } from '../helper.js';
9
+ import { submitActionToHostBroker } from './host-submit.js';
9
10
  import { remoteRepo } from './remotes.js';
10
11
  const ACTION_LINES = Object.values(GH_ACTIONS)
11
12
  .map((action) => {
@@ -20,11 +21,16 @@ const ACTION_LINES = Object.values(GH_ACTIONS)
20
21
  .join(' ');
21
22
  const modes = action.exactlyOneOf === undefined
22
23
  ? ''
23
- : ` (one of ${action.exactlyOneOf.map((flag) => `--${flag}`).join(', ')})`;
24
+ : ` (one of ${action.exactlyOneOf
25
+ .map((field) => (action.positionals.some((positional) => positional.name === field) ? field : `--${field}`))
26
+ .join(', ')})`;
24
27
  const body = action.bodyRequiredWith === undefined
25
28
  ? ''
26
29
  : ` (--body required with ${action.bodyRequiredWith.map((flag) => `--${flag}`).join(', ')})`;
27
- return ` ${action.command.join(' ')}${positionals ? ` ${positionals}` : ''}${flags ? ` ${flags}` : ''}${modes}${body}`;
30
+ const conflicts = action.conflicts === undefined
31
+ ? ''
32
+ : ` (not both ${action.conflicts.map(([left, right]) => `--${left}/--${right}`).join(', ')})`;
33
+ return ` ${action.command.join(' ')}${positionals ? ` ${positionals}` : ''}${flags ? ` ${flags}` : ''}${modes}${body}${conflicts}`;
28
34
  })
29
35
  .join('\n');
30
36
  /**
@@ -40,72 +46,31 @@ function repoFromCheckout(cwd) {
40
46
  const found = remoteRepo('origin', cwd);
41
47
  return found === undefined ? undefined : { repo: `${found.owner}/${found.repo}`, host: found.host };
42
48
  }
43
- /** Usage text for `gh`. */
44
- export const GH_USAGE = `Usage: gcb gh <domain> <command> [options]
45
-
46
- Run a catalogued GitHub action through the broker.
47
- gcb pr <subcommand>, gcb run <subcommand> and gcb issue <subcommand> are shorthands for the same
48
- actions.
49
-
50
- Common
51
- -R, --repo <owner/name> Repository the action belongs to (default: origin remote)
52
- --host <host> Host as configured, e.g. github.com (default: github.com)
53
- --socket <path> Broker socket (default: GIT_BROKER_SOCKET)
54
- --proxy <url> Use this proxy for this action
55
- --no-proxy Reach GitHub directly for this action
56
- -h, --help Show this help
57
-
58
- Commands, from the action catalog
59
- ${ACTION_LINES}`;
60
- /**
61
- * Run the `gh` command.
62
- *
63
- * @param argv - arguments after `gh`.
64
- * @returns the process exit code: 0 success, 1 refusal, and the requested unreachable code
65
- * (1 by default; `pr` passes 3 for runPr's contract).
66
- */
67
- export async function runGh(argv, options = {}) {
68
- if (argv.length === 0) {
69
- say(GH_USAGE);
70
- return 1;
71
- }
72
- const [domain, command, ...rawRest] = argv;
73
- if (domain === '--help' || domain === '-h' || command === '--help' || command === '-h') {
74
- say(GH_USAGE);
75
- return 0;
76
- }
77
- if (domain === undefined || command === undefined) {
78
- // A caller with a domain and no command (`gcb run`, `gcb gh pr`) gets the catalog rather than one
79
- // example: the answer is every action, and the example would only be right for one of them.
80
- say(GH_USAGE);
81
- return 1;
82
- }
83
- const actionName = `${domain}:${command}`;
84
- let action;
85
- try {
86
- action = getGhAction(actionName);
87
- }
88
- catch {
89
- if (rawRest.includes('--help') || rawRest.includes('-h')) {
90
- say(GH_USAGE);
91
- return 0;
92
- }
93
- fail(`unknown gh action ${JSON.stringify(actionName)}`);
94
- }
95
- // A known value-taking flag consumes the next token only when that token is a value. A following
96
- // known flag is not taken as a value (so a missing value fails as missing), except a literal
97
- // --help/-h: a body that is exactly one of those is data, not a help request. The parser then
98
- // sees --body=--help.
99
- const valueFlags = new Set([
49
+ /** The flags that consume the following token, shared by the scan and identity extraction. */
50
+ function actionValueFlags(action) {
51
+ return new Set([
100
52
  ...action.flags.filter((flag) => flag.type !== 'boolean').map((flag) => flag.name),
53
+ ...(action.flags.some((flag) => flag.name === 'body') ? ['body-file'] : []),
101
54
  'repo',
102
55
  'R',
103
56
  'host',
104
57
  'socket',
105
58
  'proxy',
106
59
  ]);
60
+ }
61
+ /**
62
+ * Scan one action's raw argv the way runGh consumes it.
63
+ *
64
+ * @param action - the catalogued action.
65
+ * @param rawRest - arguments after the domain and command.
66
+ * @returns the normalized rest, a missing operand, and whether help was requested.
67
+ */
68
+ function scanActionArgs(action, rawRest) {
69
+ const hasBody = action.flags.some((flag) => flag.name === 'body');
70
+ const valueFlags = actionValueFlags(action);
107
71
  const allowed = new Set([
108
72
  ...action.flags.map((flag) => flag.name),
73
+ ...(hasBody ? ['body-file'] : []),
109
74
  'repo',
110
75
  'R',
111
76
  'host',
@@ -113,10 +78,17 @@ export async function runGh(argv, options = {}) {
113
78
  'proxy',
114
79
  'no-proxy',
115
80
  ]);
116
- const knownFlags = new Set([...allowed, 'help']);
81
+ const knownFlags = new Set([...allowed, 'help', 'as-user']);
117
82
  const rest = [];
118
83
  let missingValue;
119
84
  let help = false;
85
+ let asUser = false;
86
+ let account;
87
+ let identityError;
88
+ let repoOption = false;
89
+ // A known value-taking flag consumes the next token only when that token is a value. A following
90
+ // known flag is not taken as a value (so a missing value fails as missing), except a literal
91
+ // --help/-h: a body that is exactly one of those is data, not a help request.
120
92
  for (let index = 0; index < rawRest.length; index += 1) {
121
93
  const raw = rawRest[index];
122
94
  // Match parseArgs: -h is help everywhere; any other single-dash letter is its long flag. A
@@ -133,7 +105,34 @@ export async function runGh(argv, options = {}) {
133
105
  rest.push(argument);
134
106
  continue;
135
107
  }
108
+ if (argument === '--as-user') {
109
+ if (asUser || account !== undefined)
110
+ identityError ??= '--as-user may be given once';
111
+ const next = rawRest[index + 1];
112
+ if (next !== undefined && !next.startsWith('-')) {
113
+ account = next;
114
+ index += 1;
115
+ }
116
+ else {
117
+ asUser = true;
118
+ }
119
+ continue;
120
+ }
121
+ if (argument.startsWith('--as-user=')) {
122
+ if (asUser || account !== undefined)
123
+ identityError ??= '--as-user may be given once';
124
+ const value = argument.slice('--as-user='.length);
125
+ if (value === '')
126
+ asUser = true;
127
+ else
128
+ account = value;
129
+ continue;
130
+ }
136
131
  const name = argument.startsWith('--') && !argument.includes('=') ? argument.slice(2) : undefined;
132
+ if (name === 'repo' || name === 'R')
133
+ repoOption = true;
134
+ if (/^--(?:repo|R)=/.test(argument))
135
+ repoOption = true;
137
136
  if (name === undefined || !valueFlags.has(name)) {
138
137
  rest.push(argument);
139
138
  continue;
@@ -168,12 +167,95 @@ export async function runGh(argv, options = {}) {
168
167
  rest.push(`${argument}=${next}`);
169
168
  index += 1;
170
169
  }
170
+ return { rest, missingValue, help, allowed, asUser, account, identityError, repoOption };
171
+ }
172
+ /** Whether a catalogued action's argv carries either --as-user form, in option position. */
173
+ export function actionHasAsUser(actionName, rawRest) {
174
+ const scan = scanActionArgs(getGhAction(actionName), rawRest);
175
+ return scan.asUser || scan.account !== undefined;
176
+ }
177
+ /** Whether a catalogued action's argv asks for help, using the same scan. */
178
+ export function actionHelpRequested(actionName, rawRest) {
179
+ try {
180
+ return scanActionArgs(getGhAction(actionName), rawRest).help;
181
+ }
182
+ catch {
183
+ return rawRest.includes('--help') || rawRest.includes('-h');
184
+ }
185
+ }
186
+ export const GH_USAGE = `Usage: gcb gh <domain> <command> [options]
187
+
188
+ Run a catalogued GitHub action through the broker.
189
+ gcb pr <subcommand>, gcb run <subcommand> and gcb issue <subcommand> are shorthands for the same
190
+ actions.
191
+
192
+ Common
193
+ -R, --repo <owner/name> Repository the action belongs to (default: origin remote)
194
+ --host <host> Host as configured, e.g. github.com (default: github.com)
195
+ --socket <path> Broker socket (default: GIT_BROKER_SOCKET)
196
+ --proxy <url> Use this proxy for this action
197
+ --body-file <path> Read a body from a file, or '-' for stdin, for actions that accept --body
198
+ --no-proxy Reach GitHub directly for this action
199
+ -h, --help Show this help
200
+
201
+ Person route
202
+ --as-user App-broker person identity, for actions it can run as a person
203
+ --as-user <login> Host gh account; runs the catalogued action through gcb host
204
+
205
+ Commands, from the action catalog
206
+ ${ACTION_LINES}`;
207
+ /**
208
+ * Run the `gh` command.
209
+ *
210
+ * @param argv - arguments after `gh`.
211
+ * @returns the process exit code: 0 success, 1 refusal, and the requested unreachable code
212
+ * (1 by default; `pr` passes 3 for runPr's contract).
213
+ */
214
+ export async function runGh(argv, options = {}) {
215
+ if (argv.length === 0) {
216
+ say(GH_USAGE);
217
+ return 1;
218
+ }
219
+ const [domain, command, ...rawRest] = argv;
220
+ if (domain === '--help' || domain === '-h' || command === '--help' || command === '-h') {
221
+ say(GH_USAGE);
222
+ return 0;
223
+ }
224
+ if (domain === undefined || command === undefined) {
225
+ // A caller with a domain and no command (`gcb run`, `gcb gh pr`) gets the catalog rather than one
226
+ // example: the answer is every action, and the example would only be right for one of them.
227
+ say(GH_USAGE);
228
+ return 1;
229
+ }
230
+ const actionName = `${domain}:${command}`;
231
+ let action;
232
+ try {
233
+ action = getGhAction(actionName);
234
+ }
235
+ catch {
236
+ if (rawRest.includes('--help') || rawRest.includes('-h')) {
237
+ say(GH_USAGE);
238
+ return 0;
239
+ }
240
+ fail(`unknown gh action ${JSON.stringify(actionName)}`);
241
+ }
242
+ const scan = scanActionArgs(action, rawRest);
243
+ const { rest, missingValue, help, allowed, asUser, account, identityError, repoOption } = scan;
171
244
  if (help) {
172
245
  say(GH_USAGE);
173
246
  return 0;
174
247
  }
175
248
  if (missingValue !== undefined)
176
249
  fail(missingValue);
250
+ if (identityError !== undefined)
251
+ fail(identityError);
252
+ const identity = options.identity ?? (asUser ? 'user' : 'app');
253
+ if (account === undefined && identity === 'user' && action.appUser !== true) {
254
+ fail(`${actionName} does not support --as-user`);
255
+ }
256
+ if (account !== undefined && !LOGIN.test(account)) {
257
+ fail(`--as-user must be a GitHub login, got ${JSON.stringify(account)}`);
258
+ }
177
259
  const booleans = action.flags.filter((flag) => flag.type === 'boolean').map((flag) => flag.name);
178
260
  const args = parseArgs(rest, { booleans: [...booleans, 'no-proxy'] });
179
261
  if (args.has('no-proxy') && args.value('proxy') !== undefined)
@@ -181,6 +263,9 @@ export async function runGh(argv, options = {}) {
181
263
  const proxy = args.has('no-proxy') ? null : args.value('proxy');
182
264
  const host = args.value('host') ?? 'github.com';
183
265
  let repo = args.value('repo') ?? args.value('R');
266
+ if (repo === undefined && repoOption) {
267
+ fail('--repo needs a value; refusing to fall back to the checkout');
268
+ }
184
269
  if (repo === undefined) {
185
270
  const found = repoFromCheckout(process.cwd());
186
271
  if (found === undefined)
@@ -190,25 +275,16 @@ export async function runGh(argv, options = {}) {
190
275
  }
191
276
  repo = found.repo;
192
277
  }
193
- const socketPath = resolveSocketPath(args.value('socket'), process.env);
194
- if (socketPath === undefined)
195
- fail('no broker socket is configured');
196
278
  for (const argument of rest) {
197
279
  if (argument === '--')
198
280
  break;
199
281
  const match = /^--([^=]+)/.exec(argument);
200
- if (match?.[1] === 'as-user') {
201
- fail(domain === 'issue' && command === 'create'
202
- ? 'use gcb issue create --as-user (bare for the broker user, or with a login for the host broker)'
203
- : domain === 'pr' && command === 'create'
204
- ? 'use gcb pr --as-user (bare for the broker user, or with a login for the host broker)'
205
- : 'use gcb pr --as-user with --reply-to, --edit or --comment, or gcb issue create --as-user');
206
- }
207
282
  if (match?.[1] !== undefined && !allowed.has(match[1])) {
208
283
  fail(`unknown option --${match[1]} for gcb gh ${domain} ${command}`);
209
284
  }
210
285
  }
211
286
  const values = {};
287
+ const bodyFile = args.value('body-file') !== undefined;
212
288
  for (const [index, positional] of action.positionals.entries()) {
213
289
  const value = args.positionals[index];
214
290
  if (value === undefined) {
@@ -222,6 +298,18 @@ export async function runGh(argv, options = {}) {
222
298
  fail(`gcb gh ${domain} ${command} has too many positional arguments`);
223
299
  }
224
300
  for (const flag of action.flags) {
301
+ if (flag.name === 'body') {
302
+ if (bodyFile)
303
+ continue;
304
+ const inline = args.value('body');
305
+ if (inline === undefined) {
306
+ if (flag.required === true)
307
+ fail(`gcb gh ${domain} ${command} needs --body`);
308
+ continue;
309
+ }
310
+ values['body'] = inline;
311
+ continue;
312
+ }
225
313
  if (flag.type === 'boolean') {
226
314
  if (args.has(flag.name))
227
315
  values[flag.name] = true;
@@ -238,6 +326,43 @@ export async function runGh(argv, options = {}) {
238
326
  else
239
327
  values[flag.name] = entries[0];
240
328
  }
329
+ if (account !== undefined && args.value('socket') !== undefined) {
330
+ fail('--socket is the app broker route; --as-user <login> uses the checkout channel');
331
+ }
332
+ if (bodyFile) {
333
+ // Validate selection constraints before a '-' body waits for stdin; the actual body is built again below.
334
+ try {
335
+ buildGhArgv(actionName, { ...values, body: 'x' }, repo);
336
+ }
337
+ catch (error) {
338
+ fail(error.message);
339
+ }
340
+ const body = bodyFromArgs(args);
341
+ if (body !== undefined)
342
+ values['body'] = body;
343
+ }
344
+ try {
345
+ buildGhArgv(actionName, values, repo);
346
+ }
347
+ catch (error) {
348
+ fail(error.message);
349
+ }
350
+ if (account !== undefined) {
351
+ return submitActionToHostBroker({
352
+ kind: 'action',
353
+ action: actionName,
354
+ repo,
355
+ host,
356
+ values,
357
+ account,
358
+ proxy,
359
+ session: 'gh',
360
+ pid: process.pid,
361
+ });
362
+ }
363
+ const socketPath = resolveSocketPath(args.value('socket'), process.env);
364
+ if (socketPath === undefined)
365
+ fail('no broker socket is configured');
241
366
  let response;
242
367
  try {
243
368
  response = await requestOverSocket(socketPath, {
@@ -246,7 +371,7 @@ export async function runGh(argv, options = {}) {
246
371
  path: repo,
247
372
  ghAction: actionName,
248
373
  values: values,
249
- ...(options.identity === undefined ? {} : { identity: options.identity }),
374
+ ...(identity === 'user' ? { identity } : {}),
250
375
  proxy,
251
376
  session: 'gh',
252
377
  pid: process.pid,
@@ -271,7 +396,10 @@ export async function runGh(argv, options = {}) {
271
396
  process.stderr.write('warning: the action output was truncated at the broker\x27s limit\n');
272
397
  }
273
398
  if (response.timedOut === true) {
274
- process.stderr.write(`warning: the action timed out after ${action.timeoutSeconds}s; a write may have completed before it was killed\n`);
399
+ const writeCaveat = Object.values(action.permissions).some((permission) => permission === 'write')
400
+ ? '; a write may have completed before it was killed'
401
+ : '';
402
+ process.stderr.write(`warning: the action timed out after ${action.timeoutSeconds}s${writeCaveat}\n`);
275
403
  return 1;
276
404
  }
277
405
  return response.exitCode === 0 ? 0 : 1;
@@ -1 +1 @@
1
- {"version":3,"file":"gh.js","sourceRoot":"","sources":["../../src/commands/gh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gh.js","sourceRoot":"","sources":["../../src/commands/gh.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { HostOpenResult, HostRequest } from 'gcb-core';
1
+ import type { HostActionRequest, HostResult, HostRequest } from 'gcb-core';
2
2
  /**
3
- * Explain why an opener request produced no answer.
3
+ * Explain why a host-broker request produced no answer.
4
4
  *
5
5
  * @param dir - the channel directory.
6
6
  * @param id - the request id.
@@ -10,11 +10,18 @@ import type { HostOpenResult, HostRequest } from 'gcb-core';
10
10
  */
11
11
  export declare function noAnswerMessage(dir: string, id: string, noun: string, timeoutMs: number): string;
12
12
  /**
13
- * Write, wait for and report one opener request.
13
+ * Write, wait for and report one host-broker request.
14
14
  *
15
15
  * @param request - the validated request.
16
16
  * @param success - formats the success line from the answer.
17
17
  * @returns 0 after the answer is reported.
18
18
  */
19
- export declare function submitToOpener(request: HostRequest, success: (answer: HostOpenResult) => string): Promise<number>;
19
+ export declare function submitToHostBroker(request: HostRequest, success: (answer: HostResult) => string): Promise<number>;
20
+ /**
21
+ * Run one catalogued action through the host broker and forward its output.
22
+ *
23
+ * @param request - the validated action request.
24
+ * @returns the child's exit status as 0 or 1.
25
+ */
26
+ export declare function submitActionToHostBroker(request: HostActionRequest): Promise<number>;
20
27
  //# sourceMappingURL=host-submit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-submit.d.ts","sourceRoot":"","sources":["../../src/commands/host-submit.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5D;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAehG;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,MAAM,GAC1C,OAAO,CAAC,MAAM,CAAC,CA+CjB"}
1
+ {"version":3,"file":"host-submit.d.ts","sourceRoot":"","sources":["../../src/commands/host-submit.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG3E;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAehG;AA0FD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,GACtC,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAW1F"}