Skip to content

Commit babbd7a

Browse files
authored
Merge pull request #574 from Kobzol/rollup-merge-ignore-block
Remove `homu-ignore` blocks also in rollup merge commit messages
2 parents 782277d + 282a307 commit babbd7a

File tree

2 files changed

+67
-6
lines changed

2 files changed

+67
-6
lines changed

src/bors/mod.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,8 @@ pub fn make_text_ignored_by_bors(text: &str) -> String {
287287
format!("{IGNORE_BLOCK_START}\n{text}\n{IGNORE_BLOCK_END}")
288288
}
289289

290-
pub fn create_merge_commit_message(pr: handlers::PullRequestData, merge_type: MergeType) -> String {
291-
/// Prefix used to specify custom try jobs in PR descriptions.
292-
const CUSTOM_TRY_JOB_PREFIX: &str = "try-job:";
293-
290+
/// Remove homu-ignore blocks from the merge message
291+
pub fn normalize_merge_message(message: &str) -> String {
294292
static IGNORE_REGEX: LazyLock<Regex> = LazyLock::new(|| {
295293
RegexBuilder::new(r"<!--\s*homu-ignore:start\s*-->.*?<!--\s*homu-ignore:end\s*-->")
296294
.multi_line(true)
@@ -299,6 +297,12 @@ pub fn create_merge_commit_message(pr: handlers::PullRequestData, merge_type: Me
299297
.build()
300298
.unwrap()
301299
});
300+
IGNORE_REGEX.replace_all(message, "").to_string()
301+
}
302+
303+
pub fn create_merge_commit_message(pr: handlers::PullRequestData, merge_type: MergeType) -> String {
304+
/// Prefix used to specify custom try jobs in PR descriptions.
305+
const CUSTOM_TRY_JOB_PREFIX: &str = "try-job:";
302306

303307
let pr_number = pr.number();
304308

@@ -322,7 +326,7 @@ pub fn create_merge_commit_message(pr: handlers::PullRequestData, merge_type: Me
322326
MergeType::Try { .. } => String::new(),
323327
MergeType::Auto => pr.github.message.clone(),
324328
};
325-
let pr_description = IGNORE_REGEX.replace_all(&pr_description, "");
329+
let pr_description = normalize_merge_message(&pr_description);
326330

327331
let mut message = format!(
328332
r#"Auto merge of #{pr_number} - {pr_label}, r={reviewer}

src/github/rollup.rs

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::{GithubRepoName, PullRequest, PullRequestNumber};
22
use crate::PgDbClient;
3-
use crate::bors::make_text_ignored_by_bors;
3+
use crate::bors::{make_text_ignored_by_bors, normalize_merge_message};
44
use crate::github::api::client::GithubRepositoryClient;
55
use crate::github::api::operations::MergeError;
66
use crate::github::oauth::{OAuthClient, UserGitHubClient};
@@ -299,6 +299,7 @@ async fn create_rollup(
299299
pr.title,
300300
pr_github.message
301301
);
302+
let merge_msg = normalize_merge_message(&merge_msg);
302303

303304
// Merge the PR's head commit into the rollup branch
304305
let merge_attempt = user_client
@@ -675,6 +676,62 @@ mod tests {
675676
");
676677
}
677678

679+
#[sqlx::test]
680+
async fn rollup_remove_homu_ignore_block(pool: sqlx::PgPool) {
681+
let gh = run_test((pool, rollup_state()), async |ctx: &mut BorsTester| {
682+
let pr2 = ctx
683+
.open_pr(default_repo_name(), |pr| {
684+
pr.description = r"This is a very good PR.
685+
686+
<!-- homu-ignore:start -->
687+
ignore this 1
688+
<!-- homu-ignore:end -->
689+
690+
include this
691+
692+
<!-- homu-ignore:start -->
693+
ignore this 2
694+
<!-- homu-ignore:end -->
695+
696+
also include this pls"
697+
.to_string();
698+
})
699+
.await?;
700+
ctx.approve(pr2.id()).await?;
701+
702+
make_rollup(ctx, &[&pr2])
703+
.await?
704+
.assert_status(StatusCode::TEMPORARY_REDIRECT);
705+
Ok(())
706+
})
707+
.await;
708+
let rollup_branch = gh
709+
.get_repo(fork_repo())
710+
.lock()
711+
.branches()
712+
.iter()
713+
.find(|branch| branch.name().starts_with("rollup"))
714+
.unwrap()
715+
.clone();
716+
// Find the rollup merge commit
717+
let rollup_merge_commit = rollup_branch.get_commit_history().last().unwrap().clone();
718+
insta::assert_snapshot!(rollup_merge_commit.message(), @"
719+
Rollup merge of #2 - pr-2, r=default-user
720+
721+
Title of PR 2
722+
723+
This is a very good PR.
724+
725+
726+
727+
include this
728+
729+
730+
731+
also include this pls
732+
");
733+
}
734+
678735
async fn make_rollup(
679736
ctx: &mut BorsTester,
680737
prs: &[&PullRequest],

0 commit comments

Comments
 (0)