@idea1/cli 1.10.4 → 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 (74) hide show
  1. package/README.md +74 -32
  2. package/dist/commands/help.d.ts.map +1 -1
  3. package/dist/commands/help.js +30 -12
  4. package/dist/commands/help.js.map +1 -1
  5. package/dist/commands/index.d.ts +3 -1
  6. package/dist/commands/index.d.ts.map +1 -1
  7. package/dist/commands/index.js +5 -1
  8. package/dist/commands/index.js.map +1 -1
  9. package/dist/commands/login.d.ts +3 -0
  10. package/dist/commands/login.d.ts.map +1 -0
  11. package/dist/commands/login.js +15 -0
  12. package/dist/commands/login.js.map +1 -0
  13. package/dist/commands/logout.d.ts +3 -0
  14. package/dist/commands/logout.d.ts.map +1 -0
  15. package/dist/commands/logout.js +17 -0
  16. package/dist/commands/logout.js.map +1 -0
  17. package/dist/commands/release.d.ts +9 -4
  18. package/dist/commands/release.d.ts.map +1 -1
  19. package/dist/commands/release.js +53 -27
  20. package/dist/commands/release.js.map +1 -1
  21. package/dist/lib/project-item-url.d.ts +6 -0
  22. package/dist/lib/project-item-url.d.ts.map +1 -1
  23. package/dist/lib/project-item-url.js +11 -0
  24. package/dist/lib/project-item-url.js.map +1 -1
  25. package/dist/lib/settings.d.ts +25 -3
  26. package/dist/lib/settings.d.ts.map +1 -1
  27. package/dist/lib/settings.js +26 -1
  28. package/dist/lib/settings.js.map +1 -1
  29. package/dist/prompts/platform-prompts.d.ts +5 -30
  30. package/dist/prompts/platform-prompts.d.ts.map +1 -1
  31. package/dist/prompts/platform-prompts.js +5 -44
  32. package/dist/prompts/platform-prompts.js.map +1 -1
  33. package/dist/services/github.d.ts +21 -19
  34. package/dist/services/github.d.ts.map +1 -1
  35. package/dist/services/github.js +56 -64
  36. package/dist/services/github.js.map +1 -1
  37. package/dist/services/platform-auth.d.ts +44 -0
  38. package/dist/services/platform-auth.d.ts.map +1 -0
  39. package/dist/services/platform-auth.js +476 -0
  40. package/dist/services/platform-auth.js.map +1 -0
  41. package/dist/services/platform.d.ts +75 -18
  42. package/dist/services/platform.d.ts.map +1 -1
  43. package/dist/services/platform.js +254 -191
  44. package/dist/services/platform.js.map +1 -1
  45. package/dist/services/setup.d.ts.map +1 -1
  46. package/dist/services/setup.js +2 -1
  47. package/dist/services/setup.js.map +1 -1
  48. package/dist/types/index.d.ts +32 -0
  49. package/dist/types/index.d.ts.map +1 -1
  50. package/dist/types/index.js +1 -1
  51. package/dist/types/index.js.map +1 -1
  52. package/dist/workflow/data/team-member.d.ts +9 -2
  53. package/dist/workflow/data/team-member.d.ts.map +1 -1
  54. package/dist/workflow/data/team-member.js +8 -1
  55. package/dist/workflow/data/team-member.js.map +1 -1
  56. package/dist/workflow/engine/approval-flow.d.ts +28 -11
  57. package/dist/workflow/engine/approval-flow.d.ts.map +1 -1
  58. package/dist/workflow/engine/approval-flow.js +52 -17
  59. package/dist/workflow/engine/approval-flow.js.map +1 -1
  60. package/dist/workflow/engine/branch-setup.d.ts +1 -1
  61. package/dist/workflow/engine/branch-setup.js +1 -1
  62. package/dist/workflow/engine/handlers/approve-pr.d.ts +10 -9
  63. package/dist/workflow/engine/handlers/approve-pr.d.ts.map +1 -1
  64. package/dist/workflow/engine/handlers/approve-pr.js +24 -17
  65. package/dist/workflow/engine/handlers/approve-pr.js.map +1 -1
  66. package/dist/workflow/engine/release-engine.d.ts +90 -58
  67. package/dist/workflow/engine/release-engine.d.ts.map +1 -1
  68. package/dist/workflow/engine/release-engine.js +296 -161
  69. package/dist/workflow/engine/release-engine.js.map +1 -1
  70. package/dist/workflow/engine/workflow-engine.d.ts +9 -2
  71. package/dist/workflow/engine/workflow-engine.d.ts.map +1 -1
  72. package/dist/workflow/engine/workflow-engine.js +20 -2
  73. package/dist/workflow/engine/workflow-engine.js.map +1 -1
  74. package/package.json +2 -1
