Skip to content

Commit ea3aad5

Browse files
authored
Update _permission_check.yaml
1 parent 7b3cf0c commit ea3aad5

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

.github/workflows/_permission_check.yaml

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212
type: string
1313

1414
jobs:
15-
check-permission:
15+
check:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- name: Logging
@@ -32,20 +32,42 @@ jobs:
3232
echo "USER=${{ github.triggering_actor }}" >> $GITHUB_ENV
3333
fi
3434
35-
- name: get user permission
36-
id: checkAccess
35+
- name: get user (${{ env.USER }}) permission
36+
id: check_access
3737
uses: actions-cool/check-user-permission@v2
3838
with:
3939
require: write
4040
username: ${{ env.USER }}
4141
env:
4242
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4343

44-
- name: check user permission (non-PR)
45-
if: env.USER != 'dependabot[bot]' && env.USER != 'renovate[bot]' && steps.checkAccess.outputs.require-result == 'false'
44+
- name: get whether triggering_actor (${{ github.triggering_actor }}) is a contributor
45+
id: check_triggering_actor
46+
uses: actions-cool/check-user-permission@v2
47+
with:
48+
require: write
49+
check-contributor: true
50+
username: ${{ github.triggering_actor }}
51+
env:
52+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
53+
54+
- name: Check permissions
55+
# If
56+
# - this is triggered by a PR (send by someone else than dependabot or renovate), and
57+
# - author association is neither 'COLLABORATOR' nor 'OWNER', and
58+
# - triggering actor is not a contributor, then exit with an error.
59+
if: |
60+
inputs.pr_user_login != '' &&
61+
inputs.pr_user_login != 'dependabot[bot]' &&
62+
inputs.pr_user_login != 'renovate[bot]' &&
63+
github.event.pull_request.author_association != 'COLLABORATOR' &&
64+
github.event.pull_request.author_association != 'OWNER' &&
65+
steps.check_triggering_actor.outputs.check-result == 'false'
4666
run: |
47-
echo "${{ env.USER }} does not have permissions on this repo."
48-
echo "require-resuilt is ${{ steps.checkAccess.outputs.require-result }}"
49-
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
67+
echo "${{ inputs.pr_user_login }} does not have permissions on this repo."
68+
echo "Contributor check-result for triggering_actor: ${{ github.triggering_actor }} is ${{ steps.check_triggering_actor.outputs.check-result }}"
69+
echo "Current permission level is ${{ steps.check_access.outputs.user-permission }}"
5070
echo "Job originally triggered by ${{ github.actor }}"
71+
echo "Author association is ${{ github.event.pull_request.author_association }}"
5172
exit 1
73+

0 commit comments

Comments
 (0)