@idea1/cli 1.11.0 → 1.11.1

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.
Files changed (43) hide show
  1. package/README.md +48 -29
  2. package/dist/commands/help.d.ts.map +1 -1
  3. package/dist/commands/help.js +20 -14
  4. package/dist/commands/help.js.map +1 -1
  5. package/dist/commands/release.d.ts +7 -3
  6. package/dist/commands/release.d.ts.map +1 -1
  7. package/dist/commands/release.js +51 -26
  8. package/dist/commands/release.js.map +1 -1
  9. package/dist/lib/settings.d.ts +18 -3
  10. package/dist/lib/settings.d.ts.map +1 -1
  11. package/dist/lib/settings.js +14 -1
  12. package/dist/lib/settings.js.map +1 -1
  13. package/dist/services/github.d.ts +21 -19
  14. package/dist/services/github.d.ts.map +1 -1
  15. package/dist/services/github.js +56 -64
  16. package/dist/services/github.js.map +1 -1
  17. package/dist/services/platform-auth.d.ts +3 -2
  18. package/dist/services/platform-auth.d.ts.map +1 -1
  19. package/dist/services/platform-auth.js +105 -9
  20. package/dist/services/platform-auth.js.map +1 -1
  21. package/dist/services/platform.d.ts +52 -2
  22. package/dist/services/platform.d.ts.map +1 -1
  23. package/dist/services/platform.js +66 -1
  24. package/dist/services/platform.js.map +1 -1
  25. package/dist/types/index.d.ts +16 -0
  26. package/dist/types/index.d.ts.map +1 -1
  27. package/dist/workflow/engine/approval-flow.d.ts +28 -11
  28. package/dist/workflow/engine/approval-flow.d.ts.map +1 -1
  29. package/dist/workflow/engine/approval-flow.js +52 -17
  30. package/dist/workflow/engine/approval-flow.js.map +1 -1
  31. package/dist/workflow/engine/handlers/approve-pr.d.ts +10 -9
  32. package/dist/workflow/engine/handlers/approve-pr.d.ts.map +1 -1
  33. package/dist/workflow/engine/handlers/approve-pr.js +24 -17
  34. package/dist/workflow/engine/handlers/approve-pr.js.map +1 -1
  35. package/dist/workflow/engine/release-engine.d.ts +84 -56
  36. package/dist/workflow/engine/release-engine.d.ts.map +1 -1
  37. package/dist/workflow/engine/release-engine.js +281 -157
  38. package/dist/workflow/engine/release-engine.js.map +1 -1
  39. package/dist/workflow/engine/workflow-engine.d.ts +9 -2
  40. package/dist/workflow/engine/workflow-engine.d.ts.map +1 -1
  41. package/dist/workflow/engine/workflow-engine.js +20 -2
  42. package/dist/workflow/engine/workflow-engine.js.map +1 -1
  43. package/package.json +1 -1
@@ -88,13 +88,28 @@ export declare function readBranchSettings(repoRoot: string): Promise<ResolvedBr
88
88
  */
89
89
  export declare const DEFAULT_RELEASE_BRANCH_CHANGES: ReleaseBranchChanges;
90
90
  /**
91
- * The repository's release settings: the packages a release can bump, and how changes may reach the
92
- * release branch. `versionedPackages` is empty when the repository's settings name none - such a
93
- * repository's releases have no version bump step.
91
+ * A release branch whose releases change only content, as `release.contentRelease` declares it: the
92
+ * branch, the repository folders (or files) its releases may change, without leading or trailing
93
+ * slashes, and the team whose members approve changes into it and release it (null when anyone the
94
+ * release workflow admits may). The platform's `ContentReleaseSettings` reads the same values.
95
+ */
96
+ export interface ContentReleaseSettings {
97
+ branch: string;
98
+ paths: string[];
99
+ releaserTeam: string | null;
100
+ }
101
+ /**
102
+ * The repository's release settings: the packages a release can bump, how changes may reach the
103
+ * release branch, who may release, and the content release. `versionedPackages` is empty when the
104
+ * repository's settings name none - such a repository's releases have no version bump step.
105
+ * `releaserTeam` is null when the settings name no team, and `contentRelease` null when they declare
106
+ * no content release (a branch and at least one path).
94
107
  */
