@astroanywhere/agent 0.3.3 → 0.3.5
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/dist/lib/git-pr.d.ts +59 -10
- package/dist/lib/git-pr.d.ts.map +1 -1
- package/dist/lib/git-pr.js +140 -30
- package/dist/lib/git-pr.js.map +1 -1
- package/dist/lib/local-merge.d.ts +3 -1
- package/dist/lib/local-merge.d.ts.map +1 -1
- package/dist/lib/local-merge.js +29 -7
- package/dist/lib/local-merge.js.map +1 -1
- package/dist/lib/task-executor.d.ts.map +1 -1
- package/dist/lib/task-executor.js +61 -23
- package/dist/lib/task-executor.js.map +1 -1
- package/dist/lib/worktree.d.ts.map +1 -1
- package/dist/lib/worktree.js +23 -1
- package/dist/lib/worktree.js.map +1 -1
- package/dist/providers/codex-adapter.d.ts.map +1 -1
- package/dist/providers/codex-adapter.js +4 -2
- package/dist/providers/codex-adapter.js.map +1 -1
- package/dist/providers/openclaw-adapter.d.ts.map +1 -1
- package/dist/providers/openclaw-adapter.js +4 -2
- package/dist/providers/openclaw-adapter.js.map +1 -1
- package/dist/providers/opencode-adapter.d.ts.map +1 -1
- package/dist/providers/opencode-adapter.js +4 -3
- package/dist/providers/opencode-adapter.js.map +1 -1
- package/dist/providers/pi-adapter.js +2 -2
- package/dist/providers/pi-adapter.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/git-pr.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Git PR utilities for creating pull requests after task execution
|
|
2
|
+
* Git PR utilities for creating pull requests after task execution.
|
|
3
|
+
*
|
|
4
|
+
* GitHub workflow: task branch → PR → project branch (auto-merge).
|
|
5
|
+
* Task branches NEVER create PRs directly to the base branch (main).
|
|
6
|
+
* The only PR to main comes from the "Push to GitHub" task node.
|
|
7
|
+
*
|
|
8
|
+
* When the worktree is gone (agent cleaned it up during execution),
|
|
9
|
+
* git operations fall back to gitRoot (branch refs live in shared store),
|
|
10
|
+
* and gh commands use explicit --repo OWNER/REPO (no local context needed).
|
|
3
11
|
*/
|
|
4
12
|
export interface PRResult {
|
|
5
13
|
branchName: string;
|
|
@@ -20,24 +28,44 @@ export interface PRResult {
|
|
|
20
28
|
*/
|
|
21
29
|
export declare function getDefaultBranch(repoDir: string): Promise<string>;
|
|
22
30
|
/**
|
|
23
|
-
* Check if
|
|
31
|
+
* Check if a branch has commits ahead of the base branch.
|
|
32
|
+
*
|
|
33
|
+
* When called from a worktree, HEAD resolves to the task branch.
|
|
34
|
+
* When called from the git root (worktree cleaned up), pass branchName
|
|
35
|
+
* explicitly so we compare the right ref instead of HEAD.
|
|
24
36
|
*/
|
|
25
|
-
export declare function hasBranchCommits(
|
|
37
|
+
export declare function hasBranchCommits(repoDir: string, baseBranch: string, branchName?: string): Promise<boolean>;
|
|
26
38
|
/**
|
|
27
39
|
* Push the branch to origin
|
|
28
40
|
*/
|
|
29
|
-
export declare function pushBranch(
|
|
41
|
+
export declare function pushBranch(repoDir: string, branchName: string): Promise<{
|
|
30
42
|
ok: boolean;
|
|
31
43
|
error?: string;
|
|
32
44
|
}>;
|
|
33
45
|
/**
|
|
34
|
-
*
|
|
46
|
+
* Extract the GitHub repo slug (OWNER/REPO) from a git remote URL.
|
|
47
|
+
* Supports both SSH and HTTPS formats:
|
|
48
|
+
* git@github.com:owner/repo.git → owner/repo
|
|
49
|
+
* https://github.com/owner/repo.git → owner/repo
|
|
35
50
|
*/
|
|
36
|
-
export declare function
|
|
51
|
+
export declare function parseRepoSlug(remoteUrl: string): string | null;
|
|
52
|
+
/**
|
|
53
|
+
* Get the GitHub repo slug (OWNER/REPO) from a git directory's origin remote.
|
|
54
|
+
*/
|
|
55
|
+
export declare function getRepoSlug(repoDir: string): Promise<string | null>;
|
|
56
|
+
/**
|
|
57
|
+
* Create a pull request using the `gh` CLI.
|
|
58
|
+
*
|
|
59
|
+
* Uses --repo OWNER/REPO when provided so the command doesn't depend on
|
|
60
|
+
* the local git directory being valid (worktree may have been cleaned up).
|
|
61
|
+
*/
|
|
62
|
+
export declare function createPullRequest(cwd: string, options: {
|
|
37
63
|
branchName: string;
|
|
38
64
|
baseBranch: string;
|
|
39
65
|
title: string;
|
|
40
66
|
body: string;
|
|
67
|
+
/** Explicit GitHub repo slug (OWNER/REPO) — avoids local git context resolution */
|
|
68
|
+
repoSlug?: string;
|
|
41
69
|
}): Promise<{
|
|
42
70
|
prUrl: string;
|
|
43
71
|
prNumber: number;
|
|
@@ -45,10 +73,15 @@ export declare function createPullRequest(worktreePath: string, options: {
|
|
|
45
73
|
/**
|
|
46
74
|
* Merge a pull request using the `gh` CLI.
|
|
47
75
|
* Used to auto-merge per-task PRs into the project branch.
|
|
76
|
+
*
|
|
77
|
+
* Uses --repo OWNER/REPO when provided so the command doesn't depend on
|
|
78
|
+
* the local git directory being valid.
|
|
48
79
|
*/
|
|
49
|
-
export declare function mergePullRequest(
|
|
80
|
+
export declare function mergePullRequest(cwd: string, prNumber: number, options?: {
|
|
50
81
|
method?: 'squash' | 'merge' | 'rebase';
|
|
51
82
|
deleteBranch?: boolean;
|
|
83
|
+
/** Explicit GitHub repo slug (OWNER/REPO) */
|
|
84
|
+
repoSlug?: string;
|
|
52
85
|
}): Promise<{
|
|
53
86
|
ok: boolean;
|
|
54
87
|
error?: string;
|
|
@@ -76,7 +109,21 @@ export declare function getGitRoot(dir: string): Promise<string | null>;
|
|
|
76
109
|
*/
|
|
77
110
|
export declare function autoCommitChanges(worktreePath: string, taskTitle: string): Promise<boolean>;
|
|
78
111
|
/**
|
|
79
|
-
* Full PR
|
|
112
|
+
* Full PR delivery following the accumulative project branch workflow:
|
|
113
|
+
*
|
|
114
|
+
* task branch → push → PR → auto-merge → project branch
|
|
115
|
+
*
|
|
116
|
+
* When the worktree has been cleaned up (agent removed it during execution):
|
|
117
|
+
* - git operations (push, rev-list) use gitRoot — the task branch lives in
|
|
118
|
+
* the shared git object store, not the worktree directory
|
|
119
|
+
* - gh operations (pr create, pr merge) use --repo OWNER/REPO — explicitly
|
|
120
|
+
* targets the GitHub repo without depending on local filesystem state
|
|
121
|
+
* - auto-commit is skipped (nothing to stage if the worktree is gone)
|
|
122
|
+
*
|
|
123
|
+
* baseBranch MUST be provided by the caller. It is the project branch
|
|
124
|
+
* (e.g., astro/7b19a9), never auto-detected. Task branches must never
|
|
125
|
+
* create PRs directly to the base branch (main) — that's exclusively
|
|
126
|
+
* the "Push to GitHub" node's responsibility.
|
|
80
127
|
*/
|
|
81
128
|
export declare function pushAndCreatePR(worktreePath: string, options: {
|
|
82
129
|
branchName: string;
|
|
@@ -88,13 +135,15 @@ export declare function pushAndCreatePR(worktreePath: string, options: {
|
|
|
88
135
|
autoCommit?: boolean;
|
|
89
136
|
/** Override the default PR body */
|
|
90
137
|
body?: string;
|
|
91
|
-
/** Target branch for PR base
|
|
138
|
+
/** Target branch for PR base (project branch). Required for PR creation. */
|
|
92
139
|
baseBranch?: string;
|
|
93
|
-
/** If true, auto-merge the PR after creation (squash merge into
|
|
140
|
+
/** If true, auto-merge the PR after creation (squash merge into project branch) */
|
|
94
141
|
autoMerge?: boolean;
|
|
95
142
|
/** Merge method for auto-merge (default: 'squash') */
|
|
96
143
|
mergeMethod?: 'squash' | 'merge' | 'rebase';
|
|
97
144
|
/** Git SHA of the base branch before this task — passed through to PRResult */
|
|
98
145
|
commitBeforeSha?: string;
|
|
146
|
+
/** Git root directory — used when the worktree has been cleaned up */
|
|
147
|
+
gitRoot?: string;
|
|
99
148
|
}): Promise<PRResult>;
|
|
100
149
|
//# sourceMappingURL=git-pr.d.ts.map
|
package/dist/lib/git-pr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-pr.d.ts","sourceRoot":"","sources":["../../src/lib/git-pr.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"git-pr.d.ts","sourceRoot":"","sources":["../../src/lib/git-pr.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/git-pr.js
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Git PR utilities for creating pull requests after task execution
|
|
2
|
+
* Git PR utilities for creating pull requests after task execution.
|
|
3
|
+
*
|
|
4
|
+
* GitHub workflow: task branch → PR → project branch (auto-merge).
|
|
5
|
+
* Task branches NEVER create PRs directly to the base branch (main).
|
|
6
|
+
* The only PR to main comes from the "Push to GitHub" task node.
|
|
7
|
+
*
|
|
8
|
+
* When the worktree is gone (agent cleaned it up during execution),
|
|
9
|
+
* git operations fall back to gitRoot (branch refs live in shared store),
|
|
10
|
+
* and gh commands use explicit --repo OWNER/REPO (no local context needed).
|
|
3
11
|
*/
|
|
4
12
|
import { execFile } from 'node:child_process';
|
|
5
13
|
import { promisify } from 'node:util';
|
|
@@ -41,11 +49,16 @@ export async function getDefaultBranch(repoDir) {
|
|
|
41
49
|
return 'main';
|
|
42
50
|
}
|
|
43
51
|
/**
|
|
44
|
-
* Check if
|
|
52
|
+
* Check if a branch has commits ahead of the base branch.
|
|
53
|
+
*
|
|
54
|
+
* When called from a worktree, HEAD resolves to the task branch.
|
|
55
|
+
* When called from the git root (worktree cleaned up), pass branchName
|
|
56
|
+
* explicitly so we compare the right ref instead of HEAD.
|
|
45
57
|
*/
|
|
46
|
-
export async function hasBranchCommits(
|
|
58
|
+
export async function hasBranchCommits(repoDir, baseBranch, branchName) {
|
|
47
59
|
try {
|
|
48
|
-
const
|
|
60
|
+
const headRef = branchName ?? 'HEAD';
|
|
61
|
+
const { stdout } = await execFileAsync('git', ['-C', repoDir, 'rev-list', '--count', `origin/${baseBranch}..${headRef}`], { env: withGitEnv(), timeout: 10_000 });
|
|
49
62
|
return parseInt(stdout.trim(), 10) > 0;
|
|
50
63
|
}
|
|
51
64
|
catch {
|
|
@@ -55,17 +68,17 @@ export async function hasBranchCommits(worktreePath, baseBranch) {
|
|
|
55
68
|
/**
|
|
56
69
|
* Push the branch to origin
|
|
57
70
|
*/
|
|
58
|
-
export async function pushBranch(
|
|
71
|
+
export async function pushBranch(repoDir, branchName) {
|
|
59
72
|
// Log remote URL for debugging push target
|
|
60
73
|
try {
|
|
61
|
-
const { stdout: remoteUrl } = await execFileAsync('git', ['-C',
|
|
74
|
+
const { stdout: remoteUrl } = await execFileAsync('git', ['-C', repoDir, 'remote', 'get-url', 'origin'], { env: withGitEnv(), timeout: 5_000 });
|
|
62
75
|
console.log(`[git-pr] Pushing branch ${branchName} to origin (${remoteUrl.trim()})`);
|
|
63
76
|
}
|
|
64
77
|
catch {
|
|
65
|
-
console.warn(`[git-pr] Could not resolve origin URL for ${
|
|
78
|
+
console.warn(`[git-pr] Could not resolve origin URL for ${repoDir}`);
|
|
66
79
|
}
|
|
67
80
|
try {
|
|
68
|
-
const { stdout, stderr } = await execFileAsync('git', ['-C',
|
|
81
|
+
const { stdout, stderr } = await execFileAsync('git', ['-C', repoDir, 'push', '-u', 'origin', branchName], { env: withGitEnv(), timeout: 60_000 });
|
|
69
82
|
if (stderr)
|
|
70
83
|
console.log(`[git-pr] Push stderr: ${stderr.trim()}`);
|
|
71
84
|
if (stdout)
|
|
@@ -80,17 +93,52 @@ export async function pushBranch(worktreePath, branchName) {
|
|
|
80
93
|
}
|
|
81
94
|
}
|
|
82
95
|
/**
|
|
83
|
-
*
|
|
96
|
+
* Extract the GitHub repo slug (OWNER/REPO) from a git remote URL.
|
|
97
|
+
* Supports both SSH and HTTPS formats:
|
|
98
|
+
* git@github.com:owner/repo.git → owner/repo
|
|
99
|
+
* https://github.com/owner/repo.git → owner/repo
|
|
84
100
|
*/
|
|
85
|
-
export
|
|
101
|
+
export function parseRepoSlug(remoteUrl) {
|
|
102
|
+
// Handles both SSH (git@github.com:owner/repo.git)
|
|
103
|
+
// and HTTPS (https://github.com/owner/repo.git) formats.
|
|
104
|
+
// Note: assumes OWNER/REPO (two segments). GitLab subgroups
|
|
105
|
+
// (group/subgroup/repo) will extract only the last two segments.
|
|
106
|
+
const match = remoteUrl.match(/[:/]([^/]+\/[^/]+?)(?:\.git)?$/);
|
|
107
|
+
if (match)
|
|
108
|
+
return match[1];
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the GitHub repo slug (OWNER/REPO) from a git directory's origin remote.
|
|
113
|
+
*/
|
|
114
|
+
export async function getRepoSlug(repoDir) {
|
|
86
115
|
try {
|
|
87
|
-
const { stdout } = await execFileAsync('
|
|
116
|
+
const { stdout } = await execFileAsync('git', ['-C', repoDir, 'remote', 'get-url', 'origin'], { env: withGitEnv(), timeout: 5_000 });
|
|
117
|
+
return parseRepoSlug(stdout.trim());
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create a pull request using the `gh` CLI.
|
|
125
|
+
*
|
|
126
|
+
* Uses --repo OWNER/REPO when provided so the command doesn't depend on
|
|
127
|
+
* the local git directory being valid (worktree may have been cleaned up).
|
|
128
|
+
*/
|
|
129
|
+
export async function createPullRequest(cwd, options) {
|
|
130
|
+
try {
|
|
131
|
+
const args = [
|
|
88
132
|
'pr', 'create',
|
|
89
133
|
'--base', options.baseBranch,
|
|
90
134
|
'--head', options.branchName,
|
|
91
135
|
'--title', options.title,
|
|
92
136
|
'--body', options.body,
|
|
93
|
-
]
|
|
137
|
+
];
|
|
138
|
+
if (options.repoSlug) {
|
|
139
|
+
args.push('--repo', options.repoSlug);
|
|
140
|
+
}
|
|
141
|
+
const { stdout } = await execFileAsync('gh', args, { cwd, env: withGitEnv(), timeout: 30_000 });
|
|
94
142
|
const prUrl = stdout.trim();
|
|
95
143
|
// Extract PR number from URL: https://github.com/user/repo/pull/123
|
|
96
144
|
const match = prUrl.match(/\/pull\/(\d+)/);
|
|
@@ -106,8 +154,11 @@ export async function createPullRequest(worktreePath, options) {
|
|
|
106
154
|
/**
|
|
107
155
|
* Merge a pull request using the `gh` CLI.
|
|
108
156
|
* Used to auto-merge per-task PRs into the project branch.
|
|
157
|
+
*
|
|
158
|
+
* Uses --repo OWNER/REPO when provided so the command doesn't depend on
|
|
159
|
+
* the local git directory being valid.
|
|
109
160
|
*/
|
|
110
|
-
export async function mergePullRequest(
|
|
161
|
+
export async function mergePullRequest(cwd, prNumber, options) {
|
|
111
162
|
const method = options?.method ?? 'squash';
|
|
112
163
|
const args = [
|
|
113
164
|
'pr', 'merge', String(prNumber),
|
|
@@ -116,9 +167,12 @@ export async function mergePullRequest(worktreePath, prNumber, options) {
|
|
|
116
167
|
if (options?.deleteBranch !== false) {
|
|
117
168
|
args.push('--delete-branch');
|
|
118
169
|
}
|
|
170
|
+
if (options?.repoSlug) {
|
|
171
|
+
args.push('--repo', options.repoSlug);
|
|
172
|
+
}
|
|
119
173
|
try {
|
|
120
174
|
await execFileAsync('gh', args, {
|
|
121
|
-
cwd
|
|
175
|
+
cwd,
|
|
122
176
|
env: withGitEnv(),
|
|
123
177
|
timeout: 60_000,
|
|
124
178
|
});
|
|
@@ -224,45 +278,88 @@ async function readBaseBranchFromConfig(gitRoot) {
|
|
|
224
278
|
return null;
|
|
225
279
|
}
|
|
226
280
|
/**
|
|
227
|
-
* Full PR
|
|
281
|
+
* Full PR delivery following the accumulative project branch workflow:
|
|
282
|
+
*
|
|
283
|
+
* task branch → push → PR → auto-merge → project branch
|
|
284
|
+
*
|
|
285
|
+
* When the worktree has been cleaned up (agent removed it during execution):
|
|
286
|
+
* - git operations (push, rev-list) use gitRoot — the task branch lives in
|
|
287
|
+
* the shared git object store, not the worktree directory
|
|
288
|
+
* - gh operations (pr create, pr merge) use --repo OWNER/REPO — explicitly
|
|
289
|
+
* targets the GitHub repo without depending on local filesystem state
|
|
290
|
+
* - auto-commit is skipped (nothing to stage if the worktree is gone)
|
|
291
|
+
*
|
|
292
|
+
* baseBranch MUST be provided by the caller. It is the project branch
|
|
293
|
+
* (e.g., astro/7b19a9), never auto-detected. Task branches must never
|
|
294
|
+
* create PRs directly to the base branch (main) — that's exclusively
|
|
295
|
+
* the "Push to GitHub" node's responsibility.
|
|
228
296
|
*/
|
|
229
297
|
export async function pushAndCreatePR(worktreePath, options) {
|
|
230
298
|
const result = { branchName: options.branchName };
|
|
231
|
-
//
|
|
232
|
-
|
|
299
|
+
// Resolve git context: worktree if it still exists, gitRoot otherwise.
|
|
300
|
+
// The task branch lives in the shared git object store (all worktrees
|
|
301
|
+
// share one .git), so push/rev-list work from gitRoot even when the
|
|
302
|
+
// worktree directory is gone.
|
|
303
|
+
const worktreeGitRoot = await getGitRoot(worktreePath);
|
|
304
|
+
const gitRoot = worktreeGitRoot ?? options.gitRoot ?? null;
|
|
233
305
|
if (!gitRoot) {
|
|
234
|
-
console.warn(`[git-pr] No git root found for ${worktreePath}
|
|
306
|
+
console.warn(`[git-pr] No git root found for ${worktreePath} and no gitRoot provided`);
|
|
235
307
|
result.error = 'Not a git repository';
|
|
236
308
|
return result;
|
|
237
309
|
}
|
|
310
|
+
const worktreeAlive = !!worktreeGitRoot;
|
|
311
|
+
// For git commands: use worktree when available (HEAD = task branch),
|
|
312
|
+
// fall back to gitRoot (need explicit branch name for rev-list).
|
|
313
|
+
const gitDir = worktreeAlive ? worktreePath : gitRoot;
|
|
314
|
+
if (!worktreeAlive) {
|
|
315
|
+
console.log(`[git-pr] Worktree at ${worktreePath} is gone, using gitRoot: ${gitRoot}`);
|
|
316
|
+
}
|
|
238
317
|
// Check if repo has a remote
|
|
239
318
|
if (!(await hasRemoteOrigin(gitRoot))) {
|
|
240
319
|
console.warn(`[git-pr] No remote origin for ${gitRoot}, skipping PR`);
|
|
241
320
|
result.error = 'No remote origin configured — cannot push';
|
|
242
321
|
return result;
|
|
243
322
|
}
|
|
244
|
-
//
|
|
323
|
+
// Resolve the repo slug for gh commands (OWNER/REPO from remote URL).
|
|
324
|
+
// This makes gh pr create/merge independent of the local filesystem.
|
|
325
|
+
// Only required when we'll actually run gh commands (not skipPR mode).
|
|
326
|
+
const repoSlug = await getRepoSlug(gitRoot);
|
|
327
|
+
if (!repoSlug && !worktreeAlive && !options.skipPR) {
|
|
328
|
+
console.warn(`[git-pr] Cannot resolve repo slug from ${gitRoot} and worktree is gone`);
|
|
329
|
+
result.error = 'Cannot resolve GitHub repo — worktree gone and no repo slug';
|
|
330
|
+
return result;
|
|
331
|
+
}
|
|
332
|
+
// baseBranch: caller-provided (project branch) > config > auto-detect.
|
|
333
|
+
// For the accumulative workflow, the caller should always provide the
|
|
334
|
+
// project branch. Auto-detection is only a fallback for edge cases
|
|
335
|
+
// (e.g., "Push to GitHub" node targeting the default branch).
|
|
245
336
|
const baseBranch = options.baseBranch ?? await readBaseBranchFromConfig(gitRoot) ?? await getDefaultBranch(gitRoot);
|
|
246
|
-
// Auto-commit
|
|
247
|
-
|
|
337
|
+
// Auto-commit uncommitted changes — only when the worktree still exists.
|
|
338
|
+
// When the worktree is gone, there's nothing to stage (agent cleaned it up).
|
|
339
|
+
if (options.autoCommit !== false && worktreeAlive) {
|
|
248
340
|
await autoCommitChanges(worktreePath, options.taskTitle);
|
|
249
341
|
}
|
|
250
|
-
|
|
251
|
-
|
|
342
|
+
else if (options.autoCommit !== false && !worktreeAlive) {
|
|
343
|
+
console.log(`[git-pr] Skipping auto-commit — worktree at ${worktreePath} no longer exists`);
|
|
344
|
+
}
|
|
345
|
+
// Check if there are commits to push.
|
|
346
|
+
// From gitRoot, HEAD is the main checkout (not the task branch), so we
|
|
347
|
+
// must compare by explicit branch name.
|
|
348
|
+
const hasCommits = await hasBranchCommits(gitDir, baseBranch, worktreeAlive ? undefined : options.branchName);
|
|
252
349
|
if (!hasCommits) {
|
|
253
|
-
console.log(`[git-pr] No commits ahead of ${baseBranch}
|
|
254
|
-
// Not an error — agent made no changes
|
|
350
|
+
console.log(`[git-pr] No commits ahead of ${baseBranch} for ${options.branchName}`);
|
|
255
351
|
return result;
|
|
256
352
|
}
|
|
257
353
|
console.log(`[git-pr] Branch ${options.branchName} has commits ahead of ${baseBranch}`);
|
|
258
|
-
// Push the branch
|
|
259
|
-
|
|
354
|
+
// Push the task branch to origin.
|
|
355
|
+
// Works from gitRoot because the branch ref lives in the shared store.
|
|
356
|
+
const pushResult = await pushBranch(gitDir, options.branchName);
|
|
260
357
|
if (!pushResult.ok) {
|
|
261
358
|
result.error = pushResult.error || 'Failed to push branch';
|
|
262
359
|
return result;
|
|
263
360
|
}
|
|
264
361
|
result.pushed = true;
|
|
265
|
-
// Skip PR creation if requested (push-only mode)
|
|
362
|
+
// Skip PR creation if requested (push-only mode, e.g., "Push to GitHub" node)
|
|
266
363
|
if (options.skipPR) {
|
|
267
364
|
console.log(`[git-pr] skipPR=true, branch pushed (${options.branchName})`);
|
|
268
365
|
return result;
|
|
@@ -277,11 +374,23 @@ export async function pushAndCreatePR(worktreePath, options) {
|
|
|
277
374
|
?? (options.taskDescription
|
|
278
375
|
? `## Task\n\n${options.taskDescription}\n\n---\n*Created by Astro task automation*`
|
|
279
376
|
: '*Created by Astro task automation*');
|
|
280
|
-
|
|
377
|
+
// Create PR: task branch → project branch.
|
|
378
|
+
// Uses --repo when available so gh doesn't depend on local git context.
|
|
379
|
+
// Guard: if repoSlug is null (non-standard remote URL) and the worktree
|
|
380
|
+
// was deleted between the initial check and now, gh will fail with a
|
|
381
|
+
// misleading "not a git repository" error. Re-check and fail clearly.
|
|
382
|
+
if (!repoSlug && !(await getGitRoot(worktreePath))) {
|
|
383
|
+
console.warn(`[git-pr] Worktree gone after push and no repo slug — cannot create PR`);
|
|
384
|
+
result.error = 'Cannot resolve GitHub repo — worktree gone and no repo slug';
|
|
385
|
+
return result;
|
|
386
|
+
}
|
|
387
|
+
console.log(`[git-pr] Creating PR: ${options.branchName} → ${baseBranch}${repoSlug ? ` (repo: ${repoSlug})` : ''}`);
|
|
388
|
+
const pr = await createPullRequest(gitDir, {
|
|
281
389
|
branchName: options.branchName,
|
|
282
390
|
baseBranch,
|
|
283
391
|
title: options.taskTitle,
|
|
284
392
|
body,
|
|
393
|
+
repoSlug: repoSlug ?? undefined,
|
|
285
394
|
});
|
|
286
395
|
if (pr) {
|
|
287
396
|
result.prUrl = pr.prUrl;
|
|
@@ -289,9 +398,10 @@ export async function pushAndCreatePR(worktreePath, options) {
|
|
|
289
398
|
result.commitBeforeSha = options.commitBeforeSha;
|
|
290
399
|
// Auto-merge: squash-merge the per-task PR into the project branch
|
|
291
400
|
if (options.autoMerge && pr.prNumber) {
|
|
292
|
-
const mergeResult = await mergePullRequest(
|
|
401
|
+
const mergeResult = await mergePullRequest(gitDir, pr.prNumber, {
|
|
293
402
|
method: options.mergeMethod ?? 'squash',
|
|
294
403
|
deleteBranch: true,
|
|
404
|
+
repoSlug: repoSlug ?? undefined,
|
|
295
405
|
});
|
|
296
406
|
if (mergeResult.ok) {
|
|
297
407
|
// Capture the project branch SHA after merge
|
package/dist/lib/git-pr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-pr.js","sourceRoot":"","sources":["../../src/lib/git-pr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-pr.js","sourceRoot":"","sources":["../../src/lib/git-pr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,SAAS,UAAU;IACjB,OAAO;QACL,GAAG,OAAO,CAAC,GAAG;QACd,mBAAmB,EAAE,GAAG;KACzB,CAAC;AACJ,CAAC;AAiBD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe;IACpD,yCAAyC;IACzC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,0BAA0B,CAAC,EAC3D,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CACtC,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1B,mCAAmC;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,EACzE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CACtC,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,OAAO,MAAM,CAAC;QACpD,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;YAAE,OAAO,QAAQ,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,UAAkB,EAClB,UAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,IAAI,MAAM,CAAC;QACrC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,UAAU,KAAK,OAAO,EAAE,CAAC,EAC1E,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CACvC,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,UAAkB;IAElB,2CAA2C;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CAC/C,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC9C,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CACtC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,eAAe,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,6CAA6C,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAC5C,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,EACnD,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CACvC,CAAC;QACF,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAA6D,CAAC;QAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,kCAAkC,UAAU,KAAK,WAAW,EAAE,CAAC,CAAC;QAC9E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,WAAW,EAAE,EAAE,CAAC;IACvE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,mDAAmD;IACnD,yDAAyD;IACzD,4DAA4D;IAC5D,iEAAiE;IACjE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChE,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC9C,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CACtC,CAAC;QACF,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,OAOC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,OAAO,CAAC,UAAU;YAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU;YAC5B,SAAS,EAAE,OAAO,CAAC,KAAK;YACxB,QAAQ,EAAE,OAAO,CAAC,IAAI;SACvB,CAAC;QACF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,IAAI,EACJ,IAAI,EACJ,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAC5C,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,oEAAoE;QACpE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,QAAgB,EAChB,OAKC;IAED,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC;IAC3C,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC/B,KAAK,MAAM,EAAE;KACd,CAAC;IACF,IAAI,OAAO,EAAE,YAAY,KAAK,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE;YAC9B,GAAG;YACH,GAAG,EAAE,UAAU,EAAE;YACjB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,gCAAgC,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,GAAG,EAAE,EAAE,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,aAAa,CACjB,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC9C,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CACvC,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,UAAU,EAAE,CAAC,EACpD,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CACtC,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;YAC5C,GAAG,EAAE,UAAU,EAAE;YACjB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC9C,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CACtC,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAC3C,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CACtC,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,YAAoB,EACpB,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,aAAa,CAClD,KAAK,EACL,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,EAC7C,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CACvC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,aAAa,CACjB,KAAK,EACL,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,EACjC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CACvC,CAAC;QAEF,MAAM,aAAa,CACjB,KAAK,EACL,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,0CAA0C,CAAC,EAC5F,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CACvC,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,oDAAoD,SAAS,EAAE,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,wBAAwB,CAAC,OAAe;IACrD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC/D,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAAoB,EACpB,OAoBC;IAED,MAAM,MAAM,GAAa,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IAE5D,uEAAuE;IACvE,sEAAsE;IACtE,oEAAoE;IACpE,8BAA8B;IAC9B,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,eAAe,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,kCAAkC,YAAY,0BAA0B,CAAC,CAAC;QACvF,MAAM,CAAC,KAAK,GAAG,sBAAsB,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,CAAC,eAAe,CAAC;IACxC,sEAAsE;IACtE,iEAAiE;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,wBAAwB,YAAY,4BAA4B,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,iCAAiC,OAAO,eAAe,CAAC,CAAC;QACtE,MAAM,CAAC,KAAK,GAAG,2CAA2C,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sEAAsE;IACtE,qEAAqE;IACrE,uEAAuE;IACvE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,0CAA0C,OAAO,uBAAuB,CAAC,CAAC;QACvF,MAAM,CAAC,KAAK,GAAG,6DAA6D,CAAC;QAC7E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,mEAAmE;IACnE,8DAA8D;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,wBAAwB,CAAC,OAAO,CAAC,IAAI,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEpH,yEAAyE;IACzE,6EAA6E;IAC7E,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,IAAI,aAAa,EAAE,CAAC;QAClD,MAAM,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,+CAA+C,YAAY,mBAAmB,CAAC,CAAC;IAC9F,CAAC;IAED,sCAAsC;IACtC,uEAAuE;IACvE,wCAAwC;IACxC,MAAM,UAAU,GAAG,MAAM,gBAAgB,CACvC,MAAM,EACN,UAAU,EACV,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAC/C,CAAC;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,QAAQ,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,UAAU,yBAAyB,UAAU,EAAE,CAAC,CAAC;IAExF,kCAAkC;IAClC,uEAAuE;IACvE,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,uBAAuB,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IAErB,8EAA8E;IAC9E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,wCAAwC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,MAAM,CAAC,KAAK,GAAG,oDAAoD,CAAC;QACpE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;WACpB,CAAC,OAAO,CAAC,eAAe;YACzB,CAAC,CAAC,cAAc,OAAO,CAAC,eAAe,6CAA6C;YACpF,CAAC,CAAC,oCAAoC,CAAC,CAAC;IAE5C,2CAA2C;IAC3C,wEAAwE;IACxE,wEAAwE;IACxE,qEAAqE;IACrE,sEAAsE;IACtE,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACtF,MAAM,CAAC,KAAK,GAAG,6DAA6D,CAAC;QAC7E,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,UAAU,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpH,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;QACzC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU;QACV,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,IAAI;QACJ,QAAQ,EAAE,QAAQ,IAAI,SAAS;KAChC,CAAC,CAAC;IAEH,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;QACxB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC9B,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAEjD,mEAAmE;QACnE,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE;gBAC9D,MAAM,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ;gBACvC,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,QAAQ,IAAI,SAAS;aAChC,CAAC,CAAC;YACH,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;gBACnB,6CAA6C;gBAC7C,MAAM,CAAC,cAAc,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACtE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,gEAAgE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9F,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,QAAQ,oBAAoB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YAClG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,CAAC,QAAQ,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxF,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,GAAG,qDAAqD,CAAC;IACvE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -18,5 +18,7 @@ export interface LocalMergeResult {
|
|
|
18
18
|
* This never disturbs the user's main checkout or any existing worktrees.
|
|
19
19
|
* A temporary worktree is created for the merge, used, then cleaned up.
|
|
20
20
|
*/
|
|
21
|
-
export declare function localMergeIntoProjectBranch(gitRoot: string, taskBranch: string, projectBranch: string, commitMessage: string
|
|
21
|
+
export declare function localMergeIntoProjectBranch(gitRoot: string, taskBranch: string, projectBranch: string, commitMessage: string,
|
|
22
|
+
/** Optional logging callback for user-visible messages */
|
|
23
|
+
log?: (msg: string) => void): Promise<LocalMergeResult>;
|
|
22
24
|
//# sourceMappingURL=local-merge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-merge.d.ts","sourceRoot":"","sources":["../../src/lib/local-merge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"local-merge.d.ts","sourceRoot":"","sources":["../../src/lib/local-merge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM;AACrB,0DAA0D;AAC1D,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CA+I3B"}
|
package/dist/lib/local-merge.js
CHANGED
|
@@ -22,33 +22,47 @@ function withGitEnv() {
|
|
|
22
22
|
* This never disturbs the user's main checkout or any existing worktrees.
|
|
23
23
|
* A temporary worktree is created for the merge, used, then cleaned up.
|
|
24
24
|
*/
|
|
25
|
-
export async function localMergeIntoProjectBranch(gitRoot, taskBranch, projectBranch, commitMessage
|
|
25
|
+
export async function localMergeIntoProjectBranch(gitRoot, taskBranch, projectBranch, commitMessage,
|
|
26
|
+
/** Optional logging callback for user-visible messages */
|
|
27
|
+
log) {
|
|
28
|
+
const emit = log ?? (() => { });
|
|
26
29
|
// 1. Check if there are actual changes between the branches
|
|
30
|
+
console.log(`[local-merge] diff --stat ${projectBranch}...${taskBranch} (gitRoot: ${gitRoot})`);
|
|
27
31
|
try {
|
|
28
32
|
const { stdout: diff } = await execFileAsync('git', ['-C', gitRoot, 'diff', '--stat', `${projectBranch}...${taskBranch}`], { env: withGitEnv(), timeout: 10_000 });
|
|
29
33
|
if (!diff.trim()) {
|
|
34
|
+
console.log(`[local-merge] No changes between ${projectBranch} and ${taskBranch}`);
|
|
35
|
+
emit('No changes to merge');
|
|
30
36
|
return { merged: false };
|
|
31
37
|
}
|
|
38
|
+
console.log(`[local-merge] Changes detected:\n${diff.trim()}`);
|
|
32
39
|
}
|
|
33
40
|
catch {
|
|
34
|
-
|
|
41
|
+
console.warn(`[local-merge] diff failed (branch may not exist yet), proceeding with merge`);
|
|
35
42
|
}
|
|
36
43
|
// 2. Create a temporary worktree for the merge operation
|
|
37
44
|
const suffix = `${Date.now()}-${randomBytes(4).toString('hex')}`;
|
|
38
45
|
const tmpMergeDir = join(gitRoot, '.astro', 'tmp-merge', `merge-${suffix}`);
|
|
46
|
+
console.log(`[local-merge] worktree add ${tmpMergeDir} ${projectBranch}`);
|
|
39
47
|
try {
|
|
40
48
|
await execFileAsync('git', ['-C', gitRoot, 'worktree', 'add', tmpMergeDir, projectBranch], { env: withGitEnv(), timeout: 15_000 });
|
|
49
|
+
console.log(`[local-merge] Merge worktree created at ${tmpMergeDir}`);
|
|
41
50
|
}
|
|
42
51
|
catch (err) {
|
|
43
52
|
const msg = err instanceof Error ? err.message : String(err);
|
|
53
|
+
console.error(`[local-merge] Failed to create merge worktree: ${msg}`);
|
|
44
54
|
return { merged: false, error: `Failed to create merge worktree: ${msg}` };
|
|
45
55
|
}
|
|
46
56
|
try {
|
|
47
57
|
// 3. Squash-merge the task branch
|
|
58
|
+
console.log(`[local-merge] merge --squash ${taskBranch} (cwd: ${tmpMergeDir})`);
|
|
59
|
+
emit(`Squash-merging ${taskBranch} into ${projectBranch}`);
|
|
48
60
|
try {
|
|
49
61
|
await execFileAsync('git', ['-C', tmpMergeDir, 'merge', '--squash', taskBranch], { env: withGitEnv(), timeout: 30_000 });
|
|
62
|
+
console.log(`[local-merge] Squash-merge succeeded`);
|
|
50
63
|
}
|
|
51
64
|
catch (mergeErr) {
|
|
65
|
+
console.warn(`[local-merge] Squash-merge failed, checking for conflicts`);
|
|
52
66
|
// Check for merge conflicts
|
|
53
67
|
try {
|
|
54
68
|
const { stdout: status } = await execFileAsync('git', ['-C', tmpMergeDir, 'status', '--porcelain'], { env: withGitEnv(), timeout: 5_000 });
|
|
@@ -57,6 +71,8 @@ export async function localMergeIntoProjectBranch(gitRoot, taskBranch, projectBr
|
|
|
57
71
|
.filter((l) => /^(UU|AA|DD|AU|UA|DU|UD)/.test(l))
|
|
58
72
|
.map((l) => l.slice(3).trim());
|
|
59
73
|
if (conflictFiles.length > 0) {
|
|
74
|
+
console.log(`[local-merge] Conflict in: ${conflictFiles.join(', ')}`);
|
|
75
|
+
emit(`Merge conflict: ${conflictFiles.join(', ')}`);
|
|
60
76
|
// Reset the failed squash merge to leave worktree clean before removal.
|
|
61
77
|
// Note: `merge --abort` does NOT work after `merge --squash` because
|
|
62
78
|
// squash merges don't set MERGE_HEAD. `reset --merge` is the correct way.
|
|
@@ -69,43 +85,49 @@ export async function localMergeIntoProjectBranch(gitRoot, taskBranch, projectBr
|
|
|
69
85
|
}
|
|
70
86
|
catch { /* fall through to generic error */ }
|
|
71
87
|
const msg = mergeErr instanceof Error ? mergeErr.message : String(mergeErr);
|
|
88
|
+
console.error(`[local-merge] Merge failed: ${msg}`);
|
|
72
89
|
return { merged: false, error: `Merge failed: ${msg}` };
|
|
73
90
|
}
|
|
74
91
|
// 4. Commit the squash merge
|
|
92
|
+
console.log(`[local-merge] commit (cwd: ${tmpMergeDir})`);
|
|
75
93
|
try {
|
|
76
94
|
await execFileAsync('git', ['-C', tmpMergeDir, 'commit', '-m', commitMessage], { env: withGitEnv(), timeout: 10_000 });
|
|
95
|
+
console.log(`[local-merge] Commit succeeded`);
|
|
77
96
|
}
|
|
78
97
|
catch (commitErr) {
|
|
79
|
-
// Node's execFile error has .message='Command failed: ...' but the actual
|
|
80
|
-
// git output is in .stdout/.stderr on the error object.
|
|
81
98
|
const errObj = commitErr;
|
|
82
99
|
const allOutput = [errObj.message, errObj.stdout, errObj.stderr]
|
|
83
100
|
.filter(Boolean).join('\n');
|
|
84
101
|
if (allOutput.includes('nothing to commit') || allOutput.includes('nothing added to commit')) {
|
|
85
|
-
|
|
102
|
+
console.log(`[local-merge] Nothing to commit (identical trees)`);
|
|
103
|
+
emit('No changes to merge (identical trees)');
|
|
86
104
|
return { merged: false };
|
|
87
105
|
}
|
|
88
|
-
// Real commit failure (pre-commit hook, disk full, etc.)
|
|
89
106
|
const msg = commitErr instanceof Error ? commitErr.message : String(commitErr);
|
|
107
|
+
console.error(`[local-merge] Commit failed: ${msg}`);
|
|
90
108
|
return { merged: false, error: `Commit failed: ${msg}` };
|
|
91
109
|
}
|
|
92
110
|
// 5. Get the resulting commit SHA
|
|
93
111
|
try {
|
|
94
112
|
const { stdout: sha } = await execFileAsync('git', ['-C', tmpMergeDir, 'rev-parse', 'HEAD'], { env: withGitEnv(), timeout: 5_000 });
|
|
113
|
+
console.log(`[local-merge] Merge committed: ${sha.trim()}`);
|
|
95
114
|
return { merged: true, commitSha: sha.trim() };
|
|
96
115
|
}
|
|
97
116
|
catch (shaErr) {
|
|
98
117
|
const msg = shaErr instanceof Error ? shaErr.message : String(shaErr);
|
|
118
|
+
console.error(`[local-merge] Failed to capture SHA: ${msg}`);
|
|
99
119
|
return { merged: false, error: `Merge committed but failed to capture SHA: ${msg}` };
|
|
100
120
|
}
|
|
101
121
|
}
|
|
102
122
|
finally {
|
|
103
123
|
// 6. Always clean up the temporary merge worktree
|
|
124
|
+
console.log(`[local-merge] worktree remove ${tmpMergeDir}`);
|
|
104
125
|
try {
|
|
105
126
|
await execFileAsync('git', ['-C', gitRoot, 'worktree', 'remove', '--force', tmpMergeDir], { env: withGitEnv(), timeout: 10_000 });
|
|
127
|
+
console.log(`[local-merge] Merge worktree removed`);
|
|
106
128
|
}
|
|
107
129
|
catch {
|
|
108
|
-
|
|
130
|
+
console.warn(`[local-merge] worktree remove failed, force-removing`);
|
|
109
131
|
try {
|
|
110
132
|
await rm(tmpMergeDir, { recursive: true, force: true });
|
|
111
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-merge.js","sourceRoot":"","sources":["../../src/lib/local-merge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,SAAS,UAAU;IACjB,2EAA2E;IAC3E,8EAA8E;IAC9E,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnE,CAAC;AAUD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAe,EACf,UAAkB,EAClB,aAAqB,EACrB,aAAqB;
|
|
1
|
+
{"version":3,"file":"local-merge.js","sourceRoot":"","sources":["../../src/lib/local-merge.ts"],"names":[],"mappings":"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"}
|