fix(pr): support rebase landings

This commit is contained in:
Vincent Koc
2026-07-10 17:21:59 -07:00
committed by Vincent Koc
parent 6f9afda10c
commit 90ad9251df
3 changed files with 8 additions and 4 deletions

View File

@@ -72,7 +72,7 @@ Usage:
scripts/pr prepare-run <PR>
scripts/pr merge-verify <PR>
scripts/pr merge-run <PR>
OPENCLAW_PR_MERGE_METHOD=merge preserves the PR commit series.
OPENCLAW_PR_MERGE_METHOD=merge|rebase preserves the PR commit series.
USAGE
}

View File

@@ -245,8 +245,12 @@ merge_run() {
merge_flag="--merge"
merge_label="merge commit"
;;
rebase)
merge_flag="--rebase"
merge_label="rebase"
;;
*)
echo "Invalid OPENCLAW_PR_MERGE_METHOD: $merge_method (expected squash or merge)."
echo "Invalid OPENCLAW_PR_MERGE_METHOD: $merge_method (expected squash, merge, or rebase)."
exit 2
;;
esac

View File

@@ -35,13 +35,13 @@ describe("scripts/pr wrappers", () => {
expect(script).toContain('exec "$base" merge-run "$pr"');
});
it("defaults to squash and allows an explicit merge commit", () => {
it("defaults to squash and allows commit-preserving merge methods", () => {
const script = readScript("scripts/pr-lib/merge.sh");
expect(script).toContain("OPENCLAW_PR_MERGE_METHOD:-squash");
expect(script).toContain("--squash");
expect(script).toContain("--merge");
expect(script).not.toContain("--rebase");
expect(script).toContain("--rebase");
expect(script).toContain('echo "Merged via $merge_label."');
});