@@ -108,6 +108,20 @@ export interface VersionedPackage {
108
108
  /** The package's folder, relative to the repo root; it holds the package's package.json. */
109
109
  path: string;
110
110
  }
111
+ /**
112
+ * How changes may reach the release branch (`defaults.baseBranch`), the branch a planned release is cut from.
113
+ * A workflow-level policy: it says what the workflow accepts, not which repository host feature enforces it.
114
+ *
115
+ * - `approved-only`: every change reaches the release branch through its own approved change. A commit
116
+ * made directly on the branch stops a release until a repository admin records why it was made there.
117
+ * - `direct-allowed`: a change may also be made directly on the release branch. A release carries such a
118
+ * commit and lists it for its approver to review, with no admin and no recorded reason.
119
+ *
120
+ * The release target branch (`defaults.releaseTargetBranch`) is not configurable: it only ever changes
121
+ * through a release, never directly.
122
+ */
123
+ export type ReleaseBranchChanges = 'approved-only' | 'direct-allowed';
124
+ export declare const RELEASE_BRANCH_CHANGES: readonly ReleaseBranchChanges[];
111
125
  /**
112
126
  * Idea1 settings from .idea1/settings.json, overlaid with .idea1/settings.local.json
113
127
  */
@@ -145,6 +159,24 @@ export interface Idea1Settings {
145
159
  * bumps those whose folder changed since the last release, before the release PR is opened.
146
160
  */
147
161
  versionedPackages?: VersionedPackage[];
162
+ /** How changes may reach the release branch (default `approved-only`). */
163
+ releaseBranchChanges?: ReleaseBranchChanges;
164
+ /**
165
+ * The slug of the GitHub team, in the repository's organization, whose members release the base
166
+ * and hotfix branches. Absent, anyone the release workflow admits releases them.
167
+ */
168
+ releaserTeam?: string;
169
+ /**
170
+ * A release branch whose releases change only content: `branch` is released into the release
171
+ * target with no version bumps, every file a release of it changes lies under one of `paths`
172
+ * (repository folders or files), and the members of `releaserTeam` approve changes into it and
173
+ * release it. Declared only with a branch and at least one path.
174
+ */
175
+ contentRelease?: {
176
+ branch?: string;
177
+ paths?: string[];
178
+ releaserTeam?: string;
179
+ };
148
180
  };
149
181
  }
