fix(pr): make review claim step required

This commit is contained in:
Shakker
2026-03-05 04:53:19 +00:00
parent 4bd3469324
commit 5d5fa0dac8

View File

@@ -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"
;; ;;