95
108
  export interface ResolvedReleaseSettings {
96
109
  versionedPackages: VersionedPackage[];
97
110
  releaseBranchChanges: ReleaseBranchChanges;
111
+ releaserTeam: string | null;
112
+ contentRelease: ContentReleaseSettings | null;
98
113
  }
99
114
  /**
100
115
  * Read the repository's release settings (`release` in `.idea1/settings.json`, with
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwD,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/J,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACjH,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAE5G;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAA6C,CAAC;AAE1F;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;CAS1B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,aAAa,EAI1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gCAAgC,EAAE,aAAsD,CAAC;AAkBtG;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkBlF;AAKD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAkB9G;AA6BD;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWnF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG7E;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,0HAA0H;IAC1H,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,yBAAyB,EAAE,MAAM,CAAC;IAClC,6BAA6B,EAAE,MAAM,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAY1F;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,oBAAsC,CAAC;AAEpF;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAa5F;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAkBvF"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwD,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/J,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACjH,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAE5G;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAA6C,CAAC;AAE1F;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;CAS1B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,aAAa,EAI1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gCAAgC,EAAE,aAAsD,CAAC;AAkBtG;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkBlF;AAKD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAkB9G;AA6BD;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWnF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG7E;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,0HAA0H;IAC1H,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,yBAAyB,EAAE,MAAM,CAAC;IAClC,6BAA6B,EAAE,MAAM,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAY1F;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,oBAAsC,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC/C;AAeD;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAe5F;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAkBvF"}
@@ -170,6 +170,17 @@ export async function readBranchSettings(repoRoot) {
170
170
  * their own approved change. A repository that accepts direct changes on its release branch says so.
171
171
  */
172
172
  export const DEFAULT_RELEASE_BRANCH_CHANGES = 'approved-only';
173
+ /** The value, trimmed, or null when it is absent, blank or not a string - read as the platform reads it. */
174
+ function declared(value) {
175
+ return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;
176
+ }
177
+ function readContentRelease(value) {
178
+ const branch = declared(value?.branch);
179
+ const paths = (Array.isArray(value?.paths) ? value.paths : [])
180
+ .map(path => declared(path)?.replace(/^\/+|\/+$/g, '') ?? '')
181
+ .filter(path => path.length > 0);
182
+ return branch === null || paths.length === 0 ? null : { branch, paths, releaserTeam: declared(value?.releaserTeam) };
183
+ }
173
184
  /**
174
185
  * Read the repository's release settings (`release` in `.idea1/settings.json`, with
175
186
  * `settings.local.json` overlaid). See `ResolvedReleaseSettings`.
@@ -183,7 +194,9 @@ export async function readReleaseSettings(repoRoot) {
183
194
  }
184
195
  return {
185
196
  versionedPackages: release?.versionedPackages ?? [],
186
- releaseBranchChanges
197
+ releaseBranchChanges,
198
+ releaserTeam: declared(release?.releaserTeam),
199
+ contentRelease: readContentRelease(release?.contentRelease)
187
200
  };
188
201
  }
189
202
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"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"}
@@ -38,29 +38,10 @@ export interface MergeResult {
38
38
  success: boolean;
39
39
  error?: string;
40
40
  }
41
- /**
42
- * Merge a PR
43
- */
44
- export declare function mergePr(branchName: string): Promise<MergeResult>;
45
41
  /**
46
42
  * Merge a PR with admin override (bypasses branch protections)
47
43
  */
48
44
  export declare function mergePrWithAdminOverride(branchName: string): Promise<MergeResult>;
49
- /**
50
- * Turn on GitHub's auto-merge for a PR, with a merge commit: GitHub merges it once the base branch's
51
- * required checks pass, and records the person who enabled auto-merge as `merged_by`. On failure the
52
- * error is gh's own message, which says why GitHub refused (a PR that is already mergeable, or a
53
- * repository that does not allow auto-merge, for example).
54
- */
55
- export declare function enablePrAutoMerge(branchName: string): Promise<MergeResult>;
56
- /** Where a PR's checks stand. See `getPrCheckState`. */
57
- export type PrCheckState = 'passed' | 'failed' | 'pending' | 'none';
58
- /**
59
- * Where a PR's checks stand right now, without waiting: `passed` when every reported check passed
60
- * or was skipped, `failed` when any failed or was cancelled, `pending` when the rest are still
61
- * running, and `none` when no check has been reported on the PR yet.
62
- */
63
- export declare function getPrCheckState(branchName: string): Promise<PrCheckState>;
64
45
  /** Whether a PR can merge into its base as far as its content goes. See `getPrMergeability`. */
