1212 type : string
1313
1414jobs :
15- check-permission :
15+ check :
1616 runs-on : ubuntu-latest
1717 steps :
1818 - name : Logging
@@ -24,34 +24,35 @@ jobs:
2424 run : |
2525 echo "github.triggering_actor ${{ github.triggering_actor }}"
2626 echo "github.actor ${{ github.actor }}"
27+ echo "inputs.pr_user_login ${{ inputs.pr_user_login }}"
2728
28- - name : get user permission
29- id : checkAccess
29+ - name : get whether triggering_actor (${{ github.triggering_actor }}) is a contributor
30+ id : check_triggering_actor
3031 uses : actions-cool/check-user-permission@v2
3132 with :
3233 require : write
34+ check-contributor : true
3335 username : ${{ github.triggering_actor }}
3436 env :
3537 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
3638
37- - name : check user permission (non-PR)
38- if : ${{ inputs.pr_user_login }} == '' && steps.checkAccess.outputs.require-result == 'false'
39- run : |
40- echo "${{ github.triggering_actor }} does not have permissions on this repo."
41- echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
42- echo "Job originally triggered by ${{ github.actor }}"
43- exit 1
44-
45- - name : check user permission
39+ - name : Check permissions
40+ # If
41+ # - this is triggered by a PR (send by someone else than dependabot or renovate), and
42+ # - PR author association is neither 'COLLABORATOR' nor 'OWNER', and
43+ # - triggering actor is not a contributor, then exit with an error.
4644 if : |
47- !(
48- (${{ inputs.pr_user_login }} == 'dependabot[bot]' && github.triggering_actor != 'dependabot[bot]') ||
49- (${{ inputs.pr_user_login }} == 'renovate[bot]' && github.triggering_actor != 'renovate[bot]')
50- )
51- &&
52- steps.checkAccess .outputs.require -result == 'false'
45+ inputs.pr_user_login != '' &&
46+ inputs.pr_user_login != 'dependabot[bot]' &&
47+ inputs.pr_user_login != 'renovate[bot]' &&
48+ github.event.pull_request.author_association != 'COLLABORATOR' &&
49+ github.event.pull_request.author_association != 'OWNER' &&
50+ steps.check_triggering_actor .outputs.check -result == 'false'
5351 run : |
54- echo "${{ github.triggering_actor }} does not have permissions on this repo."
55- echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
56- echo "Job originally triggered by ${{ github.actor }}"
52+ echo "${{ inputs.pr_user_login }} (original PR submitter) does not have permissions on this repo."
53+ echo "The CI needs to be retriggered by collaborator or an owner."
54+ echo "Contributor check-result for triggering_actor: ${{ github.triggering_actor }} is ${{ steps.check_triggering_actor.outputs.check-result }}"
55+ echo "Current permission level for triggering_actor: ${{ github.triggering_actor }} is ${{ steps.check_triggering_actor.outputs.require-result }}"
56+ echo "PR author association is ${{ github.event.pull_request.author_association }}"
5757 exit 1
58+
0 commit comments