2121 if : ${{ github.event.workflow_run.conclusion == 'failure' }}
2222 outputs :
2323 pr_number : ${{ steps.pr.outputs.number }}
24+ pr_author : ${{ steps.pr.outputs.author }}
2425 steps :
2526 - name : Find PR Number
2627 id : pr
@@ -30,25 +31,36 @@ jobs:
3031 PR_NUMBER_PAYLOAD : ${{ github.event.workflow_run.pull_requests[0].number }}
3132 EVENT_HEAD_SHA : ${{ github.event.workflow_run.head_sha }}
3233 run : |
34+ emit_pr() {
35+ local pr_number="$1"
36+ local pr_author
37+ pr_author=$(gh pr view "$pr_number" --repo "$REPO" --json author --jq '.author.login // empty' 2>/dev/null || echo "")
38+ if [ -z "$pr_author" ]; then
39+ pr_author="${{ github.event.workflow_run.actor.login }}"
40+ echo "::warning::Could not fetch PR author for PR #$pr_number; falling back to @$pr_author"
41+ fi
42+ echo "number=$pr_number" >> "$GITHUB_OUTPUT"
43+ echo "author=$pr_author" >> "$GITHUB_OUTPUT"
44+ }
3345 PR_NUMBER="$PR_NUMBER_PAYLOAD"
3446 if [ -n "$PR_NUMBER" ]; then
3547 echo "Found PR #$PR_NUMBER from workflow payload."
36- echo "number= $PR_NUMBER" >> $GITHUB_OUTPUT
48+ emit_pr " $PR_NUMBER"
3749 exit 0
3850 fi
3951 HEAD_SHA="$EVENT_HEAD_SHA"
4052 echo "Payload empty. Searching for PR via Commits API..."
4153 PR_NUMBER=$(gh api repos/$REPO/commits/$HEAD_SHA/pulls -q '.[0].number' 2>/dev/null || true)
4254 if [ -n "$PR_NUMBER" ] && [ "$PR_NUMBER" != "null" ]; then
4355 echo "Found PR #$PR_NUMBER using Commits API."
44- echo "number= $PR_NUMBER" >> $GITHUB_OUTPUT
56+ emit_pr " $PR_NUMBER"
4557 exit 0
4658 fi
4759 echo "API lookup failed/empty. Scanning open PRs for matching head SHA..."
4860 PR_NUMBER=$(gh pr list --repo "$REPO" --state open --limit 100 --json number,headRefOid --jq ".[] | select(.headRefOid == \"$HEAD_SHA\") | .number" | head -n 1)
4961 if [ -n "$PR_NUMBER" ]; then
5062 echo "Found PR #$PR_NUMBER by scanning open PRs."
51- echo "number= $PR_NUMBER" >> $GITHUB_OUTPUT
63+ emit_pr " $PR_NUMBER"
5264 exit 0
5365 fi
5466 echo "::warning::No open PR found. This workflow run might not be attached to an open PR."
6476 head_repo : ${{ github.event.workflow_run.head_repository.full_name }}
6577 base_repo : ${{ github.repository }}
6678 run_id : ${{ github.event.workflow_run.id }}
67- pr_author : ${{ github.event.workflow_run.actor.login }}
68- actor : ${{ github.actor }}
79+ pr_author : ${{ needs.find-pr.outputs.pr_author }}
80+ actor : ${{ github.event.workflow_run. actor.login }}
6981 secrets :
7082 GEMINI_API_KEY : ${{ secrets.GEMINI_API_KEY }}
7183 APP_ID : ${{ secrets.OPENWISP_BOT_APP_ID }}
0 commit comments