65
46
  export type PrMergeability = 'mergeable' | 'conflicting';
66
47
  /**
@@ -86,6 +67,11 @@ export declare function getBranchFromPrUrl(prUrl: string): Promise<{
86
67
  headBranch: string;
87
68
  baseBranch: string;
88
69
  } | null>;
70
+ /**
71
+ * The tip of a branch on origin, read from the remote itself so it is current without a fetch.
72
+ * Null when it cannot be read - outside a clone of the repository, for instance.
73
+ */
74
+ export declare function getRemoteBranchTip(branchName: string): Promise<string | null>;
89
75
  /**
90
76
  * Wait for a PR's checks to finish, returning whether they all passed.
91
77
  *
@@ -143,6 +129,11 @@ export interface CreatePrOptions {
143
129
  * Create a PR with its body and assignee set at creation, returning its URL.
144
130
  */
145
131
  export declare function createPr(options: CreatePrOptions): Promise<string>;
132
+ /**
133
+ * Replace a PR's description, addressed by its URL. The body goes through a file, so a long
134
+ * approval chain is never limited by the length of a command line. Throws when GitHub refuses it.
135
+ */
136
+ export declare function updatePrBody(prUrl: string, body: string): Promise<void>;
146
137
  /** An open PR as the release workflow checks it: its description and its approvers of record. */
147
138
  export interface OpenPr {
148
139
  number: number;
@@ -199,6 +190,17 @@ export interface RepoAccess {
199
190
  */
200
191
  admin: boolean;
201
192
  }
193
+ /**
194
+ * Whether a GitHub user holds admin permission on the repository of the current checkout - the
195
+ * production root tier. A user who is not a collaborator holds none.
196
+ */
197
+ export declare function isRepoAdmin(login: string): Promise<boolean>;
198
+ /**
199
+ * Whether a GitHub user is an active member of a team of the organization that owns the repository
200
+ * of the current checkout, directly or through a child team. A user who is not a member, or whose
201
+ * invitation is still pending, is not one; so is anyone when the team does not exist.
202
+ */
203
+ export declare function isTeamMember(teamSlug: string, login: string): Promise<boolean>;
202
204
  /** The authenticated user's access to the repository of the current checkout. */
203
205
  export declare function getRepoAccess(): Promise<RepoAccess>;
204
206
  //# sourceMappingURL=github.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/services/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/services/github.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ import { mkdtempSync, rmSync, writeFileSync } from 'fs';
2
+ import { tmpdir } from 'os';
3
+ import { join } from 'path';
1
4
  import { exec, execOrThrow, commandExists } from '../lib/shell.js';
2
5
  import { logger } from '../lib/logger.js';
3
6
  /**
@@ -143,22 +146,6 @@ export async function assignAssignee(branchName, assignee) {
143
146
  ]);
144
147
  logger.success(`Assignee ${assignee} assigned successfully`);
145
148
  }
146
- /**
147
- * Merge a PR
148
- */
149
- export async function mergePr(branchName) {
150
- await ensureGitHubCli();
151
- logger.status(`Merging PR for branch ${branchName}...`);
152
- const result = await exec('gh', [
153
- 'pr', 'merge', branchName,
154
- '--merge'
155
- ]);
156
- if (result.exitCode === 0) {
157
- logger.success('PR merged successfully');
158
- return { success: true };
159
- }
160
- return { success: false, error: result.stderr };
161
- }
162
149
  /**
163
150
  * Merge a PR with admin override (bypasses branch protections)
164
151
  */
@@ -176,53 +163,6 @@ export async function mergePrWithAdminOverride(branchName) {
176
163
  }
177
164
  return { success: false, error: result.stderr };
178
165
  }