150
182
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;IACvE;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC;IACpF;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC;IAC1D;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sKAAsK;IACtK,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM,CAAC;IAC3D;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACjD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEtE,eAAO,MAAM,sBAAsB,EAAE,SAAS,oBAAoB,EAAwC,CAAC;AAE3G;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE;QACN,gBAAgB,CAAC,EAAE,IAAI,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC;KACzD,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,2EAA2E;QAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,6BAA6B,CAAC,EAAE,MAAM,CAAC;QACvC;;;;WAIG;QACH,qBAAqB,CAAC,EAAE,aAAa,CAAC;KACvC,CAAC;IACF,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACvC,0EAA0E;QAC1E,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;QAC5C;;;WAGG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB;;;;;WAKG;QACH,cAAc,CAAC,EAAE;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;CACH;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5E;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ export const RELEASE_BRANCH_CHANGES = ['approved-only', 'direct-allowed'];
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AA4HA,MAAM,CAAC,MAAM,sBAAsB,GAAoC,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC"}
@@ -1,14 +1,21 @@
1
+ /**
2
+ * A team member's role on the team, as the platform's numeric `TeamRole`.
3
+ */
4
+ export declare enum TeamRole {
5
+ Admin = 0,
6
+ Editor = 1
7
+ }
1
8
  /**
2
9
  * A member of the team, as the platform lists them: the teammate a project item can be assigned
3
10
  * to. `gitHubUsername` is the member's linked GitHub account, null when none is linked; a member
4
11
  * can only be assigned a pull request through a linked account.
5
12
  *
6
- * Mirrors the platform's `list_team_members` entry.
13
+ * Mirrors the platform's `TeamMemberResponse`.
7
14
  */
8
15
  export interface TeamMember {
9
16
  userId: string;
10
17
  email: string;
11
- role: string;
18
+ role: TeamRole;
12
19
  gitHubUsername: string | null;
13
20
  }
14
21
  //# sourceMappingURL=team-member.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"team-member.d.ts","sourceRoot":"","sources":["../../../src/workflow/data/team-member.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
