mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
fix(pr): make review claim step required
This commit is contained in:
58
scripts/pr
58
scripts/pr
@@ -20,6 +20,7 @@ Usage:
|
|||||||
scripts/pr review-init <PR>
|
scripts/pr review-init <PR>
|
||||||
scripts/pr review-checkout-main <PR>
|
scripts/pr review-checkout-main <PR>
|
||||||
scripts/pr review-checkout-pr <PR>
|
scripts/pr review-checkout-pr <PR>
|
||||||
|
scripts/pr review-claim <PR>
|
||||||
scripts/pr review-guard <PR>
|
scripts/pr review-guard <PR>
|
||||||
scripts/pr review-artifacts-init <PR>
|
scripts/pr review-artifacts-init <PR>
|
||||||
scripts/pr review-validate-artifacts <PR>
|
scripts/pr review-validate-artifacts <PR>
|
||||||
@@ -396,6 +397,60 @@ REVIEW_MODE_SET_AT=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|||||||
EOF_ENV
|
EOF_ENV
|
||||||
}
|
}
|
||||||
|
|
||||||
|
review_claim() {
|
||||||
|
local pr="$1"
|
||||||
|
local root
|
||||||
|
root=$(repo_root)
|
||||||
|
cd "$root"
|
||||||
|
mkdir -p .local
|
||||||
|
|
||||||
|
local reviewer=""
|
||||||
|
local max_attempts=3
|
||||||
|
local attempt
|
||||||
|
|
||||||
|
for attempt in $(seq 1 "$max_attempts"); do
|
||||||
|
local user_log
|
||||||
|
user_log=".local/review-claim-user-attempt-$attempt.log"
|
||||||
|
|
||||||
|
if reviewer=$(gh api user --jq .login 2>"$user_log"); then
|
||||||
|
printf "%s\n" "$reviewer" >"$user_log"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Claim reviewer lookup failed (attempt $attempt/$max_attempts)."
|
||||||
|
print_relevant_log_excerpt "$user_log"
|
||||||
|
|
||||||
|
if [ "$attempt" -lt "$max_attempts" ]; then
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$reviewer" ]; then
|
||||||
|
echo "Failed to resolve reviewer login after $max_attempts attempts."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for attempt in $(seq 1 "$max_attempts"); do
|
||||||
|
local claim_log
|
||||||
|
claim_log=".local/review-claim-assignee-attempt-$attempt.log"
|
||||||
|
|
||||||
|
if gh pr edit "$pr" --add-assignee "$reviewer" >"$claim_log" 2>&1; then
|
||||||
|
echo "review claim succeeded: @$reviewer assigned to PR #$pr"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Claim assignee update failed (attempt $attempt/$max_attempts)."
|
||||||
|
print_relevant_log_excerpt "$claim_log"
|
||||||
|
|
||||||
|
if [ "$attempt" -lt "$max_attempts" ]; then
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Failed to assign @$reviewer to PR #$pr after $max_attempts attempts."
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
review_checkout_main() {
|
review_checkout_main() {
|
||||||
local pr="$1"
|
local pr="$1"
|
||||||
enter_worktree "$pr" false
|
enter_worktree "$pr" false
|
||||||
@@ -1766,6 +1821,9 @@ main() {
|
|||||||
review-checkout-pr)
|
review-checkout-pr)
|
||||||
review_checkout_pr "$pr"
|
review_checkout_pr "$pr"
|
||||||
;;
|
;;
|
||||||
|
review-claim)
|
||||||
|
review_claim "$pr"
|
||||||
|
;;
|
||||||
review-guard)
|
review-guard)
|
||||||
review_guard "$pr"
|
review_guard "$pr"
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user