Skip to content

Commit e1ebc97

Browse files
committed
add step to check user permission
Signed-off-by: Zaki Shaikh <zashaikh@redhat.com>
1 parent 86a29ea commit e1ebc97

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

.github/workflows/e2e.yaml

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
if: >
3232
github.event_name == 'schedule' ||
3333
github.event_name == 'workflow_dispatch' ||
34-
(github.event_name == 'pull_request_target' && contains(fromJSON('["zakisk", "infernus01", "savitaashture", "chmouel", "vdemeester", "enarha", "aThorp96", "waveywaves", "mathur07", "dependabot[bot]"]'), github.event.pull_request.user.login))
34+
github.event_name == 'pull_request_target'
3535
concurrency:
3636
group: ${{ github.workflow }}-${{ matrix.provider }}-${{ github.event.pull_request.number || github.ref_name }}
3737
cancel-in-progress: true
@@ -68,6 +68,35 @@ jobs:
6868
TEST_BITBUCKET_SERVER_USER: pipelines
6969
TEST_BITBUCKET_SERVER_E2E_REPOSITORY: PAC/pac-e2e-tests
7070
steps:
71+
- name: Check user permissions (detailed)
72+
id: check_perms
73+
uses: actions/github-script@v7
74+
with:
75+
script: |
76+
const actor = context.actor;
77+
const { owner, repo } = context.repo;
78+
79+
try {
80+
const response = await github.rest.repos.getCollaboratorPermissionLevel({
81+
owner,
82+
repo,
83+
username: actor,
84+
});
85+
86+
const userPermission = response.data.permission;
87+
88+
if (userPermission === 'admin') {
89+
core.info(`✅ Permission check successful. User @${actor} is an ADMIN.`);
90+
} else if (userPermission === 'write') {
91+
core.info(`✅ Permission check successful. User @${actor} has WRITE permission.`);
92+
} else {
93+
core.setFailed(`❌ Permission check failed. User @${actor} has '${userPermission}' permission, but 'write' or 'admin' is required to proceed.`);
94+
}
95+
96+
} catch (error) {
97+
core.setFailed(`Could not verify permission for @${actor}. They might not be a collaborator. Error: ${error.message}`);
98+
}
99+
71100
- uses: actions/checkout@v5
72101
with:
73102
ref: ${{ inputs.target_ref || github.event.pull_request.head.sha || github.sha }}

0 commit comments

Comments
 (0)