@@ -91,15 +91,40 @@ jobs:
9191 with :
9292 fetch-depth : 0
9393
94+ - name : Fetch PR SHAs
95+ id : fetch-shas
96+ env :
97+ GH_TOKEN : ${{ secrets.ARI_PAT }}
98+ PR_NUMBER : ${{ inputs.pr_number || github.event.pull_request.number || github.event.issue.number }}
99+ run : |
100+ BASE_SHA="${{ inputs.base_sha || github.event.pull_request.base.sha }}"
101+ HEAD_SHA="${{ inputs.head_sha || github.event.pull_request.head.sha }}"
102+ if [ -z "$BASE_SHA" ] || [ -z "$HEAD_SHA" ]; then
103+ PR_DATA=$(gh pr view "$PR_NUMBER" --json baseRefOid,headRefOid) || {
104+ echo "::error::Failed to fetch PR data for PR #$PR_NUMBER"
105+ exit 1
106+ }
107+ FETCHED_BASE=$(echo "$PR_DATA" | jq -r .baseRefOid)
108+ FETCHED_HEAD=$(echo "$PR_DATA" | jq -r .headRefOid)
109+ [ -z "$BASE_SHA" ] && BASE_SHA="$FETCHED_BASE"
110+ [ -z "$HEAD_SHA" ] && HEAD_SHA="$FETCHED_HEAD"
111+ fi
112+ if [ -z "$BASE_SHA" ] || [ "$BASE_SHA" = "null" ] || [ -z "$HEAD_SHA" ] || [ "$HEAD_SHA" = "null" ]; then
113+ echo "::error::Could not resolve BASE_SHA or HEAD_SHA for PR #$PR_NUMBER"
114+ exit 1
115+ fi
116+ echo "base_sha=$BASE_SHA" >> "$GITHUB_OUTPUT"
117+ echo "head_sha=$HEAD_SHA" >> "$GITHUB_OUTPUT"
118+
94119 - name : Decide Review Strategy
95120 id : decision
96121 env :
97122 TRIGGER_EVENT : ${{ inputs.trigger_event }}
98123 ACTION_TYPE : ${{ github.event.action }}
99124 COMMENT_BODY : ${{ inputs.comment_body }}
100125 PR_NUMBER : ${{ inputs.pr_number || github.event.pull_request.number || github.event.issue.number }}
101- BASE_SHA : ${{ inputs.base_sha || github.event.pull_request.base.sha }}
102- HEAD_SHA : ${{ inputs.head_sha || github.event.pull_request.head.sha }}
126+ BASE_SHA : ${{ steps.fetch-shas.outputs.base_sha }}
127+ HEAD_SHA : ${{ steps.fetch-shas.outputs.head_sha }}
103128 GH_TOKEN : ${{ secrets.ARI_PAT }}
104129 PR_QUALITY_RESULT : ${{ inputs.pr_quality_result }}
105130 MAX_COMMENTS : 60
0 commit comments