fix: correctly handle pull_request_target event (#1327)

* Fix workflow on pull_request_target

* fix fromJSON
This commit is contained in:
Sébastiaan 2025-01-08 16:33:09 +01:00 committed by GitHub
parent 9330e9a640
commit ff712bc36e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 13 additions and 10 deletions

View File

@ -16,6 +16,7 @@ jobs:
steps: steps:
- name: Get pull request information - name: Get pull request information
if: github.event_name == 'pull_request_target'
uses: actions/github-script@v7 uses: actions/github-script@v7
id: pr id: pr
with: with:
@ -30,13 +31,13 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 # Ensure the full history is fetched for accurate diffing fetch-depth: 0 # Ensure the full history is fetched for accurate diffing
ref: ${{ fromJSON(steps.pr.outputs.result).merge_commit_sha }} ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
run: | run: |
if ${{ github.event_name == 'pull_request' }}; then if ${{ github.event_name == 'pull_request_target' }}; then
echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | xargs)" >> $GITHUB_OUTPUT echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | xargs)" >> $GITHUB_OUTPUT
else else
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT
fi fi
@ -88,7 +89,7 @@ jobs:
fi fi
- name: Post results and comment - name: Post results and comment
if: always() && steps.check-scripts.outputs.files != '' && steps.check-json.outputs.files != '' && github.event_name == 'pull_request' if: always() && steps.check-scripts.outputs.files != '' && steps.check-json.outputs.files != '' && github.event_name == 'pull_request_target'
uses: actions/github-script@v7 uses: actions/github-script@v7
with: with:
script: | script: |

View File

@ -18,6 +18,7 @@ jobs:
steps: steps:
- name: Get pull request information - name: Get pull request information
if: github.event_name == 'pull_request_target'
uses: actions/github-script@v7 uses: actions/github-script@v7
id: pr id: pr
with: with:
@ -32,13 +33,13 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 # Ensure the full history is fetched for accurate diffing fetch-depth: 0 # Ensure the full history is fetched for accurate diffing
ref: ${{ fromJSON(steps.pr.outputs.result).merge_commit_sha }} ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
run: | run: |
if ${{ github.event_name == 'pull_request' }}; then if ${{ github.event_name == 'pull_request' }}; then
echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
else else
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
fi fi

View File

@ -17,6 +17,7 @@ jobs:
steps: steps:
- name: Get pull request information - name: Get pull request information
if: github.event_name == 'pull_request_target'
uses: actions/github-script@v7 uses: actions/github-script@v7
id: pr id: pr
with: with:
@ -31,7 +32,7 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 # Ensure the full history is fetched for accurate diffing fetch-depth: 0 # Ensure the full history is fetched for accurate diffing
ref: ${{fromJSON(steps.pr.outputs.result).merge_commit_sha}} ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
- name: Set execute permission for .sh files - name: Set execute permission for .sh files
run: | run: |
@ -40,8 +41,8 @@ jobs:
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
run: | run: |
if ${{ github.event_name == 'pull_request' }}; then if ${{ github.event_name == 'pull_request_target' }}; then
echo "files=$(git diff --name-only -r HEAD^1 HEAD | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | xargs)" >> $GITHUB_OUTPUT
else else
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
fi fi
@ -167,7 +168,7 @@ jobs:
fi fi
- name: Post results and comment - name: Post results and comment
if: always() && steps.changed-files.outputs.files != '' && github.event_name == 'pull_request' if: always() && steps.changed-files.outputs.files != '' && github.event_name == 'pull_request_target'
uses: actions/github-script@v7 uses: actions/github-script@v7
with: with:
script: | script: |