Skip to content

Commit 028ad92

Browse files
refactor no previous try build error
1 parent d9db4d3 commit 028ad92

File tree

1 file changed

+16
-21
lines changed

1 file changed

+16
-21
lines changed

src/bors/handlers/trybuild.rs

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,21 @@ pub(super) async fn command_try_build(
7373
.await?;
7474
return Ok(());
7575
}
76+
} else if Some(Parent::Last) == parent {
77+
tracing::warn!("try build was requested with parent=last but no previous build was found");
78+
repo.client
79+
.post_comment(pr.number, cant_find_last_parent_comment())
80+
.await?;
81+
return Ok(());
7682
}
7783

7884
let base_sha = match get_base_sha(&pr_model, parent) {
79-
Ok(Some(base_sha)) => base_sha,
80-
Ok(None) => repo
85+
Some(base_sha) => base_sha,
86+
None => repo
8187
.client
8288
.get_branch_sha(&pr.base.name)
8389
.await
8490
.context(format!("Cannot get SHA for branch {}", pr.base.name))?,
85-
Err(comment) => {
86-
repo.client.post_comment(pr.number, comment).await?;
87-
return Ok(());
88-
}
8991
};
9092

9193
match attempt_merge(
@@ -176,25 +178,18 @@ enum MergeResult {
176178
Conflict,
177179
}
178180

179-
fn get_base_sha(
180-
pr_model: &PullRequestModel,
181-
parent: Option<Parent>,
182-
) -> Result<Option<CommitSha>, Comment> {
183-
let last_parent = if let Some(ref build) = pr_model.try_build {
184-
Some(CommitSha(build.parent.clone()))
185-
} else {
186-
None
187-
};
181+
fn get_base_sha(pr_model: &PullRequestModel, parent: Option<Parent>) -> Option<CommitSha> {
182+
let last_parent = pr_model
183+
.try_build
184+
.as_ref()
185+
.map(|build| CommitSha(build.parent.clone()));
188186

189187
match parent.clone() {
190188
Some(parent) => match parent {
191-
Parent::Last => match last_parent {
192-
None => Err(cant_find_last_parent_comment()),
193-
Some(last_parent) => Ok(Some(last_parent)),
194-
},
195-
Parent::CommitSha(parent) => Ok(Some(parent)),
189+
Parent::Last => last_parent,
190+
Parent::CommitSha(parent) => Some(parent),
196191
},
197-
None => Ok(None),
192+
None => None,
198193
}
199194
}
200195

0 commit comments

Comments
 (0)