Skip to content

Commit 06a6d7f

Browse files
committed
Auth'd user can't be a reviewer, so filter them
1 parent dbc675b commit 06a6d7f

File tree

1 file changed

+26
-12
lines changed

1 file changed

+26
-12
lines changed

.github/workflows/random-reviewer-assignment.yml

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,38 +19,52 @@ jobs:
1919
with:
2020
script: |
2121
const TRIAGE_USERNAME = 'Lagoja';
22-
22+
2323
try {
24+
const authenticatedUser = await github.rest.users.getAuthenticated();
25+
2426
const teamMembers = await github.rest.teams.listMembersInOrg({
2527
org: 'jetify-com',
2628
team_slug: 'eng'
2729
});
2830
2931
const prAuthor = context.payload.pull_request.user.login.toLowerCase();
30-
console.log(`PR Author: ${prAuthor}`);
32+
const prAuthorId = context.payload.pull_request.user.id;
33+
const authenticatedUserLower = authenticatedUser.data.login.toLowerCase();
3134
32-
// Get eligible reviewers (excluding PR author and lagoja)
33-
35+
// Get eligible reviewers (excluding PR author, authenticated user, and lagoja)
3436
const eligibleReviewers = teamMembers.data
35-
.map(member => member.login)
36-
.filter(login => {
37-
const loginLower = login.toLowerCase();
38-
return loginLower !== prAuthor && loginLower !== TRIAGE_USERNAME;
39-
});
37+
.filter(member => {
38+
const loginLower = member.login.toLowerCase();
39+
40+
// Exclude PR author by both ID and username
41+
const isNotAuthor = (prAuthorId && member.id !== prAuthorId) && loginLower !== prAuthor;
42+
// Exclude authenticated user
43+
const isNotAuthenticatedUser = member.id !== authenticatedUser.data.id;
44+
const isNotTriage = loginLower !== TRIAGE_USERNAME.toLowerCase();
45+
46+
return isNotAuthor && isNotAuthenticatedUser && isNotTriage;
47+
})
48+
.map(member => member.login);
49+
50+
console.log(`Eligible reviewers: ${eligibleReviewers.join(', ')}`);
4051
4152
if (eligibleReviewers.length === 0) {
4253
console.log('No eligible reviewers found');
4354
return;
4455
}
4556
46-
// Build reviewers list: random reviewer + lagoja (if not PR author)
4757
const randomReviewer = eligibleReviewers[Math.floor(Math.random() * eligibleReviewers.length)];
4858
const reviewers = [randomReviewer];
49-
50-
if (prAuthor !== TRIAGE_USERNAME) {
59+
60+
// Only add TRIAGE_USERNAME if they're not the PR author and not the authenticated user
61+
if (prAuthor !== TRIAGE_USERNAME.toLowerCase() &&
62+
authenticatedUserLower !== TRIAGE_USERNAME.toLowerCase()) {
5163
reviewers.push(TRIAGE_USERNAME);
5264
}
5365
66+
console.log(`Final reviewers: ${reviewers.join(', ')}`);
67+
5468
console.log(`Assigning reviewers: ${reviewers.join(', ')}`);
5569
5670
await github.rest.pulls.requestReviewers({

0 commit comments

Comments
 (0)