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-checkout-main <PR>
|
||||
scripts/pr review-checkout-pr <PR>
|
||||
scripts/pr review-claim <PR>
|
||||
scripts/pr review-guard <PR>
|
||||
scripts/pr review-artifacts-init <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
|
||||
}
|
||||
|
||||
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() {
|
||||
local pr="$1"
|
||||
enter_worktree "$pr" false
|
||||
@@ -1766,6 +1821,9 @@ main() {
|
||||
review-checkout-pr)
|
||||
review_checkout_pr "$pr"
|
||||
;;
|
||||
review-claim)
|
||||
review_claim "$pr"
|
||||
;;
|
||||
review-guard)
|
||||
review_guard "$pr"
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user