19
19
with :
20
20
script : |
21
21
const TRIAGE_USERNAME = 'Lagoja';
22
+ const EXCLUDE_USERNAMES = ['jetpack-io-bot'];
22
23
23
24
try {
24
25
const authenticatedUser = await github.rest.users.getAuthenticated();
@@ -31,19 +32,28 @@ jobs:
31
32
const prAuthor = context.payload.pull_request.user.login.toLowerCase();
32
33
const prAuthorId = context.payload.pull_request.user.id;
33
34
const authenticatedUserLower = authenticatedUser.data.login.toLowerCase();
35
+
36
+ // If the PR author is already a member of the team, we can skip random assignment
37
+ const isPrAuthorInTeam = teamMembers.data.some(member =>
38
+ member.login.toLowerCase() === prAuthor && member.id === prAuthorId
39
+ );
40
+
41
+ if (isPrAuthorInTeam) {
42
+ console.log(`PR author ${prAuthor} is already a team member, skipping random assignment.`);
43
+ return;
44
+ }
34
45
35
46
// Get eligible reviewers (excluding PR author, authenticated user, and lagoja)
36
47
const eligibleReviewers = teamMembers.data
37
48
.filter(member => {
38
49
const loginLower = member.login.toLowerCase();
39
50
40
- // Exclude PR author by both ID and username
41
- const isNotAuthor = (prAuthorId && member.id !== prAuthorId) && loginLower !== prAuthor;
42
51
// Exclude authenticated user
43
52
const isNotAuthenticatedUser = member.id !== authenticatedUser.data.id;
44
53
const isNotTriage = loginLower !== TRIAGE_USERNAME.toLowerCase();
45
-
46
- return isNotAuthor && isNotAuthenticatedUser && isNotTriage;
54
+ const isNotExcludedUsername = !EXCLUDE_USERNAMES.includes(loginLower);
55
+
56
+ return isNotAuthenticatedUser && isNotTriage && isNotExcludedUsername;
47
57
})
48
58
.map(member => member.login);
49
59
0 commit comments