@idea1/cli 1.8.2 → 1.8.3
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 +92 -18
- package/dist/commands/approve-pr.js +5 -5
- package/dist/commands/approve-pr.js.map +1 -1
- package/dist/commands/attach-project-item.d.ts.map +1 -1
- package/dist/commands/attach-project-item.js +27 -7
- package/dist/commands/attach-project-item.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +8 -6
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/index.d.ts +2 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/integrate.d.ts +13 -0
- package/dist/commands/integrate.d.ts.map +1 -0
- package/dist/commands/integrate.js +128 -0
- package/dist/commands/integrate.js.map +1 -0
- package/dist/commands/ready-for-approval.js +1 -1
- package/dist/commands/ready-for-approval.js.map +1 -1
- package/dist/commands/release.d.ts +4 -0
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +105 -20
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/ship-local-changes.d.ts +8 -0
- package/dist/commands/ship-local-changes.d.ts.map +1 -0
- package/dist/commands/ship-local-changes.js +33 -0
- package/dist/commands/ship-local-changes.js.map +1 -0
- package/dist/commands/start-project-item.d.ts +27 -0
- package/dist/commands/start-project-item.d.ts.map +1 -0
- package/dist/commands/start-project-item.js +325 -0
- package/dist/commands/start-project-item.js.map +1 -0
- package/dist/commands/start.d.ts +6 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +53 -18
- package/dist/commands/start.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/lib/claude-options.d.ts +3 -2
- package/dist/lib/claude-options.d.ts.map +1 -1
- package/dist/lib/claude-options.js +15 -4
- package/dist/lib/claude-options.js.map +1 -1
- package/dist/lib/settings.d.ts +13 -3
- package/dist/lib/settings.d.ts.map +1 -1
- package/dist/lib/settings.js +12 -3
- package/dist/lib/settings.js.map +1 -1
- package/dist/services/git.d.ts +34 -13
- package/dist/services/git.d.ts.map +1 -1
- package/dist/services/git.js +75 -39
- package/dist/services/git.js.map +1 -1
- package/dist/services/github.d.ts +15 -0
- package/dist/services/github.d.ts.map +1 -1
- package/dist/services/github.js +47 -0
- package/dist/services/github.js.map +1 -1
- package/dist/services/setup.d.ts.map +1 -1
- package/dist/services/setup.js +18 -24
- package/dist/services/setup.js.map +1 -1
- package/dist/services/workflow.d.ts +17 -0
- package/dist/services/workflow.d.ts.map +1 -0
- package/dist/services/workflow.js +39 -0
- package/dist/services/workflow.js.map +1 -0
- package/dist/types/index.d.ts +18 -24
- package/dist/types/index.d.ts.map +1 -1
- package/dist/version.d.ts +2 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +3 -2
- package/dist/version.js.map +1 -1
- package/dist/workflow/engine/approval-flow.d.ts +8 -1
- package/dist/workflow/engine/approval-flow.d.ts.map +1 -1
- package/dist/workflow/engine/approval-flow.js +23 -8
- package/dist/workflow/engine/approval-flow.js.map +1 -1
- package/dist/workflow/engine/handlers/agent-implementation.js +1 -1
- package/dist/workflow/engine/handlers/agent-implementation.js.map +1 -1
- package/dist/workflow/engine/handlers/approve-pr.d.ts.map +1 -1
- package/dist/workflow/engine/handlers/approve-pr.js +9 -3
- package/dist/workflow/engine/handlers/approve-pr.js.map +1 -1
- package/dist/workflow/engine/handlers/ready-for-approval.d.ts +5 -0
- package/dist/workflow/engine/handlers/ready-for-approval.d.ts.map +1 -1
- package/dist/workflow/engine/handlers/ready-for-approval.js +11 -7
- package/dist/workflow/engine/handlers/ready-for-approval.js.map +1 -1
- package/dist/workflow/engine/{release-flow.d.ts → release-engine.d.ts} +77 -6
- package/dist/workflow/engine/release-engine.d.ts.map +1 -0
- package/dist/workflow/engine/{release-flow.js → release-engine.js} +279 -17
- package/dist/workflow/engine/release-engine.js.map +1 -0
- package/dist/workflow/engine/ship-flow.d.ts +87 -0
- package/dist/workflow/engine/ship-flow.d.ts.map +1 -0
- package/dist/workflow/engine/ship-flow.js +227 -0
- package/dist/workflow/engine/ship-flow.js.map +1 -0
- package/dist/workflow/engine/workflow-engine.d.ts +18 -2
- package/dist/workflow/engine/workflow-engine.d.ts.map +1 -1
- package/dist/workflow/engine/workflow-engine.js +58 -19
- package/dist/workflow/engine/workflow-engine.js.map +1 -1
- package/package.json +2 -2
- package/dist/workflow/engine/release-flow.d.ts.map +0 -1
- package/dist/workflow/engine/release-flow.js.map +0 -1
package/dist/services/setup.js
CHANGED
|
@@ -12,7 +12,6 @@ const DEFAULT_SETTINGS = {
|
|
|
12
12
|
defaults: {
|
|
13
13
|
branchPrefix: DEFAULT_BRANCH_SETTINGS.branchPrefix,
|
|
14
14
|
baseBranch: DEFAULT_BRANCH_SETTINGS.baseBranch,
|
|
15
|
-
releaseBranch: DEFAULT_BRANCH_SETTINGS.releaseBranch,
|
|
16
15
|
releaseTargetBranch: DEFAULT_BRANCH_SETTINGS.releaseTargetBranch,
|
|
17
16
|
integrationBranchPrefix: DEFAULT_BRANCH_SETTINGS.integrationBranchPrefix,
|
|
18
17
|
integrationBranchTemplate: DEFAULT_BRANCH_SETTINGS.integrationBranchTemplate,
|
|
@@ -36,8 +35,7 @@ This folder contains configuration for the Idea1 CLI.
|
|
|
36
35
|
| Property | Description | Default |
|
|
37
36
|
|----------|-------------|---------|
|
|
38
37
|
| \`branchPrefix\` | Prefix for new branches | \`working/agent\` |
|
|
39
|
-
| \`baseBranch\` | Branch new branches are cut from,
|
|
40
|
-
| \`releaseBranch\` | Branch a release is cut from | \`working/release\` |
|
|
38
|
+
| \`baseBranch\` | Branch new branches are cut from, the target of their PRs, and the branch a release is cut from | \`working/release\` |
|
|
41
39
|
| \`releaseTargetBranch\` | Branch a release merges into | \`main\` |
|
|
42
40
|
| \`integrationBranchPrefix\` | Prefix for integration branches | \`working/integration\` |
|
|
43
41
|
| \`integrationBranchTemplate\` | Integration branch name template | \`{prefix}/{name}-main\` |
|
|
@@ -52,9 +50,7 @@ Hooks are shell scripts that run at specific points in the workflow. All hooks a
|
|
|
52
50
|
| Hook | When it runs |
|
|
53
51
|
|------|--------------|
|
|
54
52
|
| \`setup-worktree\` | After creating a new git worktree |
|
|
55
|
-
| \`pre-release\` | During \`idea1 release\`, before the release PR is opened - for release-time automation such as version bumps. The PR, its check gate and its merge belong to the CLI |
|
|
56
53
|
|
|
57
|
-
**Simple hook:**
|
|
58
54
|
\`\`\`json
|
|
59
55
|
{
|
|
60
56
|
"hooks": {
|
|
@@ -63,26 +59,24 @@ Hooks are shell scripts that run at specific points in the workflow. All hooks a
|
|
|
63
59
|
}
|
|
64
60
|
\`\`\`
|
|
65
61
|
|
|
66
|
-
|
|
62
|
+
### release (optional)
|
|
63
|
+
|
|
64
|
+
The packages \`idea1 release\` can version. Before the release PR is opened, every versioned
|
|
65
|
+
package whose folder changed since the last release (and whose version has not moved yet) gets
|
|
66
|
+
a version bump: its \`package.json\` version, and the lockfiles above it, are updated and
|
|
67
|
+
committed to the release branch by \`idea1 release\` itself (the Idea1 web app makes the same
|
|
68
|
+
bump). Without this section a release has no version bump step.
|
|
69
|
+
|
|
70
|
+
| Property | Description |
|
|
71
|
+
|----------|-------------|
|
|
72
|
+
| \`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\`) |
|
|
73
|
+
|
|
67
74
|
\`\`\`json
|
|
68
75
|
{
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
|
|
73
|
-
{
|
|
74
|
-
"name": "version-type",
|
|
75
|
-
"type": "select",
|
|
76
|
-
"label": "Select version bump type",
|
|
77
|
-
"default": "patch",
|
|
78
|
-
"choices": [
|
|
79
|
-
{ "label": "patch", "value": "patch" },
|
|
80
|
-
{ "label": "minor", "value": "minor" },
|
|
81
|
-
{ "label": "major", "value": "major" }
|
|
82
|
-
]
|
|
83
|
-
}
|
|
84
|
-
]
|
|
85
|
-
}
|
|
76
|
+
"release": {
|
|
77
|
+
"versionedPackages": [
|
|
78
|
+
{ "name": "cli", "label": "CLI package", "path": "packages/cli" }
|
|
79
|
+
]
|
|
86
80
|
}
|
|
87
81
|
}
|
|
88
82
|
\`\`\`
|
|
@@ -92,7 +86,7 @@ Hooks are shell scripts that run at specific points in the workflow. All hooks a
|
|
|
92
86
|
Optional, git-ignored file with the same shape as \`settings.json\`. Anything it
|
|
93
87
|
defines overrides the committed settings for this clone only, so developer-specific
|
|
94
88
|
preferences don't have to be shared with the team. Each section is merged
|
|
95
|
-
individually, so overriding one hook or
|
|
89
|
+
individually, so overriding one hook, default or release setting leaves the rest in place.
|
|
96
90
|
|
|
97
91
|
\`\`\`json
|
|
98
92
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/services/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,cAAc,GAAG,YAAY,CAAC;AACpC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEhC,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,EACN;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,uBAAuB,CAAC,YAAY;QAClD,UAAU,EAAE,uBAAuB,CAAC,UAAU;QAC9C,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/services/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { WorkflowState, PrInfo } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get comprehensive workflow status for the current branch: the item it implements, the item's
|
|
4
|
+
* state and the branch record, from the platform (see `workflow-branch`). A branch this clone has
|
|
5
|
+
* never resolved as an item's is reported as unmanaged without a platform read, so the interactive
|
|
6
|
+
* header is instant on ordinary branches.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getWorkflowStatus(options?: {
|
|
9
|
+
includePrInfo?: boolean;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
branch: string;
|
|
12
|
+
baseBranch: string | null;
|
|
13
|
+
projectItemUrl: string | null;
|
|
14
|
+
workflowState: WorkflowState | null;
|
|
15
|
+
prInfo: PrInfo | null;
|
|
16
|
+
}>;
|
|
17
|
+
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/services/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAM/D;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC,CA4BD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as git from './git.js';
|
|
2
|
+
import * as github from './github.js';
|
|
3
|
+
import * as workflowBranch from './workflow-branch.js';
|
|
4
|
+
import { normalizeWorkflowState } from '../lib/workflow-states.js';
|
|
5
|
+
/**
|
|
6
|
+
* Get comprehensive workflow status for the current branch: the item it implements, the item's
|
|
7
|
+
* state and the branch record, from the platform (see `workflow-branch`). A branch this clone has
|
|
8
|
+
* never resolved as an item's is reported as unmanaged without a platform read, so the interactive
|
|
9
|
+
* header is instant on ordinary branches.
|
|
10
|
+
*/
|
|
11
|
+
export async function getWorkflowStatus(options) {
|
|
12
|
+
let branch = '';
|
|
13
|
+
try {
|
|
14
|
+
branch = await git.getCurrentBranch();
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
// Not in a repository
|
|
18
|
+
}
|
|
19
|
+
const context = branch && branch !== 'HEAD' && await workflowBranch.getRememberedProjectItemUrl(branch)
|
|
20
|
+
? await workflowBranch.getBranchContext(branch).catch(() => null)
|
|
21
|
+
: null;
|
|
22
|
+
let prInfo = null;
|
|
23
|
+
if (options?.includePrInfo !== false && branch) {
|
|
24
|
+
try {
|
|
25
|
+
prInfo = await github.getPrInfo(branch);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Ignore error, prInfo will be null
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
branch,
|
|
33
|
+
baseBranch: context?.branch?.baseBranch ?? null,
|
|
34
|
+
projectItemUrl: context?.projectItem.url ?? null,
|
|
35
|
+
workflowState: normalizeWorkflowState(context?.projectItem.workflowStatus),
|
|
36
|
+
prInfo
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/services/workflow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAqC;IAO3E,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC;QACrG,CAAC,CAAC,MAAM,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACjE,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,OAAO,EAAE,aAAa,KAAK,KAAK,IAAI,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI;QAC/C,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,IAAI,IAAI;QAChD,aAAa,EAAE,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC;QAC1E,MAAM;KACP,CAAC;AACJ,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -62,34 +62,12 @@ export interface Command {
|
|
|
62
62
|
options?: CommandOption[];
|
|
63
63
|
execute: (resolved: Record<string, string>) => Promise<void>;
|
|
64
64
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Hook input definition for collecting user input before running a hook
|
|
67
|
-
*/
|
|
68
|
-
export interface HookInput {
|
|
69
|
-
/** Name used as the CLI argument (e.g., "version-type" becomes --version-type) */
|
|
70
|
-
name: string;
|
|
71
|
-
/** Display label for the prompt */
|
|
72
|
-
label: string;
|
|
73
|
-
/** Input type: 'text' for free-form input, 'select' for menu selection */
|
|
74
|
-
type: 'text' | 'select';
|
|
75
|
-
/** Default value (user can press Enter to accept) */
|
|
76
|
-
default?: string;
|
|
77
|
-
/** Choices for 'select' type */
|
|
78
|
-
choices?: Array<{
|
|
79
|
-
label: string;
|
|
80
|
-
value: string;
|
|
81
|
-
}>;
|
|
82
|
-
}
|
|
83
65
|
/**
|
|
84
66
|
* Hook configuration object
|
|
85
67
|
*/
|
|
86
68
|
export interface HookConfig {
|
|
87
69
|
/** Command to execute (relative to repo root) */
|
|
88
70
|
command: string;
|
|
89
|
-
/** User inputs to collect before running the hook */
|
|
90
|
-
inputs?: HookInput[];
|
|
91
|
-
/** Working directory for the hook (relative to repo root, defaults to repo root) */
|
|
92
|
-
cwd?: string;
|
|
93
71
|
}
|
|
94
72
|
/**
|
|
95
73
|
* A hook can be either a simple string (command) or a full config object
|
|
@@ -102,13 +80,23 @@ export type PromptTemplateSetting = string | {
|
|
|
102
80
|
/** Path of the template file, relative to the repo root */
|
|
103
81
|
templateFile: string;
|
|
104
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* A package whose version a release bumps when its folder changed since the last release.
|
|
85
|
+
*/
|
|
86
|
+
export interface VersionedPackage {
|
|
87
|
+
/** Name `idea1 release --bumps` and the web release view know the package by, e.g. `cli`. */
|
|
88
|
+
name: string;
|
|
89
|
+
/** What prompts call the package, e.g. `idea1 CLI`. */
|
|
90
|
+
label: string;
|
|
91
|
+
/** The package's folder, relative to the repo root; it holds the package's package.json. */
|
|
92
|
+
path: string;
|
|
93
|
+
}
|
|
105
94
|
/**
|
|
106
95
|
* Idea1 settings from .idea1/settings.json, overlaid with .idea1/settings.local.json
|
|
107
96
|
*/
|
|
108
97
|
export interface Idea1Settings {
|
|
109
98
|
hooks?: {
|
|
110
99
|
'setup-worktree'?: Hook;
|
|
111
|
-
'pre-release'?: Hook;
|
|
112
100
|
};
|
|
113
101
|
prompts?: {
|
|
114
102
|
/** The prompt an Agent Implementation session starts with. */
|
|
@@ -118,7 +106,6 @@ export interface Idea1Settings {
|
|
|
118
106
|
branchPrefix?: string;
|
|
119
107
|
baseBranch?: string;
|
|
120
108
|
testCommand?: string;
|
|
121
|
-
releaseBranch?: string;
|
|
122
109
|
releaseTargetBranch?: string;
|
|
123
110
|
integrationBranchPrefix?: string;
|
|
124
111
|
integrationBranchTemplate?: string;
|
|
@@ -130,6 +117,13 @@ export interface Idea1Settings {
|
|
|
130
117
|
*/
|
|
131
118
|
removeWorktreeAtState?: WorkflowState;
|
|
132
119
|
};
|
|
120
|
+
release?: {
|
|
121
|
+
/**
|
|
122
|
+
* The packages a release can bump: repository folders holding a `package.json`. A release
|
|
123
|
+
* bumps those whose folder changed since the last release, before the release PR is opened.
|
|
124
|
+
*/
|
|
125
|
+
versionedPackages?: VersionedPackage[];
|
|
126
|
+
};
|
|
133
127
|
}
|
|
134
128
|
/**
|
|
135
129
|
* Valid Claude permission modes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACvC,sGAAsG;IACtG,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC;IAC1D;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sKAAsK;IACtK,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM,CAAC;IAC3D;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAEA,yGAAyG;AACzG,eAAO,MAAM,OAAO,EAAE,MAAwH,CAAC"}
|
package/dist/version.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
/** The CLI's version: the `version` in its `package.json`, which sits beside both `src/` and `dist/`. */
|
|
3
|
+
export const VERSION = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf-8')).version;
|
|
3
4
|
//# sourceMappingURL=version.js.map
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,yGAAyG;AACzG,MAAM,CAAC,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAyB,CAAC,OAAO,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PrInfo } from '../../types/index.js';
|
|
1
|
+
import type { CommandOption, PrInfo } from '../../types/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* Stage 1 of change management as it applies to a branch and its PR
|
|
4
4
|
* (change-management-policy.md clause 2): the PR gets its assignee - the approver of record -
|
|
@@ -28,10 +28,17 @@ export interface ReadyForApprovalInput {
|
|
|
28
28
|
* to be created gets the approval chain of what the branch carries as its body.
|
|
29
29
|
*/
|
|
30
30
|
export declare function ensurePrReadyForApproval(input: ReadyForApprovalInput): Promise<PrInfo>;
|
|
31
|
+
/**
|
|
32
|
+
* Merge without being asked to confirm, for an approver who has already decided - a scripted run,
|
|
33
|
+
* say. The merge still waits for the required checks.
|
|
34
|
+
*/
|
|
35
|
+
export declare const mergeConfirmationOption: CommandOption;
|
|
31
36
|
export interface MergeAsApproverInput {
|
|
32
37
|
branchName: string;
|
|
33
38
|
baseBranch: string;
|
|
34
39
|
prNumber: number;
|
|
40
|
+
/** The approver already said to merge (`--yes`), so the merge is not confirmed again. */
|
|
41
|
+
confirmed: boolean;
|
|
35
42
|
}
|
|
36
43
|
/**
|
|
37
44
|
* The stage-1 approval: the assignee merges the PR once the required checks pass. There is no
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-flow.d.ts","sourceRoot":"","sources":["../../../src/workflow/engine/approval-flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"approval-flow.d.ts","sourceRoot":"","sources":["../../../src/workflow/engine/approval-flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAQlE;;;;;;;GAOG;AAEH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgC5F;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAKrC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BhF;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCxF"}
|
|
@@ -3,7 +3,7 @@ import { promptConfirm } from '../../lib/prompt.js';
|
|
|
3
3
|
import * as git from '../../services/git.js';
|
|
4
4
|
import * as github from '../../services/github.js';
|
|
5
5
|
import { removeCurrentWorktree, resolveBaseBranch } from '../../services/worktree.js';
|
|
6
|
-
import { CHANGE_KIND, createGatedPr } from './release-
|
|
6
|
+
import { CHANGE_KIND, createGatedPr } from './release-engine.js';
|
|
7
7
|
/**
|
|
8
8
|
* The PR that carries the change, with its assignee and any requested reviewers set. A PR that has
|
|
9
9
|
* to be created gets the approval chain of what the branch carries as its body.
|
|
@@ -39,6 +39,16 @@ export async function ensurePrReadyForApproval(input) {
|
|
|
39
39
|
logger.hint(`PR: ${prInfo.url}`);
|
|
40
40
|
return prInfo;
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Merge without being asked to confirm, for an approver who has already decided - a scripted run,
|
|
44
|
+
* say. The merge still waits for the required checks.
|
|
45
|
+
*/
|
|
46
|
+
export const mergeConfirmationOption = {
|
|
47
|
+
longName: 'yes',
|
|
48
|
+
shortName: 'y',
|
|
49
|
+
description: 'Merge without asking for confirmation (the merge still waits for the required checks)',
|
|
50
|
+
isFlag: true
|
|
51
|
+
};
|
|
42
52
|
/**
|
|
43
53
|
* The stage-1 approval: the assignee merges the PR once the required checks pass. There is no
|
|
44
54
|
* admin override here (change-management-policy.md clause 3) - a red or unfinished suite stops it,
|
|
@@ -46,9 +56,11 @@ export async function ensurePrReadyForApproval(input) {
|
|
|
46
56
|
*/
|
|
47
57
|
export async function mergeAsApprover(input) {
|
|
48
58
|
const { branchName, baseBranch, prNumber } = input;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
59
|
+
if (!input.confirmed) {
|
|
60
|
+
const confirmMerge = await promptConfirm(`Approve PR #${prNumber} by merging it (${branchName} -> ${baseBranch})?`, { default: true });
|
|
61
|
+
if (!confirmMerge) {
|
|
62
|
+
throw new Error('Merge cancelled by user');
|
|
63
|
+
}
|
|
52
64
|
}
|
|
53
65
|
const checks = await github.waitForPrChecks(branchName);
|
|
54
66
|
if (!checks.passed) {
|
|
@@ -70,6 +82,9 @@ export async function cleanUpMergedBranch(input) {
|
|
|
70
82
|
await git.fetchLatest();
|
|
71
83
|
if (!workingPath) {
|
|
72
84
|
await github.deleteRemoteBranch(branchName);
|
|
85
|
+
if (await git.localBranchExists(branchName)) {
|
|
86
|
+
await deleteBranchQuietly(branchName, false);
|
|
87
|
+
}
|
|
73
88
|
return;
|
|
74
89
|
}
|
|
75
90
|
const isWorktree = await git.isInsideWorktree();
|
|
@@ -78,7 +93,7 @@ export async function cleanUpMergedBranch(input) {
|
|
|
78
93
|
// worktree is removed regardless of removeWorktreeAtState.
|
|
79
94
|
if (isWorktree) {
|
|
80
95
|
const worktreePath = await removeCurrentWorktree(mainRepoRoot);
|
|
81
|
-
await deleteBranchQuietly(branchName);
|
|
96
|
+
await deleteBranchQuietly(branchName, true);
|
|
82
97
|
logger.hint(`Worktree removed: ${worktreePath}`);
|
|
83
98
|
logger.hint(`Change to a different folder (e.g. ${mainRepoRoot}) to continue.`);
|
|
84
99
|
return;
|
|
@@ -94,14 +109,14 @@ export async function cleanUpMergedBranch(input) {
|
|
|
94
109
|
else {
|
|
95
110
|
await git.checkoutAndPullBranch(baseBranch);
|
|
96
111
|
}
|
|
97
|
-
await deleteBranchQuietly(branchName);
|
|
112
|
+
await deleteBranchQuietly(branchName, true);
|
|
98
113
|
if (baseWorktreePath) {
|
|
99
114
|
logger.hint(`Base branch is in worktree at: ${baseWorktreePath}`);
|
|
100
115
|
}
|
|
101
116
|
}
|
|
102
|
-
async function deleteBranchQuietly(branchName) {
|
|
117
|
+
async function deleteBranchQuietly(branchName, deleteRemote) {
|
|
103
118
|
try {
|
|
104
|
-
await git.deleteBranch(branchName,
|
|
119
|
+
await git.deleteBranch(branchName, deleteRemote);
|
|
105
120
|
}
|
|
106
121
|
catch {
|
|
107
122
|
// The remote branch may already have been deleted automatically after the merge
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-flow.js","sourceRoot":"","sources":["../../../src/workflow/engine/approval-flow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"approval-flow.js","sourceRoot":"","sources":["../../../src/workflow/engine/approval-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ import { isWorkMerged, requireLiveContext, requireWorkingPath } from '../workflo
|
|
|
16
16
|
*/
|
|
17
17
|
export const agentImplementationHandler = {
|
|
18
18
|
state: WorkflowStates.AgentImplementation,
|
|
19
|
-
options: [isolationModeOption, ...claudeSessionOptions,
|
|
19
|
+
options: [isolationModeOption, claudeEntryPointOption, ...claudeSessionOptions, ...claudeEntryPointPromptOptions],
|
|
20
20
|
async prepare(transition) {
|
|
21
21
|
if (isWorkMerged(transition)) {
|
|
22
22
|
logger.dim('The item\'s work is already merged; nothing to do.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-implementation.js","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/agent-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC1J,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AACnH,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAA6B,MAAM,uBAAuB,CAAC;AAExH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAyB;IAC9D,KAAK,EAAE,cAAc,CAAC,mBAAmB;IACzC,OAAO,EAAE,CAAC,mBAAmB,EAAE,GAAG,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-implementation.js","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/agent-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC1J,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AACnH,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAA6B,MAAM,uBAAuB,CAAC;AAExH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAyB;IAC9D,KAAK,EAAE,cAAc,CAAC,mBAAmB;IACzC,OAAO,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,GAAG,oBAAoB,EAAE,GAAG,6BAA6B,CAAC;IAEjH,KAAK,CAAC,OAAO,CAAC,UAAU;QACtB,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC1F,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;QAErC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAAU;QACvB,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,gCAAgC,CAAC,CAAC;QACrF,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,GAAG,2BAA2B,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClI,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAClD,sBAAsB,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,EACvE,gBAAgB,CACjB,CAAC;QAEF,MAAM,QAAQ,CAAC,qBAAqB,CAAC,WAAW,EAAE;YAChD,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,MAAM;YACN,cAAc;YACd,KAAK;YACL,MAAM;YACN,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve-pr.d.ts","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/approve-pr.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoD,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEpH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"approve-pr.d.ts","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/approve-pr.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoD,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEpH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,oBAuD9B,CAAC"}
|
|
@@ -3,8 +3,8 @@ import * as git from '../../../services/git.js';
|
|
|
3
3
|
import * as github from '../../../services/github.js';
|
|
4
4
|
import { WorkflowBranchState } from '../../data/workflow-context.js';
|
|
5
5
|
import { WorkflowStates } from '../../data/workflow-states.js';
|
|
6
|
-
import { cleanUpMergedBranch, mergeAsApprover } from '../approval-flow.js';
|
|
7
|
-
import { confirmApproverIdentity } from '../release-
|
|
6
|
+
import { cleanUpMergedBranch, mergeAsApprover, mergeConfirmationOption } from '../approval-flow.js';
|
|
7
|
+
import { confirmApproverIdentity } from '../release-engine.js';
|
|
8
8
|
import { isWorkMerged, requireContext, requireLiveContext } from '../workflow-engine.js';
|
|
9
9
|
/**
|
|
10
10
|
* Entering "Approved and Merged": merge the PR. The merge IS the approval - it is performed by
|
|
@@ -20,6 +20,7 @@ import { isWorkMerged, requireContext, requireLiveContext } from '../workflow-en
|
|
|
20
20
|
*/
|
|
21
21
|
export const approvePrHandler = {
|
|
22
22
|
state: WorkflowStates.ApprovedAndMerged,
|
|
23
|
+
options: [mergeConfirmationOption],
|
|
23
24
|
async prepare(transition) {
|
|
24
25
|
// The pull request was merged on an earlier pass through this state.
|
|
25
26
|
if (isWorkMerged(transition)) {
|
|
@@ -43,7 +44,12 @@ export const approvePrHandler = {
|
|
|
43
44
|
return;
|
|
44
45
|
}
|
|
45
46
|
await confirmApproverIdentity(context.branchName);
|
|
46
|
-
await mergeAsApprover({
|
|
47
|
+
await mergeAsApprover({
|
|
48
|
+
branchName: context.branchName,
|
|
49
|
+
baseBranch: context.baseBranch,
|
|
50
|
+
prNumber: prInfo.number,
|
|
51
|
+
confirmed: transition.options[mergeConfirmationOption.longName] === 'true'
|
|
52
|
+
});
|
|
47
53
|
context.branchState = WorkflowBranchState.Merged;
|
|
48
54
|
},
|
|
49
55
|
async complete(transition) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve-pr.js","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/approve-pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"approve-pr.js","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/approve-pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import type { CommandOption } from '../../../types/index.js';
|
|
1
2
|
import { type WorkflowStateHandler } from '../workflow-engine.js';
|
|
3
|
+
/**
|
|
4
|
+
* Reviewers requested on the PR. Optional: the assignee is the approver.
|
|
5
|
+
*/
|
|
6
|
+
export declare const reviewersOption: CommandOption;
|
|
2
7
|
/**
|
|
3
8
|
* Entering "Needs Approval for Release": the PR is complete and gets its assignee - the person
|
|
4
9
|
* who will approve it by merging it with `idea1 approve-pr`. The assignee is required: without
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ready-for-approval.d.ts","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/ready-for-approval.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ready-for-approval.d.ts","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/ready-for-approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAM7D,OAAO,EAAoC,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEpG;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAM7B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,oBAgDrC,CAAC"}
|
|
@@ -4,6 +4,16 @@ import { removeWorktreeForWorkflowState } from '../../../services/worktree.js';
|
|
|
4
4
|
import { WorkflowStates } from '../../data/workflow-states.js';
|
|
5
5
|
import { ensurePrReadyForApproval } from '../approval-flow.js';
|
|
6
6
|
import { isWorkMerged, requireLiveContext } from '../workflow-engine.js';
|
|
7
|
+
/**
|
|
8
|
+
* Reviewers requested on the PR. Optional: the assignee is the approver.
|
|
9
|
+
*/
|
|
10
|
+
export const reviewersOption = {
|
|
11
|
+
longName: 'reviewers',
|
|
12
|
+
shortName: 'r',
|
|
13
|
+
description: 'Who to request a review from - optional, the assignee is the approver (select any number)',
|
|
14
|
+
choices: 'github-members',
|
|
15
|
+
multiSelect: true
|
|
16
|
+
};
|
|
7
17
|
/**
|
|
8
18
|
* Entering "Needs Approval for Release": the PR is complete and gets its assignee - the person
|
|
9
19
|
* who will approve it by merging it with `idea1 approve-pr`. The assignee is required: without
|
|
@@ -23,13 +33,7 @@ export const readyForApprovalHandler = {
|
|
|
23
33
|
choices: 'github-members',
|
|
24
34
|
validate: value => value.trim() ? undefined : 'An assignee is required - the assignee is the approver of record'
|
|
25
35
|
},
|
|
26
|
-
|
|
27
|
-
longName: 'reviewers',
|
|
28
|
-
shortName: 'r',
|
|
29
|
-
description: 'Who to request a review from - optional, the assignee is the approver (select any number)',
|
|
30
|
-
choices: 'github-members',
|
|
31
|
-
multiSelect: true
|
|
32
|
-
}
|
|
36
|
+
reviewersOption
|
|
33
37
|
],
|
|
34
38
|
async prepare(transition) {
|
|
35
39
|
if (isWorkMerged(transition)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ready-for-approval.js","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/ready-for-approval.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ready-for-approval.js","sourceRoot":"","sources":["../../../../src/workflow/engine/handlers/ready-for-approval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAA6B,MAAM,uBAAuB,CAAC;AAEpG;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,GAAG;IACd,WAAW,EAAE,2FAA2F;IACxG,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,KAAK,EAAE,cAAc,CAAC,uBAAuB;IAC7C,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,+FAA+F;YAC5G,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kEAAkE;SACjH;QACD,eAAe;KAChB;IAED,KAAK,CAAC,OAAO,CAAC,UAAU;QACtB,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACnC,CAAC;QAED,oFAAoF;QACpF,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;YAC5C,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;YACxC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;YAChD,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAAU;QACvB,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,8BAA8B,CAAC,cAAc,CAAC,uBAAuB,EAAE,UAAU,EAAE,UAAU,CAAC,cAAc,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,CAAC;QAEzJ,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAC;IACrH,CAAC;CACF,CAAC"}
|