


















@@ -199,9 +199,11 @@ merge_run() {
199199200200local contrib_coauthor_email="${COAUTHOR_EMAIL:-}"
201201if [ -z "$contrib_coauthor_email" ] || [ "$contrib_coauthor_email" = "null" ]; then
202-local contrib_id
203- contrib_id=$(gh api "users/$contrib" --jq .id)
204- contrib_coauthor_email="${contrib_id}+${contrib}@users.noreply.github.com"
202+if contrib_coauthor_email=$(resolve_contributor_coauthor_email "$contrib"); then
203+:
204+else
205+ contrib_coauthor_email=""
206+fi
205207fi
206208207209local reviewer_email_candidates=()
@@ -218,14 +220,16 @@ merge_run() {
218220local reviewer_email="${reviewer_email_candidates[0]}"
219221local reviewer_coauthor_email="${reviewer_id}+${reviewer}@users.noreply.github.com"
220222221- cat > .local/merge-body.txt <<EOF_BODY
222-Merged via squash.
223-224-Prepared head SHA: $PREP_HEAD_SHA
225-Co-authored-by: $contrib <$contrib_coauthor_email>
226-Co-authored-by: $reviewer <$reviewer_coauthor_email>
227-Reviewed-by: @$reviewer
228-EOF_BODY
223+ {
224+echo "Merged via squash."
225+echo
226+echo "Prepared head SHA: $PREP_HEAD_SHA"
227+if [ -n "$contrib_coauthor_email" ]; then
228+echo "Co-authored-by: $contrib <$contrib_coauthor_email>"
229+fi
230+echo "Co-authored-by: $reviewer <$reviewer_coauthor_email>"
231+echo "Reviewed-by: @$reviewer"
232+ } > .local/merge-body.txt
229233230234delete_remote_pr_head_branch_after_merge() {
231235local head_json
@@ -347,22 +351,29 @@ EOF_BODY
347351348352local commit_body
349353 commit_body=$(gh api repos/:owner/:repo/commits/"$merge_sha" --jq .commit.message)
350-printf '%s\n' "$commit_body" | rg -q "^Co-authored-by: $contrib <" || { echo "Missing PR author co-author trailer"; exit 1; }
354+if [ -n "$contrib_coauthor_email" ]; then
355+printf '%s\n' "$commit_body" | rg -q "^Co-authored-by: $contrib <" || { echo "Missing PR author co-author trailer"; exit 1; }
356+else
357+echo "Skipping PR author co-author trailer check for bot/app author $contrib."
358+fi
351359printf '%s\n' "$commit_body" | rg -q "^Co-authored-by: $reviewer <" || { echo "Missing reviewer co-author trailer"; exit 1; }
352360353361local ok=0
354362local comment_output=""
355363local attempt
356364for attempt in 1 2 3; do
357-if comment_output=$(gh pr comment "$pr" -F - 2>&1 <<EOF_COMMENT
358-Merged via squash.
359-360-- Prepared head SHA: [$PREP_HEAD_SHA]($prep_sha_url)
361-- Merge commit: [$merge_sha]($merge_sha_url)
362-363-Thanks @$contrib!
364-EOF_COMMENT
365-); then
365+if comment_output=$(
366+ {
367+ echo "Merged via squash."
368+ echo
369+ echo "- Prepared head SHA: [$PREP_HEAD_SHA]($prep_sha_url)"
370+ echo "- Merge commit: [$merge_sha]($merge_sha_url)"
371+ if pr_contributor_allows_human_trailers "$contrib"; then
372+ echo
373+ echo "Thanks @$contrib!"
374+ fi
375+ } | gh pr comment "$pr" -F - 2>&1
376+ ); then
366377 ok=1
367378break
368379fi
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。