Skip to content

Commit 6dfc0f9

Browse files
committed
move permissions check to the top
1 parent 8127bfc commit 6dfc0f9

File tree

1 file changed

+39
-39
lines changed

1 file changed

+39
-39
lines changed

.github/workflows/ecosystem-ci-trigger.yml

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,45 @@ jobs:
5050
5151
return { exists: true, reaction: null }
5252
53+
- name: Check User Permissions
54+
uses: actions/github-script@v7
55+
id: check-permissions
56+
with:
57+
script: |
58+
const user = context.payload.sender.login
59+
console.log(`Validate user: ${user}`)
60+
61+
let hasTriagePermission = false
62+
try {
63+
const { data } = await github.rest.repos.getCollaboratorPermissionLevel({
64+
owner: context.repo.owner,
65+
repo: context.repo.repo,
66+
username: user,
67+
});
68+
hasTriagePermission = ['triage', 'write', 'admin'].some(p => data.user.permissions[p]);
69+
} catch (e) {
70+
console.warn(e)
71+
}
72+
73+
if (allowed) {
74+
console.log('User is allowed. Adding +1 reaction.')
75+
await github.rest.reactions.createForIssueComment({
76+
owner: context.repo.owner,
77+
repo: context.repo.repo,
78+
comment_id: context.payload.comment.id,
79+
content: '+1',
80+
})
81+
} else {
82+
console.log('User is not allowed. Adding -1 reaction.')
83+
await github.rest.reactions.createForIssueComment({
84+
owner: context.repo.owner,
85+
repo: context.repo.repo,
86+
comment_id: context.payload.comment.id,
87+
content: '-1',
88+
})
89+
throw new Error('User does not have the necessary permissions.')
90+
}
91+
5392
- name: Generate Token
5493
id: generate-token
5594
uses: tibdex/github-app-token@v2
@@ -143,45 +182,6 @@ jobs:
143182
console.log('Removed "rocket" reaction.')
144183
}
145184
146-
- name: Check User Permissions
147-
uses: actions/github-script@v7
148-
id: check-permissions
149-
with:
150-
script: |
151-
const user = context.payload.sender.login
152-
console.log(`Validate user: ${user}`)
153-
154-
let hasTriagePermission = false
155-
try {
156-
const { data } = await github.rest.repos.getCollaboratorPermissionLevel({
157-
owner: context.repo.owner,
158-
repo: context.repo.repo,
159-
username: user,
160-
});
161-
hasTriagePermission = ['triage', 'write', 'admin'].some(p => data.user.permissions[p]);
162-
} catch (e) {
163-
console.warn(e)
164-
}
165-
166-
if (allowed) {
167-
console.log('User is allowed. Adding +1 reaction.')
168-
await github.rest.reactions.createForIssueComment({
169-
owner: context.repo.owner,
170-
repo: context.repo.repo,
171-
comment_id: context.payload.comment.id,
172-
content: '+1',
173-
})
174-
} else {
175-
console.log('User is not allowed. Adding -1 reaction.')
176-
await github.rest.reactions.createForIssueComment({
177-
owner: context.repo.owner,
178-
repo: context.repo.repo,
179-
comment_id: context.payload.comment.id,
180-
content: '-1',
181-
})
182-
throw new Error('User does not have the necessary permissions.')
183-
}
184-
185185
- name: Trigger Downstream Workflow
186186
uses: actions/github-script@v7
187187
id: trigger

0 commit comments

Comments
 (0)