@idea1/cli 1.10.0 → 1.10.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 (31) hide show
  1. package/README.md +7 -7
  2. package/dist/commands/approve-pr.d.ts.map +1 -1
  3. package/dist/commands/approve-pr.js +1 -54
  4. package/dist/commands/approve-pr.js.map +1 -1
  5. package/dist/commands/ready-for-approval.d.ts.map +1 -1
  6. package/dist/commands/ready-for-approval.js +1 -79
  7. package/dist/commands/ready-for-approval.js.map +1 -1
  8. package/dist/commands/release.d.ts.map +1 -1
  9. package/dist/commands/release.js +5 -8
  10. package/dist/commands/release.js.map +1 -1
  11. package/dist/commands/ship-local-changes.d.ts +2 -0
  12. package/dist/commands/ship-local-changes.d.ts.map +1 -1
  13. package/dist/commands/ship-local-changes.js +30 -5
  14. package/dist/commands/ship-local-changes.js.map +1 -1
  15. package/dist/services/github.d.ts +25 -7
  16. package/dist/services/github.d.ts.map +1 -1
  17. package/dist/services/github.js +23 -9
  18. package/dist/services/github.js.map +1 -1
  19. package/dist/workflow/engine/approval-flow.d.ts +18 -0
  20. package/dist/workflow/engine/approval-flow.d.ts.map +1 -1
  21. package/dist/workflow/engine/approval-flow.js +122 -2
  22. package/dist/workflow/engine/approval-flow.js.map +1 -1
  23. package/dist/workflow/engine/release-engine.d.ts +16 -5
  24. package/dist/workflow/engine/release-engine.d.ts.map +1 -1
  25. package/dist/workflow/engine/release-engine.js +80 -8
  26. package/dist/workflow/engine/release-engine.js.map +1 -1
  27. package/dist/workflow/engine/ship-flow.d.ts +10 -0
  28. package/dist/workflow/engine/ship-flow.d.ts.map +1 -1
  29. package/dist/workflow/engine/ship-flow.js +70 -13
  30. package/dist/workflow/engine/ship-flow.js.map +1 -1
  31. package/package.json +1 -1
package/README.md CHANGED
@@ -172,7 +172,7 @@ With `--approve-and-merge`, the item is then advanced through every workflow sta
172
172
 
173
173
  ### ship-local-changes
174
174
 
175
- `start --carry-local-changes --approve-and-merge` as one unattended command: create a project item, cut its branch from `working/release`, commit and push your uncommitted changes there, advance it to Needs Approval for Release assigned to you, with a PR assigned to you, wait for the PR's checks and merge it into `working/release`. You end on `working/release`, clean, with your changes merged. The only questions are the ones a new item needs (its title and Project) when they are not supplied.
175
+ `start --carry-local-changes --approve-and-merge` as one unattended command: create a project item, cut its branch from `working/release`, commit and push your uncommitted changes there, advance it to Needs Approval for Release assigned to you, with a PR assigned to you, wait for the PR's checks and merge it into `working/release`. You end on `working/release`, clean, with your changes merged. The only questions are the ones a new item needs (its title and Project) when they are not supplied. Leaving the title blank ships with no project item: the changes go onto a branch that gets a PR assigned to you, which merges once its checks pass, exactly as `ready-for-approval` and `approve-pr` treat a branch with no item, and no workflow status is recorded.
176
176
 
