Loading...
Loading...
Prepare a GitHub PR for merge by rebasing onto main, fixing review findings, running gates, committing fixes, and pushing to the PR head branch. Use after /reviewpr. Never merge or push to main.
npx skill4agent add termix-official/cryptoclaw prepare-prmainorigin/maingit pushgit pushgit clean -fdxgit add -Agit add .~/openclawgit clean -fdxgit add -Agit add .origin/main.local/review.md.local/prep.mdPR is ready for /mergeprcd ~/openclaw
# Sanity: confirm you are in the repo
git rev-parse --show-toplevel
WORKTREE_DIR=".worktrees/pr-<PR>"if [ -f .local/review.md ]; then
echo "Found review findings from /reviewpr"
else
echo "Missing .local/review.md. Run /reviewpr first and save findings."
exit 1
fi
# Read it
sed -n '1,200p' .local/review.mdgh pr view <PR> --json number,title,author,headRefName,baseRefName,headRepository,body --jq '{number,title,author:.author.login,head:.headRefName,base:.baseRefName,headRepo:.headRepository.nameWithOwner,body}'
contrib=$(gh pr view <PR> --json author --jq .author.login)
head=$(gh pr view <PR> --json headRefName --jq .headRefName)
head_repo_url=$(gh pr view <PR> --json headRepository --jq .headRepository.url)git fetch origin pull/<PR>/head:pr-<PR># Move worktree to the PR tip first
git reset --hard pr-<PR>
# Rebase onto current main
git fetch origin main
git rebase origin/maingit add <resolved_file>git rebase --continue.local/review.md.local/prep.mdCHANGELOG.md.local/review.mdCHANGELOG.mdls CHANGELOG.md 2>/dev/null.local/review.mdgit add <file1> <file2> ...committer "fix: <summary> (#<PR>) (thanks @$contrib)" <changed files>committergit commit -m "fix: <summary> (#<PR>) (thanks @$contrib)"pnpm install
pnpm build
pnpm ui:build
pnpm check
pnpm test# Ensure remote for PR head exists
git remote add prhead "$head_repo_url.git" 2>/dev/null || git remote set-url prhead "$head_repo_url.git"
# Use force with lease after rebase
# Double check: $head must NOT be "main" or "master"
echo "Pushing to branch: $head"
if [ "$head" = "main" ] || [ "$head" = "master" ]; then
echo "ERROR: head branch is main/master. This is wrong. Stopping."
exit 1
fi
git push --force-with-lease prhead HEAD:$headgit fetch origin main
git fetch origin pull/<PR>/head:pr-<PR>-verify --force
git merge-base --is-ancestor origin/main pr-<PR>-verify && echo "PR is up to date with main" || echo "ERROR: PR is still behind main, rebase again"
git branch -D pr-<PR>-verify 2>/dev/null || true.local/prep.mdgit rev-parse HEAD.local/prep.mdgit rev-parse HEAD
ls -la .local/prep.md
wc -l .local/prep.mdgit diff --stat origin/main..HEAD
git diff --shortstat origin/main..HEADPR is ready for /mergepr/mergeprgh pr merge