@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.
- package/README.md +48 -29
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +20 -14
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/release.d.ts +7 -3
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +51 -26
- package/dist/commands/release.js.map +1 -1
- package/dist/lib/settings.d.ts +18 -3
- package/dist/lib/settings.d.ts.map +1 -1
- package/dist/lib/settings.js +14 -1
- package/dist/lib/settings.js.map +1 -1
- package/dist/services/github.d.ts +21 -19
- package/dist/services/github.d.ts.map +1 -1
- package/dist/services/github.js +56 -64
- package/dist/services/github.js.map +1 -1
- package/dist/services/platform-auth.d.ts +3 -2
- package/dist/services/platform-auth.d.ts.map +1 -1
- package/dist/services/platform-auth.js +105 -9
- package/dist/services/platform-auth.js.map +1 -1
- package/dist/services/platform.d.ts +52 -2
- package/dist/services/platform.d.ts.map +1 -1
- package/dist/services/platform.js +66 -1
- package/dist/services/platform.js.map +1 -1
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/workflow/engine/approval-flow.d.ts +28 -11
- package/dist/workflow/engine/approval-flow.d.ts.map +1 -1
- package/dist/workflow/engine/approval-flow.js +52 -17
- package/dist/workflow/engine/approval-flow.js.map +1 -1
- package/dist/workflow/engine/handlers/approve-pr.d.ts +10 -9
- package/dist/workflow/engine/handlers/approve-pr.d.ts.map +1 -1
- package/dist/workflow/engine/handlers/approve-pr.js +24 -17
- package/dist/workflow/engine/handlers/approve-pr.js.map +1 -1
- package/dist/workflow/engine/release-engine.d.ts +84 -56
- package/dist/workflow/engine/release-engine.d.ts.map +1 -1
- package/dist/workflow/engine/release-engine.js +281 -157
- package/dist/workflow/engine/release-engine.js.map +1 -1
- package/dist/workflow/engine/workflow-engine.d.ts +9 -2
- package/dist/workflow/engine/workflow-engine.d.ts.map +1 -1
- package/dist/workflow/engine/workflow-engine.js +20 -2
- package/dist/workflow/engine/workflow-engine.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ idea1 logout # revoke the sign-in and remove it from this computer
|
|
|
19
19
|
|
|
20
20
|
`idea1 login` opens the idea1.ai consent page in the browser, where you approve the CLI and choose the team; the CLI then prints the account and team it is signed in as. The CLI is an OAuth client of api.idea1.ai: it registers itself the first time, signs in with the authorization code flow and PKCE, and receives the browser's redirect on a local loopback port. Its access is limited to reading the team and reading and writing its projects (`team:read projects:read projects:write`).
|
|
21
21
|
|
|
22
|
-
The sign-in is kept in the operating system's credential store (macOS Keychain, Windows Credential Manager, the Secret Service on Linux) under the service `idea1-cli`, one
|
|
22
|
+
The sign-in is kept in the operating system's credential store (macOS Keychain, Windows Credential Manager, the Secret Service on Linux) under the service `idea1-cli`, as one or more entries per API base URL. Access tokens are short-lived and renewed automatically; the CLI processes of a parallel run share the one sign-in. A command that needs idea1.ai while you are not signed in starts the sign-in; an unattended run (a target of a batch) fails instead, asking for `idea1 login`.
|
|
23
23
|
|
|
24
24
|
Environment variables:
|
|
25
25
|
- `IDEA1_TOKEN` - a bearer token every platform call uses instead of the sign-in, such as a team API client's token in CI. Nothing is read from or kept in the credential store while it is set.
|
|
@@ -60,9 +60,10 @@ idea1 approve-pr --target working/integration/<name>-main
|
|
|
60
60
|
# From working/release: approve several items, branches or PRs at once, each in its own unattended run, in parallel
|
|
61
61
|
idea1 approve-pr --target https://app.idea1.ai/project/items/590,working/agent/fix-config,https://github.com/org/repo/pull/912
|
|
62
62
|
|
|
63
|
-
# Release the release branch to production (bumps changed packages' versions, opens the release PR into main assigned to you, and
|
|
63
|
+
# Release the release branch to production (bumps changed packages' versions, opens the release PR into main assigned to you, and has Idea1 merge it once the checks pass)
|
|
64
64
|
idea1 release # or: idea1 r; on working/hotfix it is a hotfix release of that branch
|
|
65
|
-
idea1 release --
|
|
65
|
+
idea1 release --branch working/content-website-release # a content release of the content release branch
|
|
66
|
+
idea1 release --approve # approve the release PR that is already open; Idea1 merges it
|
|
66
67
|
idea1 release --target <item url>,<branch> # approve these into working/release first, then release once all have merged
|
|
67
68
|
|
|
68
69
|
# Show help
|
|
@@ -144,11 +145,13 @@ A transition is "enter state X". Entering a state runs that state's automation (
|
|
|
144
145
|
|
|
145
146
|
A change reaches production through two merges, and **each merge is its approval**.
|
|
146
147
|
|
|
147
|
-
**Into `working/release`** — the PR's **assignee** (required) is its approver: the teammate the project item is assigned to on the way into Needs Approval for Release, through their linked GitHub account. They review the code and approve it by running `idea1 approve-pr`, which waits for the full CI/CD suite and then **
|
|
148
|
+
**Into `working/release`** — the PR's **assignee** (required) is its approver: the teammate the project item is assigned to on the way into Needs Approval for Release, through their linked GitHub account. They review the code and approve it by running `idea1 approve-pr`, which waits for the full CI/CD suite and then has the Idea1 platform **merge** the PR. That is not the GitHub "Approve" button, which only leaves a review behind and merges nothing. A red or unfinished suite stops the merge, and there is no override at this stage. Only one of the PR's assignees, signed in to Idea1 with a linked GitHub account, approves: `approve-pr` refuses anyone else before waiting for the checks, and the platform refuses them again. The platform posts an approval comment on the PR naming the approver, then merges it as the Idea1 GitHub App; that comment is the approval of record, and nothing is merged when it cannot be posted. A change approved in the Idea1 web app is merged the same way. Nobody merges into `working/release` as themselves, and only the Idea1 GitHub App and the production root tier can push to it (`infrastructure/branch-protection.json`).
|
|
148
149
|
|
|
149
|
-
**Any other branch into `working/release`** — a branch with no project item takes the same gate. `idea1 ready-for-approval` opens its PR (with the approval chain of what the branch carries as the body) and names its assignee — a teammate, assigned through their linked GitHub account, with no item to assign; `idea1 approve-pr`
|
|
150
|
+
**Any other branch into `working/release`** — a branch with no project item takes the same gate. `idea1 ready-for-approval` opens its PR (with the approval chain of what the branch carries as the body) and names its assignee — a teammate, assigned through their linked GitHub account, with no item to assign; `idea1 approve-pr` has the platform merge it once the suite passes, with the same assignee and no-override rules, and then deletes the branch. Only the idea1.ai status writes are absent. Integration branches work this way: work items PR into `working/integration/<name>-main` and are approved there exactly as above, then the integration branch itself is carried into `working/release` with these two commands — its PR body lists every work-item PR and who approved it, and `approve-pr` refuses while any PR still targets the integration branch.
|
|
150
151
|
|
|
151
|
-
**Into
|
|
152
|
+
**Into the content release branch** — a content change (under `content-website/`) is approved into `working/content-website-release` (`release.contentRelease.branch`) exactly as a change into `working/release` is, except that only a member of the content release's GitHub team (`release.contentRelease.releaserTeam`) approves it: `approve-pr` refuses anyone else before waiting for the checks, and the platform refuses them again.
|
|
153
|
+
|
|
154
|
+
**Into `main`** — only three branches are released into `main`: `working/release` in a planned release, `working/hotfix` in a hotfix release, and `working/content-website-release` in a content release. Only a member of the release role's GitHub team releases: `release.releaserTeam` (`releasers`) for a planned or hotfix release, `release.contentRelease.releaserTeam` (`content-releasers`) for a content release. `idea1 release` refuses anyone else before anything is committed or opened, and the platform refuses them again before it commits or merges anything. `idea1 release` opens the release PR **assigned to whoever ran it**: the releaser is the approver, and their merge is the recorded approval. A planned release needs no review — every change in it was already approved above, and the release PR body lists each contained PR with who approved it. Where the repository's `release.releaseBranchChanges` is `approved-only`, a commit pushed straight to `working/release` stops the release until a repository admin records why it was pushed directly, which goes on the PR; where it is `direct-allowed`, such a commit is listed on the PR for the releaser to review. A hotfix release carries an isolated fix pushed straight to `working/hotfix`, for when `working/release` is not ready to release; its one PR into `main` is where the fix is reviewed and approved. A content release carries the content changes approved into its branch, has no version bumps, and is merged only when every file it changes lies under `release.contentRelease.paths`. What this stage gates is the build: the required CI/CD checks must pass first. In the default `create` mode the releaser of a planned or hotfix release merges the PR in GitHub once the checks are green; in `merge` mode, with `idea1 release --approve`, and for every content release (whose releaser cannot merge into `main` in GitHub), the CLI waits for the checks and the Idea1 platform merges the PR: it checks the releaser is its assignee and holds the release role, brings its change list up to date, checks a content release's files, posts an approval comment naming the releaser - the approval of record - and merges it as the Idea1 GitHub App. A release approved in the Idea1 web app is merged the same way. The version bump is committed by the platform too, as the Idea1 GitHub App, since only the app and the production root tier can push to `working/release`. An emergency admin override past a red check needs an explicit confirmation and a stated reason, and is recorded as a comment on the PR before the admin merges it.
|
|
152
155
|
|
|
153
156
|
This is the change-management control DataFabrIQ is audited on; see "Approval and release gates" in `infrastructure/soc2/policies/change-management-policy.md`.
|
|
154
157
|
|
|
@@ -184,7 +187,7 @@ Work sometimes starts before its project item does: you make changes in your `wo
|
|
|
184
187
|
2. Every uncommitted change — staged or not, plus untracked files that are not ignored — is committed on top of the checkout's commit without touching the checkout, and that commit becomes the tip of the item's branch on origin. For an item with no branch, the branch is created at that commit and recorded as the item's; an item whose branch exists takes the changes only while that branch has no commits of its own and no local checkout. The base branch itself is never committed to or pushed.
|
|
185
188
|
3. The branch is checked out per the isolation mode: with `main-repo`, the checkout that held the changes switches to the branch with its working tree untouched (it is the branch's tip, so the checkout is clean); with `worktree`, the branch gets a worktree and the carried changes are removed from the base branch checkout.
|
|
186
189
|
|
|
187
|
-
With `--approve-and-merge`, the item is then advanced through every workflow state up to **Approved and Merged** with nothing asked on the way: no Claude session is launched at Agent Implementation, the item and its PR are assigned to **you** — the team member whose linked GitHub account `gh` is signed in as (the
|
|
190
|
+
With `--approve-and-merge`, the item is then advanced through every workflow state up to **Approved and Merged** with nothing asked on the way: no Claude session is launched at Agent Implementation, the item and its PR are assigned to **you** — the team member whose linked GitHub account `gh` is signed in as (the assignee is the approver of record), the CLI waits for the required CI/CD checks — the same no-override gate as `approve-pr` — and the platform merges, then brings your local base branch up to date with the merge. On a new item it needs changes to carry. A run that stops (failing checks, say) leaves the item at the last state it reached; fix the branch and run `idea1 approve-pr`, or run the command again with `--target`, to continue.
|
|
188
191
|
|
|
189
192
|
### ship-local-changes
|
|
190
193
|
|
|
@@ -384,7 +387,7 @@ idea1 rfa --assignee name@company.com --target <url>,<branch> # from working/r
|
|
|
384
387
|
|
|
385
388
|
### approve-pr
|
|
386
389
|
|
|
387
|
-
For a project item, advance the item to **Approved and Merged** — the same as `next --to "Approved and Merged"`: from an earlier state, every state in between is entered first, each with its own automation, and an item already at or past it is left as it is. For any other branch,
|
|
390
|
+
For a project item, advance the item to **Approved and Merged** — the same as `next --to "Approved and Merged"`: from an earlier state, every state in between is entered first, each with its own automation, and an item already at or past it is left as it is. For any other branch, approve the branch's PR. Run by the PR's **assignee**: it waits for the CI/CD suite, then the Idea1 platform records your approval on the PR and merges it as the Idea1 GitHub App. There is no admin override at this stage for any branch. Several targets are approved in parallel, from `working/release`: each merges as soon as its PR can, and your checkout ends on `working/release`, up to date with every merge, with no worktree left behind.
|
|
388
391
|
|
|
389
392
|
```bash
|
|
390
393
|
idea1 approve-pr
|
|
@@ -399,51 +402,54 @@ idea1 approve-pr --target <url>,<branch>,<pr url> --yes # several, in paral
|
|
|
399
402
|
|
|
400
403
|
**What it does for a project item:**
|
|
401
404
|
1. Enters every state before Approved and Merged the item has yet to reach (after syncing from origin)
|
|
402
|
-
2. Verifies the approver: refuses when the PR has no assignee, and when
|
|
403
|
-
3. Refuses a PR that conflicts with its base straight away, before any wait, and again after the checks (another merge may have made it conflict meanwhile). Waits for the required CI/CD checks on the PR — the checks of the branch's tip on origin, which the PR must have picked up first
|
|
404
|
-
4.
|
|
405
|
+
2. Verifies the approver: refuses when the PR has no assignee, and when the GitHub account linked to your Idea1 user is not one of its assignees (or you have none linked); a PR into the content release branch also needs you to be a member of `release.contentRelease.releaserTeam`
|
|
406
|
+
3. Refuses a PR that conflicts with its base straight away, before any wait, and again after the checks (another merge may have made it conflict meanwhile). Waits for the required CI/CD checks on the PR — the checks of the branch's tip on origin, which the PR must have picked up first. A red or unfinished suite stops the approval — there is no admin override at this stage. A legacy branch that still carries its workflow context file has the file removed and pushed instead, and the approval is left for a second run once the re-run suite passes
|
|
407
|
+
4. Moves the item to "Approved and Merged" on Idea1.ai, which merges it there: the platform checks the approver again, posts the approval comment on the PR, merges it as the Idea1 GitHub App and records the state, all in one transition. The branch is merged as it stands
|
|
405
408
|
5. Deletes the feature branch: when it is checked out in the main repo, switches to the base branch first; inside a worktree, removes the worktree instead — this always happens, since the base branch can't be checked out in place there. Then fast-forwards the base branch's local checkout to the merge
|
|
406
409
|
|
|
407
410
|
**What it does for a branch with no project item:**
|
|
408
411
|
1. Finds the branch's PR (run `ready-for-approval` first if there is none) and takes the target branch from it
|
|
409
412
|
2. Refuses while any open PR still targets the branch — merging would retire the branch and orphan them
|
|
410
|
-
3. Verifies the approver exactly as above, refuses a conflicting PR
|
|
411
|
-
4.
|
|
413
|
+
3. Verifies the approver exactly as above, refuses a conflicting PR and waits for the required CI/CD checks. A red or unfinished suite stops the approval — no override
|
|
414
|
+
4. Has Idea1.ai approve the PR: the platform checks the approver again, refuses a PR into the release target, posts the approval comment and merges it as the Idea1 GitHub App
|
|
415
|
+
5. Deletes the branch on origin and locally (removing its worktree, or switching to the base branch first when it is checked out in the main repo), and fast-forwards the base branch's local checkout. Records no workflow status
|
|
412
416
|
|
|
413
417
|
### release
|
|
414
418
|
|
|
415
|
-
Release to production. Bumps the versions of the packages that changed since the last release (
|
|
419
|
+
Release to production. Bumps the versions of the packages that changed since the last release (the Idea1 platform commits the bump to the branch being released), opens the release PR into `main`, **assigned to you**, and has it merged — the person who runs the command is the releaser and the approver. Only a member of the release role's GitHub team may release: `release.releaserTeam` for a planned or hotfix release, `release.contentRelease.releaserTeam` for a content release (see [Release Settings](#release-settings)); anyone else is refused before anything is committed or opened. A release is made from one of three branches:
|
|
416
420
|
|
|
417
421
|
- **Planned release** — the base branch (`working/release`): everything approved into it since the last release. No review is required, because every change in it was already approved on its own PR. A repository that sets `release.releaseBranchChanges` to `direct-allowed` also accepts changes made directly on the base branch; see [Release Settings](#release-settings).
|
|
418
422
|
- **Hotfix release** — the hotfix branch (`defaults.hotfixBranch`, `working/hotfix` by default), for an isolated fix that cannot wait until `working/release` is ready to release. The fix is pushed straight to the hotfix branch, and the release PR is where it is reviewed and approved, so there is one PR for it, not two. Run `idea1 release` on the hotfix branch to release it. Bring the hotfix branch level with `main` before pushing the fix, and once the release has merged, merge `main` into `working/release` so the next planned release carries the fix.
|
|
423
|
+
- **Content release** — the content release branch (`release.contentRelease.branch`, `working/content-website-release` here): the content changes approved into it with `idea1 approve-pr` (or merged in GitHub) since the last release. It has no version bumps, and every file it changes must lie under `release.contentRelease.paths`. Run `idea1 release --branch working/content-website-release` (or `idea1 release` on that branch) to open it, then `idea1 release --approve` once its checks pass: a content releaser cannot merge into `main` in GitHub, so the platform merges it.
|
|
419
424
|
|
|
420
425
|
```bash
|
|
421
426
|
idea1 release # prompts for any version bumps, the PR mode and title
|
|
422
427
|
idea1 release # on working/hotfix: a hotfix release of that branch
|
|
423
428
|
idea1 release --bumps filekit=minor,cli=patch # bump types given up front
|
|
424
|
-
idea1 release --pr-mode merge #
|
|
425
|
-
idea1 release --approve # approve
|
|
429
|
+
idea1 release --pr-mode merge # wait for the checks, then Idea1 merges it as your approval
|
|
430
|
+
idea1 release --approve # approve the open release PR; Idea1 merges it
|
|
431
|
+
idea1 release --branch working/content-website-release # open a content release
|
|
426
432
|
idea1 release --target <url>,<branch> # approve these into the release branch first, then release
|
|
427
433
|
idea1 r
|
|
428
434
|
```
|
|
429
435
|
|
|
430
436
|
**Options:**
|
|
431
|
-
- `-b, --branch <branch>` - Branch to release: `baseBranch` (a planned release)
|
|
437
|
+
- `-b, --branch <branch>` - Branch to release: `baseBranch` (a planned release), `hotfixBranch` (a hotfix release) or `release.contentRelease.branch` (a content release); any other branch is refused (default: `hotfixBranch` or the content release branch when it is checked out, else `baseBranch`)
|
|
432
438
|
- `-t, --target-branch <branch>` - Target branch to release into (default: `releaseTargetBranch`, then `main`)
|
|
433
439
|
- `--approve` - Approve and merge the release PR that is already open, instead of opening one. See [Approving an open release](#approving-an-open-release)
|
|
434
440
|
- `--target <url | branch | PR url>[,...]` - Planned releases only: project items, branches or PRs to approve into the base branch before releasing it. Asked for, blank by default, which releases the branch as it is. See [Releasing with approvals](#releasing-with-approvals)
|
|
435
|
-
- `--bumps <package=type,...>` - Version bump per changed package, as `patch`, `minor` or `major` (e.g. `filekit=minor,cli=patch`). A changed package it doesn't name is prompted for, with `patch` preselected; a package that needs no bump is ignored
|
|
436
|
-
- `-pr, --pr-mode <mode>` - `create` (default) creates the PR and opens it in the browser so you merge it there once the required checks pass
|
|
441
|
+
- `--bumps <package=type,...>` - Version bump per changed package, as `patch`, `minor` or `major` (e.g. `filekit=minor,cli=patch`). A changed package it doesn't name is prompted for, with `patch` preselected; a package that needs no bump is ignored. Refused for a content release, which has no bumps
|
|
442
|
+
- `-pr, --pr-mode <mode>` - `create` (default) creates the PR and opens it in the browser so you merge it there once the required checks pass (a content release is not opened in the browser: approve it with `--approve`); `merge` waits for every check with `gh`, then has the Idea1 platform record your approval on the PR and merge it as the Idea1 GitHub App. The merge is the recorded approval in every case
|
|
437
443
|
- `--title <title>` - PR title (default: `Release <YYYY-MM-DD>`, or `Hotfix release <YYYY-MM-DD>`)
|
|
438
444
|
- `-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
|
|
439
445
|
|
|
440
446
|
**What it does:**
|
|
441
|
-
1. Requires you to be on the branch being released 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
|
|
442
|
-
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
|
|
443
|
-
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 the direct commits. In a hotfix release the direct commits are the hotfix, listed as the change the PR's assignee reviews and approves by merging
|
|
447
|
+
1. Requires you to hold the release role for the kind of release, checked against the GitHub account linked to your Idea1 user, to be on the branch being released 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
|
|
448
|
+
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 computes the bump from your checkout, with no script or workflow: 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). The Idea1 platform commits them onto the release branch as one `chore: bump <package> <version>, ...` commit, as the Idea1 GitHub App, accepting only those version edits and only while the branch is still at your checkout's tip, and your checkout is fast-forwarded to it. 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. A content release has no bump step
|
|
449
|
+
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 the direct commits. In a hotfix release the direct commits are the hotfix, listed as the change the PR's assignee reviews and approves by merging. The approval chain is a delimited section of the body, between `<!-- approval-chain:start head=<sha> -->` and `<!-- approval-chain:end -->` (`head` is the branch tip it was rendered at), so it can be re-rendered while the PR is open without touching the line above it or anything added to the description
|
|
444
450
|
4. In a planned release of a repository whose `release.releaseBranchChanges` is `approved-only` (the default), refuses direct commits. A repository admin (the production root tier) can release them anyway — an explicit confirmation and a required reason for pushing them directly — and the reason is recorded as a comment on the PR naming the admin 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. Where it is `direct-allowed`, the direct commits are not refused: they are listed like a hotfix's, as the change the PR's assignee reviews and approves by merging, and no admin or reason is needed
|
|
445
|
-
5. In `merge` mode,
|
|
446
|
-
6. Opens GitHub Actions once
|
|
451
|
+
5. In `merge` mode, brings the PR's change list up to date (see [The change list stays current](#the-change-list-stays-current)), waits for the required CI/CD checks, and has the Idea1 platform merge the PR as your recorded approval. 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 the admin merges it
|
|
452
|
+
6. Opens GitHub Actions once the PR has merged, where the merge to `main` has triggered the production deploy
|
|
447
453
|
|
|
448
454
|
#### Releasing with approvals
|
|
449
455
|
|
|
@@ -465,10 +471,13 @@ In interactive mode the whole sequence runs as a background job (see `/jobs`); o
|
|
|
465
471
|
|
|
466
472
|
#### Approving an open release
|
|
467
473
|
|
|
468
|
-
`idea1 release --approve` finds the open release PR from the branch being released (the hotfix branch when it is checked out
|
|
469
|
-
- every check passed — merges
|
|
470
|
-
-
|
|
471
|
-
|
|
474
|
+
`idea1 release --approve` finds the open release PR from the branch being released (the hotfix or content release branch when it is checked out or named with `--branch`, else the base branch) into the target and approves it, 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), you must be one of its assignees by the GitHub account linked to your Idea1 user, and you must hold the release role for its kind of release — anyone else is refused, and the PR is reassigned in GitHub or approved by its assignee. Its change list is brought up to date, then the CLI waits for the required checks:
|
|
475
|
+
- every check passed — the Idea1 platform checks the approver, the role and (for a content release) that every file it changes is content, records your approval on the PR and merges it as the Idea1 GitHub App (`POST v1/teams/active/github/repository/releases/approve`). The CLI never merges a release itself
|
|
476
|
+
- a check failed — stops, unless a repository admin confirms the admin override, gives a reason, and has it recorded on the PR before the admin merges it
|
|
477
|
+
|
|
478
|
+
#### The change list stays current
|
|
479
|
+
|
|
480
|
+
A release PR lists every change it contains, including a PR merged into the release branch after the release PR was opened. Before `--approve` or `merge` mode merges the PR or hands it to auto-merge, and again before a merge made after waiting for the checks, the CLI fetches origin, re-renders the approval chain section from the branch as it stands, and writes it to the PR with `gh pr edit --body-file` when it differs; the rest of the description stays as it is. Direct pushes a repository admin already recorded on the PR stay listed under their recorded reasons (a record comment posted by anyone without admin permission on the repository is ignored); a direct push that landed with no recorded reason goes through the same admin confirmation and reason as when a release is opened, or stops the merge. When the section cannot be re-rendered, the merge goes ahead only if the branch is still at the tip the section names, so the list is still complete; otherwise nothing is merged. The Idea1 platform re-renders the same section when it approves a release and after every push to the release, hotfix or content release branch, so a release PR merged in GitHub lists what it carries too.
|
|
472
481
|
|
|
473
482
|
### idea1 links
|
|
474
483
|
|
|
@@ -547,12 +556,18 @@ Create `.idea1/settings.json` in your repository root to configure repo-specific
|
|
|
547
556
|
|
|
548
557
|
### Release Settings
|
|
549
558
|
|
|
550
|
-
The optional `release` section configures `idea1 release` and the Idea1 web app's release view: how changes may reach the release branch,
|
|
559
|
+
The optional `release` section configures `idea1 release` and the Idea1 web app's release view: how changes may reach the release branch, the repository folders a release versions, who may release, and the content release. A repository without `versionedPackages` has no version bump step.
|
|
551
560
|
|
|
552
561
|
```json
|
|
553
562
|
{
|
|
554
563
|
"release": {
|
|
555
564
|
"releaseBranchChanges": "approved-only",
|
|
565
|
+
"releaserTeam": "releasers",
|
|
566
|
+
"contentRelease": {
|
|
567
|
+
"branch": "working/content-website-release",
|
|
568
|
+
"paths": ["content-website/"],
|
|
569
|
+
"releaserTeam": "content-releasers"
|
|
570
|
+
},
|
|
556
571
|
"versionedPackages": [
|
|
557
572
|
{ "name": "filekit", "label": "filekit package", "path": "packages/filekit" },
|
|
558
573
|
{ "name": "cli", "label": "idea1 CLI", "path": "omega/idea1-cli" }
|
|
@@ -567,6 +582,10 @@ The optional `release` section configures `idea1 release` and the Idea1 web app'
|
|
|
567
582
|
|
|
568
583
|
The release target branch (`defaults.releaseTargetBranch`, `main`) is not configurable: it only ever changes through a release PR, never by a direct push. `settings.local.json` can override this setting for a clone, which changes what that clone's `idea1 release` accepts; the web app reads only the committed `settings.json`
|
|
569
584
|
- `versionedPackages` - The packages a release can bump: `name` (used by `--bumps`), `label` (shown in prompts) and `path` (the folder holding the package's `package.json`, relative to the repository root). A package needs a bump when its folder differs between the release branch and the target while its `package.json` version is the same on both
|
|
585
|
+
- `releaserTeam` - The slug of the GitHub team, in the repository's organization, whose members release the base and hotfix branches. Absent, anyone the release workflow admits releases them. Membership is read for the GitHub account linked to your Idea1 user, by the CLI (with `gh`) and again by the platform (as its GitHub App, which needs the organization's Members: Read permission)
|
|
586
|
+
- `contentRelease` - A release branch whose releases change only content: `branch` (released into `main` with no version bumps), `paths` (the repository folders or files a content release may change; a file outside them, or renamed from outside them, refuses the release) and `releaserTeam` (the GitHub team whose members approve changes into `branch` and release it; absent, anyone the workflow admits). Declared only with a branch and at least one path
|
|
587
|
+
|
|
588
|
+
The release roles, like `releaseBranchChanges`, are read by the platform from the committed `settings.json` alone, whatever a clone's `settings.local.json` says.
|
|
570
589
|
|
|
571
590
|
### Local Settings Overrides
|
|
572
591
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAMjD,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAMjD,eAAO,MAAM,WAAW,EAAE,OA4MzB,CAAC"}
|
package/dist/commands/help.js
CHANGED
|
@@ -30,7 +30,7 @@ export const helpCommand = {
|
|
|
30
30
|
console.log(` ${chalk.bold('approve-pr')} Assignee approves by merging the PR, then cleans up - any branch, item or not`);
|
|
31
31
|
console.log(` ${chalk.bold('join-project-item')} Set up a working environment on an item\'s existing branch`);
|
|
32
32
|
console.log(` ${chalk.bold('update-branch')} Merge latest from source branch into current branch`);
|
|
33
|
-
console.log(` ${chalk.bold('release')} Bump changed packages, open the release PR into main assigned to you, merge once checks pass (--approve:
|
|
33
|
+
console.log(` ${chalk.bold('release')} Bump changed packages, open the release PR into main assigned to you, have Idea1 merge it once checks pass (--approve: the open one)`);
|
|
34
34
|
console.log();
|
|
35
35
|
// Print the approval model - the assignee approves by merging, at both gates
|
|
36
36
|
console.log(chalk.bold('APPROVAL MODEL:'));
|
|
@@ -53,19 +53,23 @@ export const helpCommand = {
|
|
|
53
53
|
console.log(' merge it once the suite passes. No override, no status recorded.');
|
|
54
54
|
console.log();
|
|
55
55
|
console.log(` ${chalk.bold('Into main')} ${chalk.bold('release')} opens the release PR assigned to whoever ran it - the`);
|
|
56
|
-
console.log(' releaser is the approver
|
|
57
|
-
console.log('
|
|
58
|
-
console.log('
|
|
59
|
-
console.log('
|
|
60
|
-
console.log('
|
|
61
|
-
console.log('
|
|
62
|
-
console.log('
|
|
63
|
-
console.log('
|
|
64
|
-
console.log('
|
|
65
|
-
console.log('
|
|
66
|
-
console.log('
|
|
67
|
-
console.log('
|
|
68
|
-
console.log('
|
|
56
|
+
console.log(' releaser is the approver. Only working/release (a planned release),');
|
|
57
|
+
console.log(' working/hotfix (a hotfix release, run there) and the content release');
|
|
58
|
+
console.log(' branch (release.contentRelease, a content release) are released, each');
|
|
59
|
+
console.log(' only by a member of its release team (release.releaserTeam,');
|
|
60
|
+
console.log(' release.contentRelease.releaserTeam). A planned release needs no');
|
|
61
|
+
console.log(' review: every change in it was already approved above, and');
|
|
62
|
+
console.log(' (release.releaseBranchChanges: approved-only) a direct push stops it');
|
|
63
|
+
console.log(' until a repository admin records why on the PR; with direct-allowed');
|
|
64
|
+
console.log(' it is listed for review. A hotfix is pushed to working/hotfix directly');
|
|
65
|
+
console.log(' and reviewed in its one release PR. A content release carries no');
|
|
66
|
+
console.log(' version bumps and changes only its paths. Idea1 commits the version');
|
|
67
|
+
console.log(' bump as its GitHub App. The gate is the required CI/CD suite. Default');
|
|
68
|
+
console.log(' mode creates the PR to merge in GitHub once green (a content release');
|
|
69
|
+
console.log(' is approved with --approve); --pr-mode merge and --approve wait for');
|
|
70
|
+
console.log(' the checks, then Idea1 records your approval and merges. An emergency');
|
|
71
|
+
console.log(' admin override needs a confirmation, a reason, and is recorded on the');
|
|
72
|
+
console.log(' PR.');
|
|
69
73
|
console.log();
|
|
70
74
|
// Print branching workflows
|
|
71
75
|
console.log(chalk.bold('BRANCHING WORKFLOWS:'));
|
|
@@ -156,6 +160,8 @@ export const helpCommand = {
|
|
|
156
160
|
console.log(` ${chalk.dim('defaults.removeWorktreeAtState')} Workflow state that removes the worktree (default: Needs Approval for Release)`);
|
|
157
161
|
console.log(` ${chalk.dim('release.releaseBranchChanges')} How changes reach the release branch: approved-only (default) or direct-allowed`);
|
|
158
162
|
console.log(` ${chalk.dim('release.versionedPackages')} Package folders a release bumps when they changed: { name, label, path }`);
|
|
163
|
+
console.log(` ${chalk.dim('release.releaserTeam')} GitHub team whose members release the base and hotfix branches (default: anyone)`);
|
|
164
|
+
console.log(` ${chalk.dim('release.contentRelease')} A content release: { branch, paths, releaserTeam }`);
|
|
159
165
|
console.log(` ${chalk.dim('prompts.entryPoints')} Entry point prompts by workflow state: [{ name, template | templateFile }]`);
|
|
160
166
|
console.log();
|
|
161
167
|
console.log(' Worktree removal states: "Dev Implementation", "Needs Approval for Release", "Approved and Merged"');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;IACnB,WAAW,EAAE,uBAAuB;IAEpC,KAAK,CAAC,OAAO,CAAC,SAAiC;QAC7C,qBAAqB;QACrB,UAAU,EAAE,CAAC;QAEb,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;QAC7M,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClO,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,oGAAoG,CAAC,CAAC;QAClH,OAAO,CAAC,GAAG,CAAC,sGAAsG,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC;QACtG,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,wGAAwG,CAAC,CAAC;QAChJ,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,uGAAuG,CAAC,CAAC;QAC5J,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,4DAA4D,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,+EAA+E,CAAC,CAAC;QAC5I,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,kDAAkD,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,6FAA6F,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,iGAAiG,CAAC,CAAC;QAC9I,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,uEAAuE,CAAC,CAAC;QAC3H,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,oEAAoE,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;IACnB,WAAW,EAAE,uBAAuB;IAEpC,KAAK,CAAC,OAAO,CAAC,SAAiC;QAC7C,qBAAqB;QACrB,UAAU,EAAE,CAAC;QAEb,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;QAC7M,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClO,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,oGAAoG,CAAC,CAAC;QAClH,OAAO,CAAC,GAAG,CAAC,sGAAsG,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC;QACtG,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,wGAAwG,CAAC,CAAC;QAChJ,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,uGAAuG,CAAC,CAAC;QAC5J,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,4DAA4D,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,+EAA+E,CAAC,CAAC;QAC5I,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,kDAAkD,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,6FAA6F,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,iGAAiG,CAAC,CAAC;QAC9I,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,uEAAuE,CAAC,CAAC;QAC3H,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,oEAAoE,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,2JAA2J,CAAC,CAAC;QACrM,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,6EAA6E;QAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,uDAAuD,CAAC,CAAC;QAChJ,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC;QACtG,OAAO,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;QAC/F,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,wEAAwE,CAAC,CAAC;QACzH,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;QAC1G,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;QACxG,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC;QACvI,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;QACnG,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;QACxG,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;QAClG,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,gGAAgG,CAAC,CAAC;QAC9G,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;QACxG,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,4BAA4B;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,EAAE,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,sBAAsB;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,2BAA2B;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,+EAA+E,CAAC,CAAC;QAC3H,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;QAClC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEpF,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAE5C,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;gBAExD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAQ,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS;wBAC5B,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,QAAQ,EAAE;wBAC9C,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAE/B,IAAI,WAAW,GAAG,EAAE,CAAC;oBACrB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClB,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACrC,CAAC;yBAAM,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;wBACxC,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrE,CAAC;yBAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAC3B,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACzC,CAAC;oBAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC/C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;QAClG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iHAAiH,CAAC,CAAC;QACzJ,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,2EAA2E,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,CAAC,kHAAkH,CAAC,CAAC;QAChI,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,2GAA2G,CAAC,CAAC;QACxJ,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,8DAA8D,CAAC,CAAC;QAClH,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,4GAA4G,CAAC,CAAC;QACjK,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,kEAAkE,CAAC,CAAC;QACzH,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,2DAA2D,CAAC,CAAC;QACzH,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,kHAAkH,CAAC,CAAC;QACzK,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,4DAA4D,CAAC,CAAC;QAC9H,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,uCAAuC,CAAC,CAAC;QAC/G,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,2FAA2F,CAAC,CAAC;QAC3J,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,8FAA8F,CAAC,CAAC;QAC5J,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,0FAA0F,CAAC,CAAC;QACrJ,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,uGAAuG,CAAC,CAAC;QAC7J,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,uEAAuE,CAAC,CAAC;QAC/H,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,kGAAkG,CAAC,CAAC;QACvJ,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,sGAAsG,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;QAClG,OAAO,CAAC,GAAG,CAAC,mGAAmG,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,qIAAqI,CAAC,CAAC;QACnJ,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,2FAA2F,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;QAC1G,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,gHAAgH,CAAC,CAAC;QAC9H,OAAO,CAAC,GAAG,CAAC,oGAAoG,CAAC,CAAC;QAClH,OAAO,CAAC,GAAG,CAAC,yGAAyG,CAAC,CAAC;QACvH,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,kGAAkG,CAAC,CAAC;QAChH,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC;QACpG,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;CACF,CAAC"}
|
|
@@ -2,15 +2,19 @@ import type { Command } from '../types/index.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Stage 2 of change management (change-management-policy.md, "Approval and release gates"): the release PR into
|
|
4
4
|
* main. It is assigned to the person who runs the command - they are the releaser and the
|
|
5
|
-
* approver, and their merge is the recorded approval
|
|
6
|
-
*
|
|
5
|
+
* approver, and their merge is the recorded approval: in GitHub, or by the Idea1 platform once it
|
|
6
|
+
* has recorded their approval on the PR. Only a member of the release role for the kind of
|
|
7
|
+
* release may make it. What this stage gates is the build - the required CI/CD checks must pass
|
|
8
|
+
* before the merge.
|
|
7
9
|
*
|
|
8
10
|
* A planned release, from the base branch, needs no further review: every change in it was already
|
|
9
11
|
* approved on its own PR, and the body lists them. A commit pushed straight to the base branch
|
|
10
12
|
* stops it until a repository admin records why on the PR, unless the repository's
|
|
11
13
|
* `release.releaseBranchChanges` is `direct-allowed`, when the PR lists it for review. A hotfix release, run on the hotfix
|
|
12
14
|
* branch, carries an isolated fix pushed straight to that branch; its PR is where the fix is
|
|
13
|
-
* reviewed and approved, so its direct commits are listed rather than refused.
|
|
15
|
+
* reviewed and approved, so its direct commits are listed rather than refused. A content release,
|
|
16
|
+
* run on the content release branch, carries content changes each approved into that branch; it has
|
|
17
|
+
* no version bumps, changes only the content release's paths, and is merged only by the platform.
|
|
14
18
|
*
|
|
15
19
|
* Before the PR is opened, the packages that changed since the last release get their version
|
|
16
20
|
* bumps, committed and pushed to the branch being released by this command. `--approve` instead
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAgQjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,cAAc,EAAE,OAiJ5B,CAAC"}
|
package/dist/commands/release.js
CHANGED
|
@@ -9,25 +9,34 @@ 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 { HOTFIX_RELEASE_KIND, PR_MODE_OPTION, RELEASE_KIND, VERSION_BUMP_TYPES, approveRelease, commitVersionBumps, createGatedPr, detectPendingVersionBumps, ensureReleasable, runPrMode, validateSourceBranch } from '../workflow/engine/release-engine.js';
|
|
12
|
+
import { CONTENT_RELEASE_KIND, HOTFIX_RELEASE_KIND, PR_MODE_OPTION, RELEASE_KIND, VERSION_BUMP_TYPES, approveRelease, commitVersionBumps, createGatedPr, detectPendingVersionBumps, ensureReleasable, requireReleaser, runPrMode, validateSourceBranch } from '../workflow/engine/release-engine.js';
|
|
13
13
|
/**
|
|
14
|
-
* The branch to release and the kind of release it is. Only
|
|
15
|
-
* branch, in a planned release of changes each approved on its own PR,
|
|
16
|
-
* hotfix release whose directly pushed commits the release PR itself reviews and approves
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* The branch to release and the kind of release it is. Only these branches are released: the base
|
|
15
|
+
* branch, in a planned release of changes each approved on its own PR, the hotfix branch, in a
|
|
16
|
+
* hotfix release whose directly pushed commits the release PR itself reviews and approves, and the
|
|
17
|
+
* content release branch (`release.contentRelease`), in a content release of content changes each
|
|
18
|
+
* approved on their own PR. `--branch` names one of them; without it, running on the hotfix or
|
|
19
|
+
* content release branch releases that branch and running anywhere else releases the base branch.
|
|
19
20
|
*/
|
|
20
21
|
async function resolveReleaseSource(cliBranch) {
|
|
21
|
-
const
|
|
22
|
-
const
|
|
22
|
+
const repoRoot = await git.getRepoRoot();
|
|
23
|
+
const { baseBranch, hotfixBranch } = await readBranchSettings(repoRoot);
|
|
24
|
+
const contentBranch = (await readReleaseSettings(repoRoot)).contentRelease?.branch ?? null;
|
|
25
|
+
const currentBranch = await git.getCurrentBranch();
|
|
26
|
+
const onReleasedBranch = currentBranch === hotfixBranch || currentBranch === contentBranch;
|
|
27
|
+
const sourceBranch = cliBranch ?? (onReleasedBranch ? currentBranch : baseBranch);
|
|
23
28
|
if (sourceBranch === baseBranch) {
|
|
24
29
|
return { sourceBranch, kind: RELEASE_KIND };
|
|
25
30
|
}
|
|
26
31
|
if (sourceBranch === hotfixBranch) {
|
|
27
32
|
return { sourceBranch, kind: HOTFIX_RELEASE_KIND };
|
|
28
33
|
}
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
if (sourceBranch === contentBranch) {
|
|
35
|
+
return { sourceBranch, kind: CONTENT_RELEASE_KIND };
|
|
36
|
+
}
|
|
37
|
+
const contentRelease = contentBranch === null ? '' : `, or ${contentBranch} (a content release - release.contentRelease.branch)`;
|
|
38
|
+
throw new Error(`${sourceBranch} is not released. A release is made from ${baseBranch} (a planned release), ` +
|
|
39
|
+
`${hotfixBranch} (a hotfix release)${contentRelease} - defaults.baseBranch and defaults.hotfixBranch in .idea1/settings.json.`);
|
|
31
40
|
}
|
|
32
41
|
/**
|
|
33
42
|
* Resolve the target branch
|
|
@@ -111,9 +120,9 @@ async function resolvePendingBumps(sourceBranch, targetBranch, requestedBumps, i
|
|
|
111
120
|
/**
|
|
112
121
|
* Bump the versions of the packages that changed since the last release, before the PR is opened,
|
|
113
122
|
* so the PR's head - and the one CI/CD run the release is gated on - already carries them. The
|
|
114
|
-
* bump is
|
|
115
|
-
*
|
|
116
|
-
* versioned package needs a bump.
|
|
123
|
+
* bump is computed from the local checkout and committed onto the release branch by the Idea1
|
|
124
|
+
* platform, as its GitHub App, and the checkout is brought level with it. Nothing is asked, and
|
|
125
|
+
* nothing is committed, when no versioned package needs a bump.
|
|
117
126
|
*/
|
|
118
127
|
async function bumpPendingVersions(sourceBranch, targetBranch, requestedBumps) {
|
|
119
128
|
const { pending, bumps } = await resolvePendingBumps(sourceBranch, targetBranch, requestedBumps, []);
|
|
@@ -173,15 +182,19 @@ async function releaseWithApprovals(sourceBranch, targetBranch, targets, resolve
|
|
|
173
182
|
/**
|
|
174
183
|
* Stage 2 of change management (change-management-policy.md, "Approval and release gates"): the release PR into
|
|
175
184
|
* main. It is assigned to the person who runs the command - they are the releaser and the
|
|
176
|
-
* approver, and their merge is the recorded approval
|
|
177
|
-
*
|
|
185
|
+
* approver, and their merge is the recorded approval: in GitHub, or by the Idea1 platform once it
|
|
186
|
+
* has recorded their approval on the PR. Only a member of the release role for the kind of
|
|
187
|
+
* release may make it. What this stage gates is the build - the required CI/CD checks must pass
|
|
188
|
+
* before the merge.
|
|
178
189
|
*
|
|
179
190
|
* A planned release, from the base branch, needs no further review: every change in it was already
|
|
180
191
|
* approved on its own PR, and the body lists them. A commit pushed straight to the base branch
|
|
181
192
|
* stops it until a repository admin records why on the PR, unless the repository's
|
|
182
193
|
* `release.releaseBranchChanges` is `direct-allowed`, when the PR lists it for review. A hotfix release, run on the hotfix
|
|
183
194
|
* branch, carries an isolated fix pushed straight to that branch; its PR is where the fix is
|
|
184
|
-
* reviewed and approved, so its direct commits are listed rather than refused.
|
|
195
|
+
* reviewed and approved, so its direct commits are listed rather than refused. A content release,
|
|
196
|
+
* run on the content release branch, carries content changes each approved into that branch; it has
|
|
197
|
+
* no version bumps, changes only the content release's paths, and is merged only by the platform.
|
|
185
198
|
*
|
|
186
199
|
* Before the PR is opened, the packages that changed since the last release get their version
|
|
187
200
|
* bumps, committed and pushed to the branch being released by this command. `--approve` instead
|
|
@@ -193,13 +206,13 @@ export const releaseCommand = {
|
|
|
193
206
|
name: 'release',
|
|
194
207
|
aliases: ['r', 'rel'],
|
|
195
208
|
description: 'Bump the versions of changed packages, open the release PR into main assigned to you, and merge it once the checks pass - ' +
|
|
196
|
-
'a planned release of the base branch,
|
|
197
|
-
'branches into the base branch first (--approve merges the open release PR)',
|
|
209
|
+
'a planned release of the base branch, a hotfix release when run on the hotfix branch, or a content release of the content ' +
|
|
210
|
+
'release branch; optionally approving items or branches into the base branch first (--approve merges the open release PR)',
|
|
198
211
|
options: [
|
|
199
212
|
{
|
|
200
213
|
longName: 'branch',
|
|
201
214
|
shortName: 'b',
|
|
202
|
-
description: 'Branch to release: the base branch, or the
|
|
215
|
+
description: 'Branch to release: the base branch, the hotfix branch, or the content release branch (default: the hotfix or content release branch when on it, else the base branch)',
|
|
203
216
|
defaultValue: '',
|
|
204
217
|
promptWhenDefaultExists: false
|
|
205
218
|
},
|
|
@@ -220,8 +233,8 @@ export const releaseCommand = {
|
|
|
220
233
|
description: 'Project items, branches or PR URLs to approve into the base branch first, releasing once all have merged (default: release the branch as it is)',
|
|
221
234
|
defaultValue: '',
|
|
222
235
|
// Releasing the branch as it is and approving work into it first are both picked here. A
|
|
223
|
-
// hotfix release has nothing to approve into its branch first, so it is not asked.
|
|
224
|
-
resolveValue: async (resolved) => (await resolveReleaseSource(resolved['branch'] || undefined)).kind
|
|
236
|
+
// hotfix or content release has nothing to approve into its branch first, so it is not asked.
|
|
237
|
+
resolveValue: async (resolved) => (await resolveReleaseSource(resolved['branch'] || undefined)).kind !== RELEASE_KIND
|
|
225
238
|
? ''
|
|
226
239
|
: (await promptForTargets('release the release branch as it is')).join(','),
|
|
227
240
|
dependsOn: resolved => !isApprove(resolved)
|
|
@@ -259,11 +272,17 @@ export const releaseCommand = {
|
|
|
259
272
|
await approveRelease(sourceBranch, targetBranch, kind);
|
|
260
273
|
return;
|
|
261
274
|
}
|
|
275
|
+
// Only a releaser for this kind of release may open it; the platform checks again before it
|
|
276
|
+
// commits a bump or merges anything.
|
|
277
|
+
const releaser = await requireReleaser(kind, sourceBranch);
|
|
262
278
|
const targets = parseTargets(resolved[TARGET_OPTION_NAME] ?? '');
|
|
263
279
|
if (targets.length > 0) {
|
|
264
|
-
if (kind
|
|
265
|
-
throw new Error(`A
|
|
266
|
-
|
|
280
|
+
if (kind !== RELEASE_KIND) {
|
|
281
|
+
throw new Error(`A ${kind.label.toLowerCase()} carries ${sourceBranch} as it is, so nothing is approved into it first here: ` +
|
|
282
|
+
(kind === HOTFIX_RELEASE_KIND
|
|
283
|
+
? 'its fix is pushed to it directly and reviewed in the release PR. '
|
|
284
|
+
: 'its changes are approved into it with idea1 approve-pr. ') +
|
|
285
|
+
'Run idea1 release without --target.');
|
|
267
286
|
}
|
|
268
287
|
await releaseWithApprovals(sourceBranch, targetBranch, targets, resolved);
|
|
269
288
|
return;
|
|
@@ -274,12 +293,18 @@ export const releaseCommand = {
|
|
|
274
293
|
logger.newline();
|
|
275
294
|
await validateSourceBranch(sourceBranch);
|
|
276
295
|
await ensureReleasable(sourceBranch, targetBranch);
|
|
277
|
-
|
|
296
|
+
if (kind === CONTENT_RELEASE_KIND) {
|
|
297
|
+
if (resolved['bumps']) {
|
|
298
|
+
throw new Error(`A content release carries no version bumps, so --bumps does not apply to ${sourceBranch}.`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
await bumpPendingVersions(sourceBranch, targetBranch, parseBumpsOption(resolved['bumps']));
|
|
303
|
+
}
|
|
278
304
|
const prTitle = titleArg ?? await promptPrTitle(kind);
|
|
279
305
|
logger.info(`Using title: ${prTitle}`);
|
|
280
306
|
logger.info(`PR mode: ${prMode}`);
|
|
281
307
|
logger.newline();
|
|
282
|
-
const releaser = await github.getCurrentLogin();
|
|
283
308
|
const prUrl = await createGatedPr({
|
|
284
309
|
sourceBranch,
|
|
285
310
|
targetBranch,
|
|
@@ -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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"}
|