177
177
  ```bash
178
178
  idea1 ship-local-changes --title "Release prep" --project "Omega"
@@ -183,10 +183,10 @@ idea1 ship --target <url> # an existing item whose branch has no commit
183
183
 
184
184
  **Options:**
185
185
  - `--target <url | branch | PR url>` - An existing project item (default: create a new one).
186
- - `-t, --title <title>`, `-P, --project <name>` - The new item's title and Project (asked when missing and no target is given).
186
+ - `-t, --title <title>`, `-P, --project <name>` - The new item's title and Project (asked when no target is given; a blank title skips the item and the Project).
187
187
  - `-n, --branch-name <name>` - Branch name under the branch prefix (default: derived from the item).
188
188
  - `-b, --base-branch <branch>` - The branch your checkout is on, which the item's branch is cut from and merges into (default: `baseBranch`).
189
- - `-M, --commit-message <message>` - Commit message (default: the item's title).
189
+ - `-M, --commit-message <message>` - Commit message (default: the item's title; with no item, a generic message naming the base branch).
190
190
  - `-iso, --isolation <mode>` - `worktree` (default, never asked) works on the branch in a worktree while it is shipped and leaves your checkout on `working/release`; `main-repo` switches your checkout to the branch until the merge, then back.
191
191
  - `-r, --reviewers <user1,user2>` - Reviewers to request on the PR (optional).
192
192
 
@@ -420,8 +420,8 @@ idea1 r
420
420
  - `-y, --yes` - In `merge` mode, merge without asking for confirmation; with `--target`, also start the approvals without asking. The required checks still gate every merge
421
421
 
422
422
  **What it does:**
423
- 1. Requires you to be on the release branch with nothing uncommitted, unpushed or behind origin
424
- 2. Bumps versions, when the repository's `.idea1/settings.json` has a `release` section (see [Release Settings](#release-settings)). A versioned package needs a bump when its folder differs between the release branch and the target and its `package.json` version is still the same on both — so a release re-run after a bump never bumps twice. You pick `patch`, `minor` or `major` for each such package (or give them with `--bumps`), and are asked nothing when no package changed. The CLI makes the bump itself, in your checkout, with no script or workflow: it sets the new version in each package's `package.json` and in the lockfiles at or above the package's folder that record it (the same files `npm version` touches, edited in place so nothing else changes), commits them as one `chore: bump <package> <version>, ...` commit and pushes it to the release branch. Only plain `major.minor.patch` versions are bumped. The bump lands before the PR is opened, so its commit is the PR's head and the suite runs once, on the release as it will merge. A bump is never made onto a release PR that is already open, which may already be approved. The Idea1 web app's release view makes the same bump through the GitHub API
423
+ 1. Requires you to be on the release branch with nothing uncommitted, unpushed or behind origin, and to have write access to the repository. Refuses when a PR from the release branch into the target is already open: one that does not follow the release workflow (it has no assignee, or its description carries no approval chain) has to be fixed in GitHub or closed, and a release PR is approved with `--approve` instead. The Idea1 web app refuses a release on the same terms
424
+ 2. Bumps versions, when the repository's `.idea1/settings.json` has a `release` section (see [Release Settings](#release-settings)). A versioned package needs a bump when its folder differs between the release branch and the target and its `package.json` version is still the same on both — so a release re-run after a bump never bumps twice. You pick `patch`, `minor` or `major` for each such package (or give them with `--bumps`), and are asked nothing when no package changed. The CLI makes the bump itself, in your checkout, with no script or workflow: it sets the new version in each package's `package.json` and in the lockfiles at or above the package's folder that record it (the same files `npm version` touches, edited in place so nothing else changes), commits them as one `chore: bump <package> <version>, ...` commit and pushes it to the release branch. Only plain `major.minor.patch` versions are bumped. The bump lands before the PR is opened, so its commit is the PR's head and the suite runs once, on the release as it will merge. The Idea1 web app's release view makes the same bump through the GitHub API
425
425
  3. Creates the release PR assigned to you, whose body is the release's approval chain: every contained PR — attributed by GitHub's commit association, so squash and rebase merges are covered — with its author and the assignee who approved it by merging. Commits with no PR are listed separately, split in two: the version bumps (a commit with no PR that changes only version files, meaning the `package.json` of a declared package and the lockfiles above it, whatever its name or author), which are release automation and not an exception, and genuine direct commits, which are exceptions under change-management-policy.md clause 2, explained at the quarterly review
426
426
  4. Refuses the release when nothing in it came through a merged PR. A repository admin can override that — an explicit confirmation and a required reason — and the exception is recorded as a comment on the PR naming the admin, the reason and every commit that had no PR, as well as in the PR body. Anyone who is not a repository admin just gets the refusal
427
427
  5. In `merge` mode, enables auto-merge, or waits for the required CI/CD checks and merges normally. Checks that fail, never start or never finish stop the release; an admin override is available but takes an explicit confirmation and a required reason, and the exception is recorded as a comment on the PR before anything is merged
@@ -431,7 +431,7 @@ idea1 r
431
431
 
432
432
  `idea1 release --target <items, branches or PRs>` releases the release branch once the given targets are approved into it, as one unattended sequence:
433
433
 
434
- 1. **Checks:** your checkout must be on the release branch, clean and level with origin. Then every target is resolved exactly as `approve-pr` resolves several targets.
434
+ 1. **Checks:** your checkout must be on the release branch, clean and level with origin, and the release must be one that can be created (see step 1 above). Then every target is resolved exactly as `approve-pr` resolves several targets.
435
435
  2. **Questions, all asked up front:**
436
436
  - the options the targets' workflow states need, then one confirmation of the approvals;
437
437
  - the version bump of every versioned package changed on the release branch or on any target's branch;
@@ -447,7 +447,7 @@ In interactive mode the whole sequence runs as a background job (see `/jobs`); o
447
447
 
448
448
  #### Approving an open release
449
449
 
450
- `idea1 release --approve` finds the open release PR from the release branch into the target and merges it as its approver, after the same assignee check as `approve-pr`:
450
+ `idea1 release --approve` finds the open release PR from the release branch into the target and merges it as its approver, on the same terms as the Idea1 web app: you need write access to the repository, the PR must follow the release workflow (an assignee, and the approval chain as its description), and you must be one of its assignees — anyone else is refused, and the PR is reassigned in GitHub or approved by its assignee. Then:
451
451
  - every check passed — merges now
452
452
  - checks still running — enables auto-merge, or waits for the checks and merges where GitHub can't auto-merge
453
453
  - a check failed — stops, unless a repository admin confirms the admin override, gives a reason, and has it recorded on the PR before the merge
@@ -1 +1 @@
1
- {"version":3,"file":"approve-pr.d.ts","sourceRoot":"","sources":["../../src/commands/approve-pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAyEjD,eAAO,MAAM,gBAAgB,EAAE,OA0B9B,CAAC"}
1
+ {"version":3,"file":"approve-pr.d.ts","sourceRoot":"","sources":["../../src/commands/approve-pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAOjD,eAAO,MAAM,gBAAgB,EAAE,OA0B9B,CAAC"}
@@ -1,61 +1,8 @@
1
- import { logger } from '../lib/logger.js';
2
- import { readBranchSettings } from '../lib/settings.js';
3
- import * as git from '../services/git.js';
4
- import * as github from '../services/github.js';
5
- import * as worktree from '../services/worktree.js';
6
1
  import { WorkflowStates } from '../workflow/data/workflow-states.js';
7
- import { cleanUpMergedBranch, mergeAsApprover, mergeConfirmationOption } from '../workflow/engine/approval-flow.js';
8
- import { confirmApproverIdentity } from '../workflow/engine/release-engine.js';
2
+ import { approvePrOnBranchWithNoItem, mergeConfirmationOption } from '../workflow/engine/approval-flow.js';
9
3
  import { advanceAsNeededTo, resolveTarget } from '../workflow/engine/workflow-engine.js';
10
4
  import { runForTargets, targetOption } from '../jobs/targets.js';
11
5
  import { deferredHandlerOptions } from '../workflow/engine/handlers/index.js';
12
- /**
13
- * Stage 1 approval for a branch with no project item: the assignee merges the branch's PR once
14
- * the required checks pass (no override), then the branch is cleaned up. No workflow status is
15
- * recorded. The branch need not be checked out - the assignee can approve from anywhere.
16
- */
17
- async function approvePrOnBranchWithNoItem(branchName, confirmed) {
18
- await github.ensureGitHubCli();
19
- // Captured before anything moves: cleanup may switch branches or remove a worktree.
20
- const workingPath = await git.getCheckoutPathForBranch(branchName);
21
- const prInfo = await github.getPrInfo(branchName);
22
- if (!prInfo) {
23
- throw new Error(`No PR found for ${branchName}. Run idea1 ready-for-approval --target ${branchName} first to open it and name its approver.`);
24
- }
25
- logger.info(`PR #${prInfo.number} found`);
26
- const state = prInfo.state.toUpperCase();
27
- if (state === 'CLOSED') {
28
- throw new Error(`PR #${prInfo.number} is closed without being merged; there is nothing to approve.`);
29
- }
30
- const baseBranch = prInfo.baseRefName ?? await worktree.resolveBaseBranch();
31
- const releaseTargetBranch = (await readBranchSettings(await git.getRepoRoot())).releaseTargetBranch;
32
- if (baseBranch === releaseTargetBranch) {
33
- throw new Error(`PR #${prInfo.number} targets ${releaseTargetBranch}: that is a release, not a change to approve. ` +
34
- 'Use idea1 release for it (change-management-policy.md clause 2).');
35
- }
36
- logger.header(`Approve: ${branchName} -> ${baseBranch}`);
37
- logger.info('This branch has no project item, so no workflow status is recorded.');
38
- logger.newline();
39
- if (state === 'MERGED') {
40
- logger.dim(`PR #${prInfo.number} is already merged; cleaning up the branch.`);
41
- }
42
- else {
43
- if (workingPath) {
44
- await git.ensureBranchUpToDate();
45
- }
46
- // Merging retires the branch, which would orphan any PR still targeting it.
47
- const openPrsInto = await github.listOpenPrsInto(branchName);
48
- if (openPrsInto.length > 0) {
49
- const list = openPrsInto.map(pr => ` #${pr.number} ${pr.headRefName} ${pr.title}`).join('\n');
50
- throw new Error(`${openPrsInto.length} open PR(s) still target ${branchName}; approve or close them before approving this branch:\n${list}`);
51
- }
52
- await confirmApproverIdentity(branchName);
53
- await mergeAsApprover({ branchName, baseBranch, prNumber: prInfo.number, confirmed });
54
- }
55
- await cleanUpMergedBranch({ branchName, baseBranch, workingPath });
56
- logger.newline();
57
- logger.success(`PR merged into ${baseBranch} - the merge is the recorded approval`);
58
- }
59
6
  export const approvePrCommand = {
60
7
  name: 'approve-pr',
61
8
  aliases: ['approve'],
@@ -1 +1 @@
1
- {"version":3,"file":"approve-pr.js","sourceRoot":"","sources":["../../src/commands/approve-pr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E;;;;GAIG;AACH,KAAK,UAAU,2BAA2B,CAAC,UAAkB,EAAE,SAAkB;IAC/E,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;IAE/B,oFAAoF;IACpF,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,2CAA2C,UAAU,0CAA0C,CAAC,CAAC;IAChJ,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,OAAO,MAAM,CAAC,MAAM,+DAA+D,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IAC5E,MAAM,mBAAmB,GAAG,CAAC,MAAM,kBAAkB,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACpG,IAAI,UAAU,KAAK,mBAAmB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,OAAO,MAAM,CAAC,MAAM,YAAY,mBAAmB,gDAAgD;YACnG,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,YAAY,UAAU,OAAO,UAAU,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACnF,MAAM,CAAC,OAAO,EAAE,CAAC;IAEjB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,6CAA6C,CAAC,CAAC;IAChF,CAAC;SAAM,CAAC;QACN,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACnC,CAAC;QAED,4EAA4E;QAC5E,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,WAAW,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjG,MAAM,IAAI,KAAK,CACb,GAAG,WAAW,CAAC,MAAM,4BAA4B,UAAU,0DAA0D,IAAI,EAAE,CAC5H,CAAC;QACJ,CAAC;QAED,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,mBAAmB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAEnE,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,OAAO,CAAC,kBAAkB,UAAU,uCAAuC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAY;IACvC,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,WAAW,EAAE,8LAA8L;IAC3M,OAAO,EAAE;QACP,YAAY,CAAC,IAAI,CAAC;QAClB,4FAA4F;QAC5F,qEAAqE;QACrE,GAAG,sBAAsB,CAAC,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,aAAa,CAAC,gBAAgB,EAAE,QAAQ,EAAE;YAC9C,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,iBAAiB;YAClD,gBAAgB,EAAE,IAAI;YACtB,uBAAuB,EAAE,IAAI;YAC7B,GAAG,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;gBAClB,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1E,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACnC,MAAM,iBAAiB,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;oBACrF,OAAO;gBACT,CAAC;gBACD,MAAM,2BAA2B,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,CAAC;YACtH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"approve-pr.js","sourceRoot":"","sources":["../../src/commands/approve-pr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAY;IACvC,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,WAAW,EAAE,8LAA8L;IAC3M,OAAO,EAAE;QACP,YAAY,CAAC,IAAI,CAAC;QAClB,4FAA4F;QAC5F,qEAAqE;QACrE,GAAG,sBAAsB,CAAC,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,aAAa,CAAC,gBAAgB,EAAE,QAAQ,EAAE;YAC9C,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,iBAAiB;YAClD,gBAAgB,EAAE,IAAI;YACtB,uBAAuB,EAAE,IAAI;YAC7B,GAAG,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;gBAClB,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1E,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACnC,MAAM,iBAAiB,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;oBACrF,OAAO;gBACT,CAAC;gBACD,MAAM,2BAA2B,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,CAAC;YACtH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ready-for-approval.d.ts","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAsGjD,eAAO,MAAM,uBAAuB,EAAE,OA0CrC,CAAC"}
1
+ {"version":3,"file":"ready-for-approval.d.ts","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQjD,eAAO,MAAM,uBAAuB,EAAE,OA0CrC,CAAC"}
@@ -1,87 +1,9 @@
1
- import { logger } from '../lib/logger.js';
2
- import { promptInput, promptSelect } from '../lib/prompt.js';
3
- import { readBranchSettings } from '../lib/settings.js';
4
1
  import { WorkflowStates } from '../workflow/data/workflow-states.js';
5
- import * as git from '../services/git.js';
6
- import * as github from '../services/github.js';
7
- import * as platform from '../services/platform.js';
8
- import * as worktree from '../services/worktree.js';
9
- import { approverGitHubLogin, assigneeOption, ensurePrReadyForApproval } from '../workflow/engine/approval-flow.js';
10
- import { validateSourceBranch } from '../workflow/engine/release-engine.js';
2
+ import { readyForApprovalOnBranchWithNoItem, resolveApproverForBranch } from '../workflow/engine/approval-flow.js';
11
3
  import { advanceOrReenter, resolveTarget } from '../workflow/engine/workflow-engine.js';
12
4
  import { runForTargets, targetOption } from '../jobs/targets.js';
13
5
  import { deferredHandlerOptions } from '../workflow/engine/handlers/index.js';
14
6
  import { readyForApprovalHandler } from '../workflow/engine/handlers/ready-for-approval.js';
15
- /**
16
- * The teammate who approves a branch with no project item, as the `assignee` option (their email or
17
- * GitHub login): asked from the team's members when not supplied. There is no item to assign; the
18
- * teammate's linked GitHub account becomes the PR's assignee.
19
- */
20
- async function resolveApproverForBranch(options) {
21
- if ((options[assigneeOption.longName] ?? '').trim().length > 0) {
22
- return;
23
- }
24
- const members = await platform.listTeamMembers();
25
- options[assigneeOption.longName] = await promptSelect('Assign to a teammate (the assignee approves the pull request)', members.map(member => ({ label: member.email, value: member.email })));
26
- }
27
- /**
28
- * Stage 1 for a branch with no project item - an integration branch carrying approved work items,
29
- * for instance: the PR into the base branch is opened when the branch has none, with the approval
30
- * chain of what it carries as its body, and gets its assignee. No workflow status is recorded.
31
- */
32
- async function readyForApprovalOnBranchWithNoItem(branchName, resolved) {
33
- await github.ensureGitHubCli();
34
- await resolveApproverForBranch(resolved);
35
- const approver = approverGitHubLogin(await platform.resolveTeammate(resolved[assigneeOption.longName]));
36
- const existingPr = await github.getPrInfo(branchName);
37
- const openPr = existingPr && existingPr.state.toUpperCase() === 'OPEN' ? existingPr : null;
38
- const requestedBase = resolved['base-branch'] || null;
39
- const targetBranch = openPr?.baseRefName ?? requestedBase ?? await worktree.resolveBaseBranch();
40
- if (openPr?.baseRefName && requestedBase && openPr.baseRefName !== requestedBase) {
41
- logger.warning(`PR #${openPr.number} targets ${openPr.baseRefName}; --base-branch ${requestedBase} is ignored. Retarget the PR in GitHub if that is wrong.`);
42
- }
43
- if (branchName === targetBranch) {
44
- throw new Error(`${targetBranch} is the branch changes are approved into, not a change to approve. Pass --target <the branch, item or PR to approve>.`);
45
- }
46
- const releaseTargetBranch = (await readBranchSettings(await git.getRepoRoot())).releaseTargetBranch;
47
- if (targetBranch === releaseTargetBranch) {
48
- throw new Error(`A change is approved into ${await worktree.resolveBaseBranch()}, never straight into ${releaseTargetBranch}; ` +
49
- 'use idea1 release for that (change-management-policy.md clause 2).');
50
- }
51
- logger.header(`Ready for approval: ${branchName} -> ${targetBranch}`);
52
- logger.info('This branch has no project item, so no workflow status is recorded.');
53
- logger.newline();
54
- if (!await git.fetchRemoteBranch(branchName)) {
55
- throw new Error(`Branch ${branchName} is not on origin. Push it first: git push -u origin ${branchName}`);
56
- }
57
- // A local checkout of the branch (the working directory, once the target is resolved) must
58
- // carry exactly what origin has; a branch with no checkout here is what origin has.
59
- if (await git.getCheckoutPathForBranch(branchName)) {
60
- await validateSourceBranch(branchName);
61
- }
62
- const title = openPr ? '' : (resolved['title'] || await promptPrTitle(branchName));
63
- await ensurePrReadyForApproval({
64
- branchName,
65
- baseBranch: targetBranch,
66
- assignee: approver,
67
- reviewers: resolved['reviewers'] ?? '',
68
- createWhenMissing: openPr ? null : { title }
69
- });
70
- logger.newline();
71
- logger.success('PR is ready for approval');
72
- logger.hint(`The assignee approves it by running: idea1 approve-pr --target ${branchName} (which merges it)`);
73
- }
74
- /**
75
- * The PR title, defaulting to `Integration <name> <date>` for an integration branch and to the
76
- * branch name otherwise.
77
- */
78
- async function promptPrTitle(branchName) {
79
- const integrationBranches = await worktree.listExistingIntegrationBranches();
80
- const defaultTitle = integrationBranches.includes(branchName)
81
- ? `Integration ${await worktree.extractIntegrationName(branchName)} ${new Date().toISOString().split('T')[0]}`
82
- : branchName;
83
- return promptInput('Enter PR title:', { default: defaultTitle });
84
- }
85
7
  export const readyForApprovalCommand = {
86
8
  name: 'ready-for-approval',
87
9
  aliases: ['rfa'],
@@ -1 +1 @@
1
- {"version":3,"file":"ready-for-approval.js","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ready-for-approval.js","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kCAAkC,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,MAAM,CAAC,MAAM,uBAAuB,GAAY;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,WAAW,EAAE,yNAAyN;IACtO,OAAO,EAAE;QACP,YAAY,CAAC,IAAI,CAAC;QAClB,iHAAiH;QACjH,GAAG,CAAC,uBAAuB,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C;YACE,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,2HAA2H;YACxI,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;SAC/B;QACD;YACE,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,mFAAmF;YAChG,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;SAC/B;QACD,4FAA4F;QAC5F,eAAe;QACf,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,OAAO,IAAI,EAAE,CAAC;KACjE;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,aAAa,CAAC,uBAAuB,EAAE,QAAQ,EAAE;YACrD,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,uBAAuB;YACxD,gBAAgB,EAAE,IAAI;YACtB,uBAAuB,EAAE,wBAAwB;YACjD,GAAG,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;gBAClB,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1E,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACnC,gGAAgG;oBAChG,MAAM,gBAAgB,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAC;oBAC1F,OAAO;gBACT,CAAC;gBACD,MAAM,kCAAkC,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAChF,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAoOjD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,EAAE,OAmH5B,CAAC"}
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAgOjD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,EAAE,OAoH5B,CAAC"}
@@ -9,7 +9,7 @@ import { TARGET_OPTION_NAME, parseTargets, prepareTargetRuns, promptForTargets }
9
9
  import { WorkflowStates } from '../workflow/data/workflow-states.js';
10
10
  import { mergeConfirmationOption } from '../workflow/engine/approval-flow.js';
11
11
  import { approvePrCommand } from './approve-pr.js';
12
- import { PR_MODE_OPTION, RELEASE_KIND, VERSION_BUMP_TYPES, approveRelease, commitVersionBumps, createGatedPr, detectPendingVersionBumps, runPrMode, validateSourceBranch } from '../workflow/engine/release-engine.js';
12
+ import { PR_MODE_OPTION, RELEASE_KIND, VERSION_BUMP_TYPES, approveRelease, commitVersionBumps, createGatedPr, detectPendingVersionBumps, ensureReleasable, runPrMode, validateSourceBranch } from '../workflow/engine/release-engine.js';
13
13
  /**
14
14
  * Resolve the release branch (source branch)
15
15
  */
@@ -62,8 +62,8 @@ function parseBumpsOption(value) {
62
62
  * The versioned packages that need a bump for the release, with the bump type of each: from
63
63
  * `--bumps`, else asked. Counts the changes of `incomingBranches`, the branches approved into the
64
64
  * release branch before it is released, as the release's own. None when the repository declares no
65
- * versioned packages, or when a release PR is already open: a bump is never made onto an open
66
- * release PR, which may already be approved.
65
+ * versioned packages. The caller has already refused a release with a PR open, so a bump is never
66
+ * made onto an open release PR, which may already be approved.
67
67
  */
68
68
  async function resolvePendingBumps(sourceBranch, targetBranch, requestedBumps, incomingBranches) {
69
69
  const settings = await readReleaseSettings(await git.getRepoRoot());
@@ -79,11 +79,6 @@ async function resolvePendingBumps(sourceBranch, targetBranch, requestedBumps, i
79
79
  throw new Error(`--bumps names unknown package(s): ${unknownNames.join(', ')}. ` +
80
80
  `The versioned packages are: ${knownNames.join(', ')}.`);
81
81
  }
82
- if (await github.checkPrExists(sourceBranch, targetBranch)) {
83
- logger.dim('A release PR is already open, so no version bump is made onto it');
84
- logger.newline();
85
- return { pending: [], bumps: {} };
86
- }
87
82
  logger.step('Checking which versioned packages changed since the last release...');
88
83
  const pending = await detectPendingVersionBumps(settings.versionedPackages, sourceBranch, targetBranch, incomingBranches);
89
84
  if (pending.length === 0) {
@@ -134,6 +129,7 @@ async function releaseWithApprovals(sourceBranch, targetBranch, targets, resolve
134
129
  logger.newline();
135
130
  // The release runs in this checkout once the approvals have merged, so it must be fit for that now.
136
131
  await validateSourceBranch(sourceBranch);
132
+ await ensureReleasable(sourceBranch, targetBranch);
137
133
  const { runs, summaries } = await prepareTargetRuns(approvePrCommand, targets, resolved, {
138
134
  advancesTo: () => WorkflowStates.ApprovedAndMerged,
139
135
  itemlessBranches: true,
@@ -253,6 +249,7 @@ export const releaseCommand = {
253
249
  logger.header(`Release: ${sourceBranch} -> ${targetBranch}`);
254
250
  logger.newline();
255
251
  await validateSourceBranch(sourceBranch);
252
+ await ensureReleasable(sourceBranch, targetBranch);
256
253
  await bumpPendingVersions(sourceBranch, targetBranch, parseBumpsOption(resolved['bumps']));
257
254
  const prTitle = titleArg ?? await promptPrTitle();
258
255
  logger.info(`Using title: ${prTitle}`);
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import type { Command } from '../types/index.js';
3
3
  * `start --carry-local-changes --approve-and-merge` with nothing asked beyond what a new item
4
4
  * needs (its title and Project): the uncommitted changes of the base branch checkout become a
5
5
  * project item's branch and PR, which merges into the base branch once the required checks pass.
6
+ * With the title left blank no item is created: the changes become a branch with no project item,
7
+ * which goes through the same approval and merge.
6
8
  */
7
9
  export declare const shipLocalChangesCommand: Command;
8
10
  //# sourceMappingURL=ship-local-changes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ship-local-changes.d.ts","sourceRoot":"","sources":["../../src/commands/ship-local-changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAYjD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAuBrC,CAAC"}
1
+ {"version":3,"file":"ship-local-changes.d.ts","sourceRoot":"","sources":["../../src/commands/ship-local-changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAajD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,OA8CrC,CAAC"}
@@ -1,21 +1,38 @@
1
1
  import { isolationModeOption } from '../lib/isolation.js';
2
2
  import { branchCreationOptions } from '../workflow/engine/branch-setup.js';
3
- import { approveAndMergeOption, carryLocalChangesOption, commitMessageOption, unpromptedReviewersOption } from '../workflow/engine/ship-flow.js';
3
+ import { approveAndMergeOption, carryLocalChangesOption, commitMessageOption, shipWithoutItem, unpromptedReviewersOption } from '../workflow/engine/ship-flow.js';
4
4
  import { TARGET_OPTION_NAME } from '../jobs/targets.js';
5
5
  import { projectItemTargetOptions, startProjectItem } from './start.js';
6
6
  /**
7
7
  * `start --carry-local-changes --approve-and-merge` with nothing asked beyond what a new item
8
8
  * needs (its title and Project): the uncommitted changes of the base branch checkout become a
9
9
  * project item's branch and PR, which merges into the base branch once the required checks pass.
10
+ * With the title left blank no item is created: the changes become a branch with no project item,
11
+ * which goes through the same approval and merge.
10
12
  */
11
13
  export const shipLocalChangesCommand = {
12
14
  name: 'ship-local-changes',
13
15
  aliases: ['ship'],
14
- description: 'Ship the uncommitted changes of your base branch checkout: create a project item and its branch, commit and push the changes there, and advance it through approval, merging its PR once the checks pass',
16
+ description: 'Ship the uncommitted changes of your base branch checkout: create a project item (optional) and its branch, commit and push the changes there, and advance it through approval, merging its PR once the checks pass',
15
17
  options: [
16
- ...projectItemTargetOptions.map(option => option.longName === TARGET_OPTION_NAME
17
- ? { ...option, description: 'Project item URL, or its branch name or PR URL (default: create a new item)', promptWhenDefaultExists: false }
18
- : option),
18
+ ...projectItemTargetOptions.map(option => {
19
+ switch (option.longName) {
20
+ case TARGET_OPTION_NAME:
21
+ return { ...option, description: 'Project item URL, or its branch name or PR URL (default: create a new item)', promptWhenDefaultExists: false };
22
+ case 'title':
23
+ return {
24
+ ...option,
25
+ description: 'Title for the new project item (leave blank to ship without a project item)',
26
+ defaultValue: '',
27
+ promptWhenDefaultExists: true,
28
+ validate: undefined
29
+ };
30
+ case 'project':
31
+ return { ...option, dependsOn: (resolved) => !resolved[TARGET_OPTION_NAME] && !!resolved['title'].trim() };
32
+ default:
33
+ return option;
34
+ }
35
+ }),
19
36
  ...branchCreationOptions
20
37
  .filter(option => option.longName !== 'workflow-type')
21
38
  .map(option => ({ ...option, dependsOn: undefined, defaultValue: '', promptWhenDefaultExists: false })),
@@ -24,6 +41,14 @@ export const shipLocalChangesCommand = {
24
41
  unpromptedReviewersOption
25
42
  ],
26
43
  async execute(resolved) {
44
+ if (!resolved[TARGET_OPTION_NAME].trim() && !resolved['title'].trim()) {
45
+ const sourcePath = resolved['source-path'];
46
+ if (sourcePath) {
47
+ process.chdir(sourcePath);
48
+ }
49
+ await shipWithoutItem(resolved);
50
+ return;
51
+ }
27
52
  await startProjectItem({
28
53
  ...resolved,
29
54
  [carryLocalChangesOption.longName]: 'true',
@@ -1 +1 @@
1
- {"version":3,"file":"ship-local-changes.js","sourceRoot":"","sources":["../../src/commands/ship-local-changes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAY;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,WAAW,EAAE,0MAA0M;IACvN,OAAO,EAAE;QACP,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,kBAAkB;YAC9E,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,6EAA6E,EAAE,uBAAuB,EAAE,KAAK,EAAE;YAC3I,CAAC,CAAC,MAAM,CAAC;QACX,GAAG,qBAAqB;aACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,eAAe,CAAC;aACrD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC;QACzG,mBAAmB;QACnB,EAAE,GAAG,mBAAmB,EAAE,WAAW,EAAE,iDAAiD,EAAE,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,KAAK,EAAE;QACpJ,yBAAyB;KAC1B;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,gBAAgB,CAAC;YACrB,GAAG,QAAQ;YACX,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,MAAM;YAC1C,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM;SACzC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"ship-local-changes.js","sourceRoot":"","sources":["../../src/commands/ship-local-changes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAY;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,WAAW,EAAE,qNAAqN;IAClO,OAAO,EAAE;QACP,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACvC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACxB,KAAK,kBAAkB;oBACrB,OAAO,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,6EAA6E,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC;gBACnJ,KAAK,OAAO;oBACV,OAAO;wBACL,GAAG,MAAM;wBACT,WAAW,EAAE,6EAA6E;wBAC1F,YAAY,EAAE,EAAE;wBAChB,uBAAuB,EAAE,IAAI;wBAC7B,QAAQ,EAAE,SAAS;qBACpB,CAAC;gBACJ,KAAK,SAAS;oBACZ,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,QAAgC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrI;oBACE,OAAO,MAAM,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QACF,GAAG,qBAAqB;aACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,eAAe,CAAC;aACrD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC;QACzG,mBAAmB;QACnB,EAAE,GAAG,mBAAmB,EAAE,WAAW,EAAE,iDAAiD,EAAE,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,KAAK,EAAE;QACpJ,yBAAyB;KAC1B;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACtE,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC3C,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;YACD,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,MAAM,gBAAgB,CAAC;YACrB,GAAG,QAAQ;YACX,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,MAAM;YAC1C,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM;SACzC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -143,6 +143,16 @@ export interface CreatePrOptions {
143
143
  * Create a PR with its body and assignee set at creation, returning its URL.
144
144
  */
145
145
  export declare function createPr(options: CreatePrOptions): Promise<string>;
146
+ /** An open PR as the release workflow checks it: its description and its approvers of record. */
147
+ export interface OpenPr {
148
+ number: number;
149
+ url: string;
150
+ /** The description, empty when none was written. */
151
+ body: string;
152
+ assignees: string[];
153
+ }
154
+ /** The open PR from `headBranch` into `baseBranch`, or null when there is none. */
155
+ export declare function getOpenPr(headBranch: string, baseBranch: string): Promise<OpenPr | null>;
146
156
  /**
147
157
  * Read who a PR's assignee is. The assignee is its approver, so `idea1 approve-pr` reports it
148
158
  * before merging.
@@ -176,11 +186,19 @@ export interface CommitPullRequest {
176
186
  * "Merge pull request" subject to parse, but GitHub still knows which PR the commit came from.
177
187
  */
178
188
  export declare function getPullRequestsForCommit(sha: string): Promise<CommitPullRequest[]>;
179
- /**
180
- * Whether the authenticated user is an admin on the repository. The overrides in
181
- * change-management-policy.md are the CTO's to make, and repository admin is how that authority is
182
- * expressed in GitHub - so an override that has no GitHub gate of its own is checked here rather
183
- * than taken on the caller's word.
184
- */
185
- export declare function isCurrentUserRepoAdmin(): Promise<boolean>;
189
+ /** The repository and what the authenticated user may do in it. */
190
+ export interface RepoAccess {
191
+ /** The repository as `owner/name`. */
192
+ fullName: string;
193
+ /** Whether the user may push to it, which also lets them open and merge PRs. */
194
+ push: boolean;
195
+ /**
196
+ * Whether the user is an admin on it. The overrides in change-management-policy.md are the
197
+ * CTO's to make, and repository admin is how that authority is expressed in GitHub - so an
198
+ * override that has no GitHub gate of its own is checked here rather than taken on the caller's word.
199
+ */
200
+ admin: boolean;
201
+ }
202
+ /** The authenticated user's access to the repository of the current checkout. */
203
+ export declare function getRepoAccess(): Promise<RepoAccess>;
186
204
  //# 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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"}
@@ -543,6 +543,22 @@ export async function createPr(options) {
543
543
  }
544
544
  return result.stdout.trim();
545
545
  }
546
+ /** The open PR from `headBranch` into `baseBranch`, or null when there is none. */
547
+ export async function getOpenPr(headBranch, baseBranch) {
548
+ await ensureGitHubCli();
549
+ const result = await exec('gh', [
550
+ 'pr', 'list',
551
+ '--head', headBranch,
552
+ '--base', baseBranch,
553
+ '--json', 'number,url,body,assignees',
554
+ '--jq', '[.[] | { number: .number, url: .url, body: .body, assignees: [.assignees[].login] }] | .[0]'
555
+ ]);
556
+ if (result.exitCode !== 0) {
557
+ throw new Error(`Could not read the open PR from ${headBranch} into ${baseBranch}: ${result.stderr}`);
558
+ }
559
+ const output = result.stdout.trim();
560
+ return output && output !== 'null' ? JSON.parse(output) : null;
561
+ }
546
562
  /**
547
563
  * Read who a PR's assignee is. The assignee is its approver, so `idea1 approve-pr` reports it
548
564
  * before merging.
@@ -605,18 +621,16 @@ export async function getPullRequestsForCommit(sha) {
605
621
  }
606
622
  return JSON.parse(result.stdout);
607
623
  }
608
- /**
609
- * Whether the authenticated user is an admin on the repository. The overrides in
610
- * change-management-policy.md are the CTO's to make, and repository admin is how that authority is
611
- * expressed in GitHub - so an override that has no GitHub gate of its own is checked here rather
612
- * than taken on the caller's word.
613
- */
614
- export async function isCurrentUserRepoAdmin() {
624
+ /** The authenticated user's access to the repository of the current checkout. */
625
+ export async function getRepoAccess() {
615
626
  await ensureGitHubCli();
616
- const result = await exec('gh', ['api', 'repos/{owner}/{repo}', '--jq', '.permissions.admin']);
627
+ const result = await exec('gh', [
628
+ 'api', 'repos/{owner}/{repo}',
629
+ '--jq', '{ fullName: .full_name, push: (.permissions.push == true), admin: (.permissions.admin == true) }'
630
+ ]);
617
631
  if (result.exitCode !== 0) {
618
632
  throw new Error(`Could not read your permissions on the repository: ${result.stderr}`);
619
633
  }
620
- return result.stdout.trim() === 'true';
634
+ return JSON.parse(result.stdout);
621
635
  }
622
636
  //# sourceMappingURL=github.js.map