Skip to content

Commit d203490

Browse files
authored
[fix] Fixed mentioning by CI faillure bot
1 parent f5e9d13 commit d203490

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

.github/workflows/bot-ci-failure.yml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
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."
@@ -64,8 +76,8 @@ jobs:
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

Comments
 (0)