179
- /**
180
- * Turn on GitHub's auto-merge for a PR, with a merge commit: GitHub merges it once the base branch's
181
- * required checks pass, and records the person who enabled auto-merge as `merged_by`. On failure the
182
- * error is gh's own message, which says why GitHub refused (a PR that is already mergeable, or a
183
- * repository that does not allow auto-merge, for example).
184
- */
185
- export async function enablePrAutoMerge(branchName) {
186
- await ensureGitHubCli();
187
- logger.step(`Enabling auto-merge on the PR for branch ${branchName}...`);
188
- const result = await exec('gh', [
189
- 'pr', 'merge', branchName,
190
- '--auto',
191
- '--merge'
192
- ]);
193
- if (result.exitCode === 0) {
194
- return { success: true };
195
- }
196
- return { success: false, error: `${result.stderr}\n${result.stdout}`.trim() };
197
- }
198
- /**
199
- * Where a PR's checks stand right now, without waiting: `passed` when every reported check passed
200
- * or was skipped, `failed` when any failed or was cancelled, `pending` when the rest are still
201
- * running, and `none` when no check has been reported on the PR yet.
202
- */
203
- export async function getPrCheckState(branchName) {
204
- await ensureGitHubCli();
205
- // gh exits non-zero while checks are pending or once one has failed, so the JSON is read
206
- // whatever the exit code; only "no checks reported" comes back with no JSON at all.
207
- const result = await exec('gh', ['pr', 'checks', branchName, '--json', 'bucket']);
208
- if (noChecksReported(result)) {
209
- return 'none';
210
- }
211
- if (!result.stdout.trim()) {
212
- throw new Error(`Could not read the checks on the PR for ${branchName}: ${result.stderr}`);
213
- }
214
- const buckets = JSON.parse(result.stdout).map(check => check.bucket);
215
- if (buckets.length === 0) {
216
- return 'none';
217
- }
218
- if (buckets.some(bucket => bucket === 'fail' || bucket === 'cancel')) {
219
- return 'failed';
220
- }
221
- if (buckets.some(bucket => bucket === 'pending')) {
222
- return 'pending';
223
- }
224
- return 'passed';
225
- }
226
166
  const MERGEABILITY_POLL_MS = 5 * 1000;
227
167
  const MERGEABILITY_ATTEMPTS = 12;
228
168
  /**
@@ -342,7 +282,7 @@ async function hasConfiguredChecks(branchName) {
342
282
  * The tip of a branch on origin, read from the remote itself so it is current without a fetch.
343
283
  * Null when it cannot be read - outside a clone of the repository, for instance.
344
284
  */
