mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 06:57:26 +00:00
chore: make review mode switching idempotent
This commit is contained in:
24
scripts/pr
24
scripts/pr
@@ -203,7 +203,7 @@ review_checkout_main() {
|
|||||||
local pr="$1"
|
local pr="$1"
|
||||||
enter_worktree "$pr" false
|
enter_worktree "$pr" false
|
||||||
git fetch origin main
|
git fetch origin main
|
||||||
git checkout -B "temp/pr-$pr" origin/main
|
git checkout --detach origin/main
|
||||||
set_review_mode main
|
set_review_mode main
|
||||||
|
|
||||||
echo "review mode set to main baseline"
|
echo "review mode set to main baseline"
|
||||||
@@ -215,7 +215,7 @@ review_checkout_pr() {
|
|||||||
local pr="$1"
|
local pr="$1"
|
||||||
enter_worktree "$pr" false
|
enter_worktree "$pr" false
|
||||||
git fetch origin "pull/$pr/head:pr-$pr" --force
|
git fetch origin "pull/$pr/head:pr-$pr" --force
|
||||||
git checkout "pr-$pr"
|
git checkout --detach "pr-$pr"
|
||||||
set_review_mode pr
|
set_review_mode pr
|
||||||
|
|
||||||
echo "review mode set to PR head"
|
echo "review mode set to PR head"
|
||||||
@@ -227,22 +227,33 @@ review_guard() {
|
|||||||
local pr="$1"
|
local pr="$1"
|
||||||
enter_worktree "$pr" false
|
enter_worktree "$pr" false
|
||||||
require_artifact .local/review-mode.env
|
require_artifact .local/review-mode.env
|
||||||
|
require_artifact .local/pr-meta.env
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
source .local/review-mode.env
|
source .local/review-mode.env
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
source .local/pr-meta.env
|
||||||
|
|
||||||
local branch
|
local branch
|
||||||
branch=$(git branch --show-current)
|
branch=$(git branch --show-current)
|
||||||
|
local head_sha
|
||||||
|
head_sha=$(git rev-parse HEAD)
|
||||||
|
|
||||||
case "${REVIEW_MODE:-}" in
|
case "${REVIEW_MODE:-}" in
|
||||||
main)
|
main)
|
||||||
if [ "$branch" != "temp/pr-$pr" ]; then
|
local expected_main_sha
|
||||||
echo "Review guard failed: expected branch temp/pr-$pr for main baseline mode, got $branch"
|
expected_main_sha=$(git rev-parse origin/main)
|
||||||
|
if [ "$head_sha" != "$expected_main_sha" ]; then
|
||||||
|
echo "Review guard failed: expected HEAD at origin/main ($expected_main_sha) for main baseline mode, got $head_sha"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
pr)
|
pr)
|
||||||
if [ "$branch" != "pr-$pr" ] && [ "$branch" != "pr-$pr-review" ]; then
|
if [ -z "${PR_HEAD_SHA:-}" ]; then
|
||||||
echo "Review guard failed: expected PR branch (pr-$pr or pr-$pr-review), got $branch"
|
echo "Review guard failed: missing PR_HEAD_SHA in .local/pr-meta.env"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "$head_sha" != "$PR_HEAD_SHA" ]; then
|
||||||
|
echo "Review guard failed: expected HEAD at PR_HEAD_SHA ($PR_HEAD_SHA), got $head_sha"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@@ -255,6 +266,7 @@ review_guard() {
|
|||||||
echo "review guard passed"
|
echo "review guard passed"
|
||||||
echo "mode=$REVIEW_MODE"
|
echo "mode=$REVIEW_MODE"
|
||||||
echo "branch=$branch"
|
echo "branch=$branch"
|
||||||
|
echo "head=$head_sha"
|
||||||
}
|
}
|
||||||
|
|
||||||
review_artifacts_init() {
|
review_artifacts_init() {
|
||||||
|
|||||||
Reference in New Issue
Block a user