1
+ {"version":3,"file":"team-member.d.ts","sourceRoot":"","sources":["../../../src/workflow/data/team-member.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,MAAM,IAAI;CACX;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
@@ -1,2 +1,9 @@
1
- export {};
1
+ /**
2
+ * A team member's role on the team, as the platform's numeric `TeamRole`.
3
+ */
4
+ export var TeamRole;
5
+ (function (TeamRole) {
6
+ TeamRole[TeamRole["Admin"] = 0] = "Admin";
7
+ TeamRole[TeamRole["Editor"] = 1] = "Editor";
8
+ })(TeamRole || (TeamRole = {}));
2
9
  //# sourceMappingURL=team-member.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"team-member.js","sourceRoot":"","sources":["../../../src/workflow/data/team-member.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"team-member.js","sourceRoot":"","sources":["../../../src/workflow/data/team-member.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,2CAAU,CAAA;AACZ,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
@@ -3,9 +3,10 @@ import type { TeamMember } from '../data/team-member.js';
3
3
  /**
4
4
  * Stage 1 of change management as it applies to a branch and its PR
5
5
  * (change-management-policy.md, "Approval and release gates"): the PR gets its assignee - the approver of record -
6
- * and the assignee approves by merging it once the required CI/CD checks pass. The approver is a
7
- * teammate, named by email: the team member a project item is assigned to, whose linked GitHub
8
- * account is the PR's assignee. Used by the workflow handlers for a project item's branch and by
6
+ * and the assignee approves it once the required CI/CD checks pass, which merges it: the Idea1
7
+ * platform records the approval on the PR and merges it as the Idea1 GitHub App, so nobody merges
8
+ * into the base branch as themselves. The approver is a teammate, named by email: the team member a
9
+ * project item is assigned to, whose linked GitHub account is the PR's assignee. Used by the workflow handlers for a project item's branch and by
9
10
  * `ready-for-approval` / `approve-pr` for a branch with no project item (an integration branch,
10
11
  * for instance). Nothing here reads or writes the item's workflow context on idea1.ai; that stays
11
12
  * with the workflow engine.
@@ -47,19 +48,34 @@ export declare function ensurePrReadyForApproval(input: ReadyForApprovalInput):
47
48
  * say. The merge still waits for the required checks.
48
49
  */
49
50
  export declare const mergeConfirmationOption: CommandOption;
50
- export interface MergeAsApproverInput {
51
+ export interface MergeAsApproverInput<TApproval> {
51
52
  branchName: string;
52
53
  baseBranch: string;
53
54
  prNumber: number;
54
55
  /** The approver already said to merge (`--yes`), so the merge is not confirmed again. */
55
56
  confirmed: boolean;
57
+ /**
58
+ * Has the platform merge the PR as the signed-in user's approval, once its checks have passed:
59
+ * the platform records the approval on the PR, then the Idea1 GitHub App merges it.
60
+ */
61
+ approveOnPlatform: () => Promise<TApproval>;
56
62
  }
57
63
  /**
58
- * The stage-1 approval: the assignee merges the PR once the required checks pass. There is no
59
- * admin override here (change-management-policy.md, "The automated gate") - a red or unfinished suite stops it,
60
- * and the only way past is to fix the build. The caller confirms the approver's identity first.
64
+ * The stage-1 approval: the assignee approves the PR once the required checks pass, and the
65
+ * platform merges it. There is no admin override here (change-management-policy.md, "The automated
66
+ * gate") - a red or unfinished suite stops it, and the only way past is to fix the build. The caller
67
+ * makes sure the signed-in user is the PR's assignee first (`requireSignedInAssignee`). Returns
68
+ * what the platform's approval returned.
69
+ */
70
+ export declare function mergeAsApprover<TApproval>(input: MergeAsApproverInput<TApproval>): Promise<TApproval>;
71
+ /**
72
+ * The PR's assignee is its approver of record, and only an assignee approves it: the platform
73
+ * records the approval under the signed-in Idea1 user's linked GitHub account and refuses anyone
74
+ * else, so the CLI refuses first, before any wait for the checks. A PR with no assignee has no
75
+ * approver. A PR into the content release branch (`release.contentRelease`) is approved only by a
76
+ * member of the content release's team, which the platform also checks.
61
77
  */
62
- export declare function mergeAsApprover(input: MergeAsApproverInput): Promise<void>;
78
+ export declare function requireSignedInAssignee(branchName: string, baseBranch: string): Promise<void>;
63
79
  export interface CleanUpMergedBranchInput {
64
80
  branchName: string;
65
81
  baseBranch: string;
@@ -85,9 +101,10 @@ export declare function resolveApproverForBranch(options: Record<string, string>
85
101
  */
86
102
  export declare function readyForApprovalOnBranchWithNoItem(branchName: string, resolved: Record<string, string>): Promise<void>;
87
103
  /**
88
- * Stage 1 approval for a branch with no project item: the assignee merges the branch's PR once
89
- * the required checks pass (no override), then the branch is cleaned up. No workflow status is
90
- * recorded. The branch need not be checked out - the assignee can approve from anywhere.
104
+ * Stage 1 approval for a branch with no project item: the assignee approves the branch's PR once
105
+ * the required checks pass (no override), the platform merges it, then the branch is cleaned up. No
106
+ * workflow status is recorded. The branch need not be checked out - the assignee can approve from
107
+ * anywhere in a clone of the repository.
91
108
  */
92
109
  export declare function approvePrOnBranchWithNoItem(branchName: string, confirmed: boolean): Promise<void>;
93
110
  //# sourceMappingURL=approval-flow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval-flow.d.ts","sourceRoot":"","sources":["../../../src/workflow/engine/approval-flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AASlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAKhE;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B5F;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAKrC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChF;AAWD,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxF;AAwED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7F;AAED;;;;GAIG;AACH,wBAAsB,kCAAkC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkD5H;AAcD;;;;GAIG;AACH,wBAAsB,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDvG"}
1
+ {"version":3,"file":"approval-flow.d.ts","sourceRoot":"","sources":["../../../src/workflow/engine/approval-flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AASlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAKhE;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B5F;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAKrC,CAAC;AAEF,MAAM,WAAW,oBAAoB,CAAC,SAAS;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CA6B3G;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBnG;AAWD,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxF;AAwED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7F;AAED;;;;GAIG;AACH,wBAAsB,kCAAkC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkD5H;AAcD;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DvG"}
@@ -1,18 +1,19 @@
1
1
  import { logger } from '../../lib/logger.js';
2
2
  import { promptConfirm, promptInput, promptSelect } from '../../lib/prompt.js';
3
- import { readBranchSettings } from '../../lib/settings.js';
3
+ import { readBranchSettings, readReleaseSettings } from '../../lib/settings.js';
4
4
  import * as git from '../../services/git.js';
5
5
  import * as github from '../../services/github.js';
6
6
  import * as platform from '../../services/platform.js';
7
7
  import * as worktree from '../../services/worktree.js';
8
8
  import { removeCurrentWorktree, resolveBaseBranch } from '../../services/worktree.js';
9
- import { CHANGE_KIND, confirmApproverIdentity, createGatedPr, validateSourceBranch } from './release-engine.js';
9
+ import { CHANGE_KIND, createGatedPr, requireReleaseRole, signedInGitHubLogin, validateSourceBranch } from './release-engine.js';
10
10
  /**
11
11
  * Stage 1 of change management as it applies to a branch and its PR
12
12
  * (change-management-policy.md, "Approval and release gates"): the PR gets its assignee - the approver of record -
13
- * and the assignee approves by merging it once the required CI/CD checks pass. The approver is a
14
- * teammate, named by email: the team member a project item is assigned to, whose linked GitHub
15
- * account is the PR's assignee. Used by the workflow handlers for a project item's branch and by
13
+ * and the assignee approves it once the required CI/CD checks pass, which merges it: the Idea1
14
+ * platform records the approval on the PR and merges it as the Idea1 GitHub App, so nobody merges
15
+ * into the base branch as themselves. The approver is a teammate, named by email: the team member a
16
+ * project item is assigned to, whose linked GitHub account is the PR's assignee. Used by the workflow handlers for a project item's branch and by
16
17
  * `ready-for-approval` / `approve-pr` for a branch with no project item (an integration branch,
17
18
  * for instance). Nothing here reads or writes the item's workflow context on idea1.ai; that stays
18
19
  * with the workflow engine.
@@ -82,9 +83,11 @@ export const mergeConfirmationOption = {
82
83
  isFlag: true
83
84
  };
84
85
  /**
85
- * The stage-1 approval: the assignee merges the PR once the required checks pass. There is no
86
- * admin override here (change-management-policy.md, "The automated gate") - a red or unfinished suite stops it,
87
- * and the only way past is to fix the build. The caller confirms the approver's identity first.
86
+ * The stage-1 approval: the assignee approves the PR once the required checks pass, and the
87
+ * platform merges it. There is no admin override here (change-management-policy.md, "The automated
88
+ * gate") - a red or unfinished suite stops it, and the only way past is to fix the build. The caller
89
+ * makes sure the signed-in user is the PR's assignee first (`requireSignedInAssignee`). Returns
90
+ * what the platform's approval returned.
88
91
  */
89
92
  export async function mergeAsApprover(input) {
90
93
  const { branchName, baseBranch, prNumber } = input;
@@ -104,9 +107,31 @@ export async function mergeAsApprover(input) {
104
107
  checks.summary);
105
108
  }
106
109
  await requireMergeable(branchName, baseBranch);
107
- const mergeResult = await github.mergePr(branchName);
108
- if (!mergeResult.success) {
109
- throw new Error(`Failed to merge PR: ${mergeResult.error}`);
110
+ return input.approveOnPlatform();
111
+ }
112
+ /**
113
+ * The PR's assignee is its approver of record, and only an assignee approves it: the platform
114
+ * records the approval under the signed-in Idea1 user's linked GitHub account and refuses anyone
115
+ * else, so the CLI refuses first, before any wait for the checks. A PR with no assignee has no
116
+ * approver. A PR into the content release branch (`release.contentRelease`) is approved only by a
117
+ * member of the content release's team, which the platform also checks.
118
+ */
119
+ export async function requireSignedInAssignee(branchName, baseBranch) {
120
+ const assignees = await github.getPrAssignees(branchName);
121
+ if (assignees.length === 0) {
122
+ throw new Error('This PR has no assignee, so it has no approver of record. Assign one first - the assignee is who ' +
123
+ 'approves the change (change-management-policy.md, "Approval and release gates"). For a work-item PR run ' +
124
+ 'idea1 ready-for-approval --assignee <teammate email>; otherwise set the assignee on the PR in GitHub.');
125
+ }
126
+ const login = await signedInGitHubLogin();
127
+ const names = assignees.map(assignee => `@${assignee}`).join(', ');
128
+ if (!assignees.some(assignee => assignee.toLowerCase() === login.toLowerCase())) {
129
+ throw new Error(`This PR is assigned to ${names}, its approver(s) of record, not you (@${login}). Have the assignee approve it, or reassign it to yourself first.`);
130
+ }
131
+ logger.info(`Assigned to ${names} - you are the approver of record`);
132
+ const contentRelease = (await readReleaseSettings(await git.getRepoRoot())).contentRelease;
133
+ if (contentRelease !== null && baseBranch === contentRelease.branch) {
134
+ await requireReleaseRole(contentRelease.releaserTeam, 'release.contentRelease.releaserTeam', login, `approve changes into '${baseBranch}'`);
110
135
  }
111
136
  }
112
137
  async function requireMergeable(branchName, baseBranch) {
@@ -259,9 +284,10 @@ async function promptPrTitle(branchName) {
259
284
  return promptInput('Enter PR title:', { default: defaultTitle });
260
285
  }
261
286
  /**
262
- * Stage 1 approval for a branch with no project item: the assignee merges the branch's PR once
263
- * the required checks pass (no override), then the branch is cleaned up. No workflow status is
264
- * recorded. The branch need not be checked out - the assignee can approve from anywhere.
287
+ * Stage 1 approval for a branch with no project item: the assignee approves the branch's PR once
288
+ * the required checks pass (no override), the platform merges it, then the branch is cleaned up. No
289
+ * workflow status is recorded. The branch need not be checked out - the assignee can approve from
290
+ * anywhere in a clone of the repository.
265
291
  */
266
292
  export async function approvePrOnBranchWithNoItem(branchName, confirmed) {
267
293
  await github.ensureGitHubCli();
@@ -298,11 +324,20 @@ export async function approvePrOnBranchWithNoItem(branchName, confirmed) {
298
324
  const list = openPrsInto.map(pr => ` #${pr.number} ${pr.headRefName} ${pr.title}`).join('\n');
299
325
  throw new Error(`${openPrsInto.length} open PR(s) still target ${branchName}; approve or close them before approving this branch:\n${list}`);
300
326
  }
301
- await confirmApproverIdentity(branchName);
302
- await mergeAsApprover({ branchName, baseBranch, prNumber: prInfo.number, confirmed });
327
+ await requireSignedInAssignee(branchName, baseBranch);
328
+ const repositoryFullName = await git.getRepositoryFullName();
329
+ await mergeAsApprover({
330
+ branchName,
331
+ baseBranch,
332
+ prNumber: prInfo.number,
333
+ confirmed,
334
+ approveOnPlatform: async () => {
335
+ await platform.approvePullRequest(repositoryFullName, branchName);
336
+ }
337
+ });
303
338
  }
304
339
  await cleanUpMergedBranch({ branchName, baseBranch, workingPath });
305
340
  logger.newline();
306
- logger.success(`PR merged into ${baseBranch} - the merge is the recorded approval`);
341
+ logger.success(`PR merged into ${baseBranch}, with your approval recorded on it`);
307
342
  }
308
343
  //# sourceMappingURL=approval-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval-flow.js","sourceRoot":"","sources":["../../../src/workflow/engine/approval-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-flow.js","sourceRoot":"","sources":["../../../src/workflow/engine/approval-flow.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export interface BranchCreationChoices {
31
31
  }
32
32
  /**
33
33
  * Collect every branching decision up front (workflow type, branch name, stack branch,
34
- * integration branch) so all user questions are asked before any slow git or MCP work starts.
34
+ * integration branch) so all user questions are asked before any slow git or platform work starts.
35
35
  * Decisions already given as options are not asked again.
36
36
  */
37
37
  export declare function collectBranchCreationChoices(resolved: Record<string, string>): Promise<BranchCreationChoices>;
@@ -55,7 +55,7 @@ export const branchCreationOptions = [
55
55
  ];
56
56
  /**
57
57
  * Collect every branching decision up front (workflow type, branch name, stack branch,
58
- * integration branch) so all user questions are asked before any slow git or MCP work starts.
58
+ * integration branch) so all user questions are asked before any slow git or platform work starts.
59
59
  * Decisions already given as options are not asked again.
60
60
  */
61
61
  export async function collectBranchCreationChoices(resolved) {
@@ -1,15 +1,16 @@
1
1
  import { type WorkflowStateHandler } from '../workflow-engine.js';
2
2
  /**
3
- * Entering "Approved and Merged": merge the PR. The merge IS the approval - it is performed by
4
- * the PR's assignee, and GitHub records it as `merged_by` with a timestamp and merge commit
5
- * (change-management-policy.md, "Approval and release gates", stage 1). The merge waits for the required CI/CD checks
6
- * and there is no override at this stage: a red or unfinished suite stops it. A repository with no
7
- * CI/CD configured has no suite to wait for, so its PR merges straight away.
3
+ * Entering "Approved and Merged": the PR's assignee approves it, which merges it
4
+ * (change-management-policy.md, "Approval and release gates", stage 1). The approval waits for the
5
+ * required CI/CD checks and there is no override at this stage: a red or unfinished suite stops it.
6
+ * A repository with no CI/CD configured has no suite to wait for, so its PR is approved straight
7
+ * away.
8
8
  *
9
- * The branch is merged as it stands, so the checks waited for are the checks of what merges.
10
- * Afterwards the branch and any worktree are cleaned up; the platform records the branch as merged
11
- * when GitHub reports its deletion. A context whose branch is already merged has all the pull
12
- * request work done, so re-entering this state leaves it as it is.
9
+ * Once the checks pass the item is moved into this state on the platform, which records the
10
+ * signed-in user's approval on the PR, merges it as the Idea1 GitHub App and records the state, all
11
+ * in that one transition. The branch is merged as it stands, so the checks waited for are the checks
12
+ * of what merges. Afterwards the branch and any worktree are cleaned up. A context whose branch is
13
+ * already merged has all the pull request work done, so re-entering this state leaves it as it is.
13
14
  */
14
15
  export declare const approvePrHandler: WorkflowStateHandler;
15
16
  //# sourceMappingURL=approve-pr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approve-pr.d.ts","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/approve-pr.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoD,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEpH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,oBAuD9B,CAAC"}
1
+ {"version":3,"file":"approve-pr.d.ts","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/approve-pr.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0E,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE1I;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,oBA8D9B,CAAC"}
@@ -1,22 +1,23 @@
1
1
  import { logger } from '../../../lib/logger.js';
2
2
  import * as git from '../../../services/git.js';
3
3
  import * as github from '../../../services/github.js';
4
+ import * as platform from '../../../services/platform.js';
4
5
  import { WorkflowBranchState } from '../../data/workflow-context.js';
5
6
  import { WorkflowStates } from '../../data/workflow-states.js';
6
- import { cleanUpMergedBranch, mergeAsApprover, mergeConfirmationOption } from '../approval-flow.js';
7
- import { confirmApproverIdentity } from '../release-engine.js';
8
- import { isWorkMerged, requireContext, requireLiveContext } from '../workflow-engine.js';
7
+ import { cleanUpMergedBranch, mergeAsApprover, mergeConfirmationOption, requireSignedInAssignee } from '../approval-flow.js';
8
+ import { RECORDED_BY_PLATFORM, isWorkMerged, requireContext, requireLiveContext } from '../workflow-engine.js';
9
9
  /**
10
- * Entering "Approved and Merged": merge the PR. The merge IS the approval - it is performed by
11
- * the PR's assignee, and GitHub records it as `merged_by` with a timestamp and merge commit
12
- * (change-management-policy.md, "Approval and release gates", stage 1). The merge waits for the required CI/CD checks
13
- * and there is no override at this stage: a red or unfinished suite stops it. A repository with no
14
- * CI/CD configured has no suite to wait for, so its PR merges straight away.
10
+ * Entering "Approved and Merged": the PR's assignee approves it, which merges it
11
+ * (change-management-policy.md, "Approval and release gates", stage 1). The approval waits for the
12
+ * required CI/CD checks and there is no override at this stage: a red or unfinished suite stops it.
13
+ * A repository with no CI/CD configured has no suite to wait for, so its PR is approved straight
14
+ * away.
15
15
  *
16
- * The branch is merged as it stands, so the checks waited for are the checks of what merges.
17
- * Afterwards the branch and any worktree are cleaned up; the platform records the branch as merged
18
- * when GitHub reports its deletion. A context whose branch is already merged has all the pull
19
- * request work done, so re-entering this state leaves it as it is.
16
+ * Once the checks pass the item is moved into this state on the platform, which records the
17
+ * signed-in user's approval on the PR, merges it as the Idea1 GitHub App and records the state, all
18
+ * in that one transition. The branch is merged as it stands, so the checks waited for are the checks
19
+ * of what merges. Afterwards the branch and any worktree are cleaned up. A context whose branch is
20
+ * already merged has all the pull request work done, so re-entering this state leaves it as it is.
20
21
  */
21
22
  export const approvePrHandler = {
22
23
  state: WorkflowStates.ApprovedAndMerged,
@@ -43,14 +44,20 @@ export const approvePrHandler = {
43
44
  context.branchState = WorkflowBranchState.Merged;
44
45
  return;
45
46
  }
46
- await confirmApproverIdentity(context.branchName);
47
- await mergeAsApprover({
47
+ await requireSignedInAssignee(context.branchName, context.baseBranch);
48
+ const expectedStatus = transition.currentState ?? '';
49
+ const recorded = await mergeAsApprover({
48
50
  branchName: context.branchName,
49
51
  baseBranch: context.baseBranch,
50
52
  prNumber: prInfo.number,
51
- confirmed: transition.options[mergeConfirmationOption.longName] === 'true'
53
+ confirmed: transition.options[mergeConfirmationOption.longName] === 'true',
54
+ approveOnPlatform: async () => (await platform.transitionWorkflow(transition.projectItemUrl, expectedStatus, WorkflowStates.ApprovedAndMerged)).workflowContext
52
55
  });
53
- context.branchState = WorkflowBranchState.Merged;
56
+ if (recorded.branchState !== WorkflowBranchState.Merged) {
57
+ throw new Error(`idea1.ai moved ${transition.projectItemUrl} to "${recorded.workflowStatus}" without merging PR #${prInfo.number}.`);
58
+ }
59
+ Object.assign(context, recorded);
60
+ return RECORDED_BY_PLATFORM;
54
61
  },
55
62
  async complete(transition) {
56
63
  const context = requireContext(transition);
@@ -62,7 +69,7 @@ export const approvePrHandler = {
62
69
  logger.newline();
63
70
  logger.success('Workflow complete!');
64
71
  logger.newline();
65
- logger.hint(`PR merged into ${context.baseBranch} - the merge is the recorded approval`);
72
+ logger.hint(`PR merged into ${context.baseBranch}, with your approval recorded on it`);
66
73
  logger.hint(`Project item: ${transition.projectItemUrl}`);
67
74
  }
68
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"approve-pr.js","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/approve-pr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approve-pr.js","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/approve-pr.ts"],"names":[],"mappings":"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"}