345
- async function getRemoteBranchTip(branchName) {
285
+ export async function getRemoteBranchTip(branchName) {
346
286
  const result = await exec('git', ['ls-remote', '--heads', 'origin', branchName]);
347
287
  const sha = result.stdout.trim().split(/\s+/)[0] ?? '';
348
288
  return result.exitCode === 0 && /^[0-9a-f]{40}$/.test(sha) ? sha : null;
@@ -524,6 +464,21 @@ export async function createPr(options) {
524
464
  }
525
465
  return result.stdout.trim();
526
466
  }
467
+ /**
468
+ * Replace a PR's description, addressed by its URL. The body goes through a file, so a long
469
+ * approval chain is never limited by the length of a command line. Throws when GitHub refuses it.
470
+ */
471
+ export async function updatePrBody(prUrl, body) {
472
+ await ensureGitHubCli();
473
+ const directory = mkdtempSync(join(tmpdir(), 'idea1-pr-body-'));
474
+ const bodyFile = join(directory, 'body.md');
475
+ writeFileSync(bodyFile, body);
476
+ const result = await exec('gh', ['pr', 'edit', prUrl, '--body-file', bodyFile]);
477
+ rmSync(directory, { recursive: true, force: true });
478
+ if (result.exitCode !== 0) {
479
+ throw new Error(`Could not update the description of ${prUrl}: ${result.stderr}`);
480
+ }
481
+ }
527
482
  /** The open PR from `headBranch` into `baseBranch`, or null when there is none. */
528
483
  export async function getOpenPr(headBranch, baseBranch) {
529
484
  await ensureGitHubCli();
@@ -602,6 +557,43 @@ export async function getPullRequestsForCommit(sha) {
602
557
  }
603
558
  return JSON.parse(result.stdout);
604
559
  }
560
+ /**
561
+ * Whether a GitHub user holds admin permission on the repository of the current checkout - the
562
+ * production root tier. A user who is not a collaborator holds none.
563
+ */
564
+ export async function isRepoAdmin(login) {
565
+ await ensureGitHubCli();
566
+ const result = await exec('gh', [
567
+ 'api', `repos/{owner}/{repo}/collaborators/${encodeURIComponent(login)}/permission`,
568
+ '--jq', '.permission + " " + (.role_name // "")'
569
+ ]);
570
+ if (result.exitCode !== 0) {
571
+ if (/HTTP 404/.test(result.stderr)) {
572
+ return false;
573
+ }
574
+ throw new Error(`Could not read @${login}'s permission on the repository: ${result.stderr}`);
575
+ }
576
+ return result.stdout.trim().split(/\s+/).includes('admin');
577
+ }
578
+ /**
579
+ * Whether a GitHub user is an active member of a team of the organization that owns the repository
580
+ * of the current checkout, directly or through a child team. A user who is not a member, or whose
581
+ * invitation is still pending, is not one; so is anyone when the team does not exist.
582
+ */
583
+ export async function isTeamMember(teamSlug, login) {
584
+ await ensureGitHubCli();
585
+ const result = await exec('gh', [
586
+ 'api', `orgs/{owner}/teams/${encodeURIComponent(teamSlug)}/memberships/${encodeURIComponent(login)}`,
587
+ '--jq', '.state'
588
+ ]);
589
+ if (result.exitCode !== 0) {
590
+ if (/HTTP 404/.test(result.stderr)) {
591
+ return false;
592
+ }
593
+ throw new Error(`Could not read @${login}'s membership of the GitHub team ${teamSlug}: ${result.stderr}`);
594
+ }
595
+ return result.stdout.trim() === 'active';
596
+ }
605
597
  /** The authenticated user's access to the repository of the current checkout. */
606
598
  export async function getRepoAccess() {
607
599
  await ensureGitHubCli();
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/services/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/services/github.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,9 @@
11
11
  *
12
12
  * The credential lives in the operating system's credential store (macOS Keychain, Windows
13
13
  * Credential Manager, Secret Service on Linux) under the service `idea1-cli` and the API base URL as
14
- * the account, as the JSON of a `StoredCredential`. Parallel CLI processes share it: the platform
15
- * does not rotate refresh tokens, so concurrent refreshes all stay valid and the last write wins.
14
+ * the account, as the JSON of a `StoredCredential`; a credential longer than one entry holds
15
+ * continues in further entries. Parallel CLI processes share it: the platform does not rotate
16
+ * refresh tokens, so concurrent refreshes all stay valid and the last write wins.
16
17
  *
17
18
  * `IDEA1_TOKEN`, when set, is the bearer token of every call instead (a team API client's token in
18
19
  * CI, or a test's): nothing is read from or written to the credential store, and nothing is
@@ -1 +1 @@
1
- {"version":3,"file":"platform-auth.d.ts","sourceRoot":"","sources":["../../src/services/platform-auth.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AACrD,eAAO,MAAM,SAAS,gBAAgB,CAAC;AA0DvC;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAGnC;AAOD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAcvF;AAED;;GAEG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ3C;AAED;;;GAGG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAa/C"}
1
+ {"version":3,"file":"platform-auth.d.ts","sourceRoot":"","sources":["../../src/services/platform-auth.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AACrD,eAAO,MAAM,SAAS,gBAAgB,CAAC;AAuEvC;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAGnC;AAOD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAcvF;AAED;;GAEG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ3C;AAED;;;GAGG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAa/C"}
@@ -1,5 +1,6 @@
1
1
  import { createHash, randomBytes } from 'crypto';
2
2
  import { createServer } from 'http';
3
+ import { setTimeout as delay } from 'timers/promises';
3
4
  import { AsyncEntry } from '@napi-rs/keyring';
4
5
  import { logger } from '../lib/logger.js';
5
6
  import { isUnattended } from '../lib/prompt.js';
@@ -17,8 +18,9 @@ import { openUrl } from './os-launcher.js';
17
18
  *
18
19
  * The credential lives in the operating system's credential store (macOS Keychain, Windows
19
20
  * Credential Manager, Secret Service on Linux) under the service `idea1-cli` and the API base URL as
20
- * the account, as the JSON of a `StoredCredential`. Parallel CLI processes share it: the platform
21
- * does not rotate refresh tokens, so concurrent refreshes all stay valid and the last write wins.
21
+ * the account, as the JSON of a `StoredCredential`; a credential longer than one entry holds
22
+ * continues in further entries. Parallel CLI processes share it: the platform does not rotate
23
+ * refresh tokens, so concurrent refreshes all stay valid and the last write wins.
22
24
  *
23
25
  * `IDEA1_TOKEN`, when set, is the bearer token of every call instead (a team API client's token in
24
26
  * CI, or a test's): nothing is read from or written to the credential store, and nothing is
@@ -28,6 +30,19 @@ export const API_BASE_URL_ENV = 'IDEA1_API_BASE_URL';
28
30
  export const TOKEN_ENV = 'IDEA1_TOKEN';
29
31
  const DEFAULT_API_BASE_URL = 'https://api.idea1.ai';
30
32
  const CREDENTIAL_STORE_SERVICE = 'idea1-cli';
33
+ /**
34
+ * The most UTF-16 code units one credential store entry holds: Windows Credential Manager caps an
35
+ * entry at 2560 bytes. The platform's access and refresh tokens are JWTs that together exceed it,
36
+ * so a credential is kept as a run of entries, each a piece of its JSON behind a header of at most
37
+ * CREDENTIAL_PIECE_HEADER_LENGTH code units (the write's id and the run's length).
38
+ */
39
+ const CREDENTIAL_STORE_ENTRY_LENGTH = 1280;
40
+ const CREDENTIAL_PIECE_HEADER_LENGTH = 12;
41
+ const CREDENTIAL_PIECE_TEXT_LENGTH = CREDENTIAL_STORE_ENTRY_LENGTH - CREDENTIAL_PIECE_HEADER_LENGTH;
42
+ const CREDENTIAL_PIECE_PATTERN = /^([0-9a-f]{8}):(\d+):(.*)$/s;
43
+ /** How many times, and how far apart, a run whose entries are not all of one write is read. */
44
+ const STORED_CREDENTIAL_READ_ATTEMPTS = 4;
45
+ const STORED_CREDENTIAL_READ_RETRY_MS = 100;
31
46
  const CLIENT_NAME = 'Idea1 CLI';
32
47
  const CLIENT_SCOPE = 'team:read projects:read projects:write';
33
48
  /** The redirect URI the client registers; the loopback server listens on a random port of it. */
@@ -100,7 +115,7 @@ export async function logout() {
100
115
  await revoke(stored);
101
116
  }
102
117
  finally {
103
- await credentialStoreEntry().deletePassword();
118
+ await deleteStoredCredential();
104
119
  }
105
120
  return true;
106
121
  });
@@ -134,7 +149,7 @@ async function usableCredential(rejectedAccessToken) {
134
149
  }
135
150
  catch (error) {
136
151
  if (error instanceof OAuthError && (error.code === 'invalid_grant' || error.code === 'invalid_client')) {
137
- await credentialStoreEntry().deletePassword();
152
+ await deleteStoredCredential();
138
153
  return signInWhenAttended(error.code === 'invalid_grant' ? stored.clientId : null);
139
154
  }
140
155
  throw error;
@@ -361,15 +376,96 @@ async function storeTokens(clientId, tokens, refreshToken) {
361
376
  accessToken: tokens.access_token,
362
377
  accessTokenExpiresAt: new Date(Date.now() + tokens.expires_in * 1000).toISOString()
363
378
  };
364
- await credentialStoreEntry().setPassword(JSON.stringify(credential));
379
+ await writeStoredCredential(credential);
365
380
  return credential;
366
381
  }
382
+ /**
383
+ * The credential's run of entries: its JSON in pieces, the first under the API base URL as the
384
+ * account and the rest under the URL suffixed `#2`, `#3`, and so on. Entries are written one at a
385
+ * time, so a run read mid-write, or left by a write that was cut short, mixes entries of different
386
+ * writes: it is read again a few times, and if it stays mixed there is no credential and the user
387
+ * signs in again. An entry of plain JSON is a whole credential on its own, and a stored text that
388
+ * is not JSON is no credential, since its parse error would quote the store's content.
389
+ */
367
390
  async function readStoredCredential() {
368
- const value = await credentialStoreEntry().getPassword();
369
- return value === null ? null : JSON.parse(value);
391
+ for (let attempt = 1; attempt <= STORED_CREDENTIAL_READ_ATTEMPTS; attempt++) {
392
+ const first = await credentialStoreEntry(1).getPassword();
393
+ if (first === null) {
394
+ return null;
395
+ }
396
+ if (first.startsWith('{')) {
397
+ return parseStoredCredential(first);
398
+ }
399
+ const json = await readStoredCredentialRun(first);
400
+ if (json !== null) {
401
+ return parseStoredCredential(json);
402
+ }
403
+ await delay(STORED_CREDENTIAL_READ_RETRY_MS);
404
+ }
405
+ return null;
406
+ }
407
+ /** The JSON of the run that `first` starts, or null when its entries are not all of one write. */
408
+ async function readStoredCredentialRun(first) {
409
+ const firstPiece = parseCredentialPiece(first);
410
+ if (firstPiece === null) {
411
+ return null;
412
+ }
413
+ const texts = [firstPiece.text];
414
+ for (let index = 2; index <= firstPiece.count; index++) {
415
+ const entry = await credentialStoreEntry(index).getPassword();
416
+ const piece = entry === null ? null : parseCredentialPiece(entry);
417
+ if (piece === null || piece.writeId !== firstPiece.writeId || piece.count !== firstPiece.count) {
418
+ return null;
419
+ }
420
+ texts.push(piece.text);
421
+ }
422
+ return texts.join('');
423
+ }
424
+ function parseStoredCredential(json) {
425
+ try {
426
+ return JSON.parse(json);
427
+ }
428
+ catch (error) {
429
+ if (error instanceof SyntaxError) {
430
+ return null;
431
+ }
432
+ throw error;
433
+ }
434
+ }
435
+ function parseCredentialPiece(entry) {
436
+ const match = CREDENTIAL_PIECE_PATTERN.exec(entry);
437
+ return match === null ? null : { writeId: match[1], count: Number(match[2]), text: match[3] };
438
+ }
439
+ async function writeStoredCredential(credential) {
440
+ const json = JSON.stringify(credential);
441
+ const texts = [];
442
+ for (let start = 0; start < json.length;) {
443
+ let end = Math.min(start + CREDENTIAL_PIECE_TEXT_LENGTH, json.length);
444
+ // A surrogate pair stays in one piece: the store cannot hold half of one.
445
+ if (end < json.length && json.charCodeAt(end - 1) >= 0xd800 && json.charCodeAt(end - 1) <= 0xdbff) {
446
+ end--;
447
+ }
448
+ texts.push(json.slice(start, end));
449
+ start = end;
450
+ }
451
+ const writeId = randomBytes(4).toString('hex');
452
+ for (const [offset, text] of texts.entries()) {
453
+ await credentialStoreEntry(offset + 1).setPassword(`${writeId}:${texts.length}:${text}`);
454
+ }
455
+ await deleteStoredCredentialFrom(texts.length + 1);
456
+ }
457
+ async function deleteStoredCredential() {
458
+ await deleteStoredCredentialFrom(1);
459
+ }
460
+ /** Removes the entries of the run from `index` on, such as those a shorter credential leaves behind. */
461
+ async function deleteStoredCredentialFrom(index) {
462
+ while (await credentialStoreEntry(index).deletePassword()) {
463
+ index++;
464
+ }
370
465
  }
371
- function credentialStoreEntry() {
372
- return new AsyncEntry(CREDENTIAL_STORE_SERVICE, apiBaseUrl());
466
+ function credentialStoreEntry(index) {
467
+ const account = index === 1 ? apiBaseUrl() : `${apiBaseUrl()}#${index}`;
468
+ return new AsyncEntry(CREDENTIAL_STORE_SERVICE, account);
373
469
  }
374
470
  function withBearer(init, token) {
375
471
  return { ...init, headers: { ...init.headers, Authorization: `Bearer ${token}` } };