Skip to content

Commit a0baae9

Browse files
authored
Merge pull request #4 from SyncIt21/Fix3
Fixes 3 more bugs
2 parents f1948e3 + c736bbc commit a0baae9

2 files changed

Lines changed: 28 additions & 83 deletions

File tree

‎dist/index.js‎

Lines changed: 13 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -33148,7 +33148,7 @@ function GetOwnersWithModifiedFiles(codeowners, modifiedFiles) {
3314833148
if (!regex_match) {
3314933149
let regex = ownerPath;
3315033150
//No slashes at all, match any file at any level
33151-
const fileMode = regex.includes('/');
33151+
const fileMode = !regex.includes('/');
3315233152
//Remove leading slash before generating Regex as modified files from PR don't start with slash aka src/code/Program.cs and not /src...
3315333153
regex = regex.replace('/', '');
3315433154
//Escape the input
@@ -33225,41 +33225,20 @@ async function run() {
3322533225
info('No reviewers to call');
3322633226
return;
3322733227
}
33228-
//Remove users that have previously removed/added themself to review
33229-
;
33230-
(await octokit.paginate(octokit.rest.issues.listEvents.endpoint.merge({
33231-
owner: core_owner,
33232-
repo: core_repo,
33233-
issue_number: pull_number
33234-
})))
33235-
.flatMap(array => array)
33236-
.reverse() //reverse to get latest events
33237-
.forEach(issue_event => {
33238-
const event = issue_event.event;
33239-
if (event == 'review_request_removed' ||
33240-
event == 'review_requested') {
33241-
const remove = issue_event.actor.login;
33242-
//skip bot events
33243-
if (remove == 'github-actions[bot]') {
33244-
return;
33245-
}
33246-
//if user has triggered this event then we skip it
33247-
const index = trimmed_owners.indexOf(remove);
33248-
if (index >= 0) {
33249-
notice(`User ${remove} has ${event == 'review_request_removed' ? 'previously removed' : 'already added'} themself as a reviewer.`);
33250-
trimmed_owners.splice(index, 1);
33251-
}
33252-
}
33253-
});
3325433228
//Remove Invalid users
3325533229
for (const user of trimmed_owners.toReversed()) {
33256-
const response = await octokit.rest.issues.checkUserCanBeAssigned({
33257-
owner: core_owner,
33258-
repo: core_repo,
33259-
assignee: user
33260-
});
33261-
if (response.status != 204) {
33262-
notice(`User ${user} cannot be requested for review, make sure they are a member of a team with read access.`);
33230+
try {
33231+
const response = await octokit.rest.issues.checkUserCanBeAssigned({
33232+
owner: core_owner,
33233+
repo: core_repo,
33234+
assignee: user
33235+
});
33236+
if (response.status != 204) {
33237+
throw new Error(`Cannot be requested for review, make sure they are a member of a team with read access.`);
33238+
}
33239+
}
33240+
catch (ex) {
33241+
notice(`Error verifying user ${user}: ${ex}`);
3326333242
trimmed_owners.splice(trimmed_owners.indexOf(user), 1);
3326433243
}
3326533244
}

‎src/index.ts‎

Lines changed: 15 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ function GetOwnersWithModifiedFiles(
5555
if (!regex_match) {
5656
let regex = ownerPath
5757
//No slashes at all, match any file at any level
58-
const fileMode = regex.includes('/')
58+
const fileMode = !regex.includes('/')
5959
//Remove leading slash before generating Regex as modified files from PR don't start with slash aka src/code/Program.cs and not /src...
6060
regex = regex.replace('/', '')
6161

@@ -167,56 +167,22 @@ async function run(): Promise<void> {
167167
return
168168
}
169169

170-
//Remove users that have previously removed/added themself to review
171-
;(
172-
await octokit.paginate<
173-
RestEndpointMethodTypes['issues']['listEvents']['response']['data']
174-
>(
175-
octokit.rest.issues.listEvents.endpoint.merge({
176-
owner: core_owner,
177-
repo: core_repo,
178-
issue_number: pull_number
179-
})
180-
)
181-
)
182-
.flatMap(array => array)
183-
.reverse() //reverse to get latest events
184-
.forEach(issue_event => {
185-
const event = issue_event.event
186-
if (
187-
event == 'review_request_removed' ||
188-
event == 'review_requested'
189-
) {
190-
const remove = issue_event.actor.login
191-
192-
//skip bot events
193-
if (remove == 'github-actions[bot]') {
194-
return
195-
}
196-
197-
//if user has triggered this event then we skip it
198-
const index = trimmed_owners.indexOf(remove)
199-
if (index >= 0) {
200-
notice(
201-
`User ${remove} has ${event == 'review_request_removed' ? 'previously removed' : 'already added'} themself as a reviewer.`
202-
)
203-
trimmed_owners.splice(index, 1)
204-
}
205-
}
206-
})
207-
208170
//Remove Invalid users
209171
for (const user of trimmed_owners.toReversed()) {
210-
const response: RestEndpointMethodTypes['issues']['checkUserCanBeAssigned']['response'] =
211-
await octokit.rest.issues.checkUserCanBeAssigned({
212-
owner: core_owner,
213-
repo: core_repo,
214-
assignee: user
215-
})
216-
if (response.status != 204) {
217-
notice(
218-
`User ${user} cannot be requested for review, make sure they are a member of a team with read access.`
219-
)
172+
try {
173+
const response: RestEndpointMethodTypes['issues']['checkUserCanBeAssigned']['response'] =
174+
await octokit.rest.issues.checkUserCanBeAssigned({
175+
owner: core_owner,
176+
repo: core_repo,
177+
assignee: user
178+
})
179+
if (response.status != 204) {
180+
throw new Error(
181+
`Cannot be requested for review, make sure they are a member of a team with read access.`
182+
)
183+
}
184+
} catch (ex) {
185+
notice(`Error verifying user ${user}: ${ex}`)
220186
trimmed_owners.splice(trimmed_owners.indexOf(user), 1)
221187
}
222188
}

0 commit comments

Comments
 (0)