@@ -19,38 +19,52 @@ jobs:
19
19
with :
20
20
script : |
21
21
const TRIAGE_USERNAME = 'Lagoja';
22
-
22
+
23
23
try {
24
+ const authenticatedUser = await github.rest.users.getAuthenticated();
25
+
24
26
const teamMembers = await github.rest.teams.listMembersInOrg({
25
27
org: 'jetify-com',
26
28
team_slug: 'eng'
27
29
});
28
30
29
31
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();
31
34
32
- // Get eligible reviewers (excluding PR author and lagoja)
33
-
35
+ // Get eligible reviewers (excluding PR author, authenticated user, and lagoja)
34
36
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(', ')}`);
40
51
41
52
if (eligibleReviewers.length === 0) {
42
53
console.log('No eligible reviewers found');
43
54
return;
44
55
}
45
56
46
- // Build reviewers list: random reviewer + lagoja (if not PR author)
47
57
const randomReviewer = eligibleReviewers[Math.floor(Math.random() * eligibleReviewers.length)];
48
58
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()) {
51
63
reviewers.push(TRIAGE_USERNAME);
52
64
}
53
65
66
+ console.log(`Final reviewers: ${reviewers.join(', ')}`);
67
+
54
68
console.log(`Assigning reviewers: ${reviewers.join(', ')}`);
55
69
56
70
await github.rest.pulls.requestReviewers({
0 commit comments