Skip to content

Commit 88466d2

Browse files
committed
Add fast path for self assign into find_reviewer_from_names
1 parent a53b2c8 commit 88466d2

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/handlers/assign.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,9 +282,6 @@ async fn determine_assignee(
282282
let db_client = ctx.db.get().await;
283283
let teams = crate::team_data::teams(&ctx.github).await?;
284284
if let Some(name) = find_assign_command(ctx, event) {
285-
if is_self_assign(&name, &event.issue.user.login) {
286-
return Ok((Some(name.to_string()), true));
287-
}
288285
// User included `r?` in the opening PR body.
289286
match find_reviewer_from_names(&db_client, &teams, config, &event.issue, &[name]).await {
290287
Ok(assignee) => return Ok((Some(assignee), true)),
@@ -739,6 +736,13 @@ async fn find_reviewer_from_names(
739736
issue: &Issue,
740737
names: &[String],
741738
) -> Result<String, FindReviewerError> {
739+
// Fast path for self-assign, which is always allowed.
740+
if let [name] = names {
741+
if is_self_assign(&name, &issue.user.login) {
742+
return Ok(name.clone());
743+
}
744+
}
745+
742746
let candidates = candidate_reviewers_from_names(teams, config, issue, names)?;
743747
// This uses a relatively primitive random choice algorithm.
744748
// GitHub's CODEOWNERS supports much more sophisticated options, such as:

0 commit comments

Comments
 (0)