ci/github-script/bot: handle deleted maintainer accounts gracefully

When a maintainer deletes their GitHub account, the bot would crash with a 404 error when trying to fetch their user info via `/user/{id}`.

This caused the scheduled bot workflow to fail repeatedly until manual intervention (e.g., closing/reopening the affected PR to clear the requested reviewer).

Fix by returning null from getUser() for 404 responses and filtering out null users when building the reviewers list.
This commit is contained in:
Philip Taron
2026-01-20 06:27:34 -08:00
parent 176d49999d
commit e6e6c544ae
2 changed files with 14 additions and 3 deletions
+5
View File
@@ -133,6 +133,11 @@ module.exports = async ({ github, context, core, dry }) => {
id,
})
.then((resp) => resp.data)
.catch((e) => {
// User may have deleted their account
if (e.status === 404) return null
throw e
})
}
return users[id]
+9 -3
View File
@@ -42,9 +42,15 @@ async function handleReviewers({
}
const users = new Set([
...(await Promise.all(
maintainers.map(async (id) => (await getUser(id)).login.toLowerCase()),
)),
...(
await Promise.all(
maintainers.map(async (id) => {
const user = await getUser(id)
// User may have deleted their account
return user?.login?.toLowerCase()
}),
)
).filter(Boolean),
...owners
.filter((handle) => handle && !handle.includes('/'))
.map((handle) => handle.toLowerCase()),