Skip to content

Commit 35f9940

Browse files
committed
Update sha format to merge-<number>-<source-branch>
1 parent 4647a37 commit 35f9940

File tree

5 files changed

+58
-70
lines changed

5 files changed

+58
-70
lines changed

src/bors/handlers/review.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -717,13 +717,9 @@ mod tests {
717717
gh.check_sha_history(
718718
default_repo_name(),
719719
TRY_MERGE_BRANCH_NAME,
720-
&["main-sha1", "merge-main-sha1-pr-1-sha-0"],
721-
);
722-
gh.check_sha_history(
723-
default_repo_name(),
724-
TRY_BRANCH_NAME,
725-
&["merge-main-sha1-pr-1-sha-0"],
720+
&["main-sha1", "merge-0-1"],
726721
);
722+
gh.check_sha_history(default_repo_name(), TRY_BRANCH_NAME, &["merge-0-1"]);
727723
}
728724

729725
#[sqlx::test]
@@ -1130,7 +1126,7 @@ mod tests {
11301126

11311127
tester.post_comment("@bors try").await?;
11321128
insta::assert_snapshot!(tester.get_comment().await?, @r"
1133-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-0
1129+
:hourglass: Trying commit pr-1-sha with merge merge-0-1
11341130
11351131
To cancel the try build, run the command `@bors try cancel`.
11361132
");

src/bors/handlers/trybuild.rs

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -422,9 +422,9 @@ mod tests {
422422
tester.get_comment().await?,
423423
@r#"
424424
:sunny: Try build successful ([Workflow1](https://github.com/workflows/Workflow1/1))
425-
Build commit: merge-main-sha1-pr-1-sha-0 (`merge-main-sha1-pr-1-sha-0`, parent: `main-sha1`)
425+
Build commit: merge-0-1 (`merge-0-1`, parent: `main-sha1`)
426426
427-
<!-- homu: {"type":"TryBuildCompleted","merge_sha":"merge-main-sha1-pr-1-sha-0"} -->
427+
<!-- homu: {"type":"TryBuildCompleted","merge_sha":"merge-0-1"} -->
428428
"#
429429
);
430430
Ok(())
@@ -507,7 +507,7 @@ mod tests {
507507
insta::assert_snapshot!(
508508
tester.get_comment().await?,
509509
@r"
510-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-0
510+
:hourglass: Trying commit pr-1-sha with merge merge-0-1
511511
512512
To cancel the try build, run the command `@bors try cancel`.
513513
"
@@ -524,7 +524,7 @@ mod tests {
524524
insta::assert_snapshot!(
525525
tester.get_comment().await?,
526526
@r"
527-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-0
527+
:hourglass: Trying commit pr-1-sha with merge merge-0-1
528528
529529
To cancel the try build, run the command `@bors try cancel`.
530530
"
@@ -631,13 +631,9 @@ try-job: Bar
631631
gh.check_sha_history(
632632
default_repo_name(),
633633
TRY_MERGE_BRANCH_NAME,
634-
&["main-sha1", "merge-main-sha1-pr-1-sha-0"],
635-
);
636-
gh.check_sha_history(
637-
default_repo_name(),
638-
TRY_BRANCH_NAME,
639-
&["merge-main-sha1-pr-1-sha-0"],
634+
&["main-sha1", "merge-0-1"],
640635
);
636+
gh.check_sha_history(default_repo_name(), TRY_BRANCH_NAME, &["merge-0-1"]);
641637
}
642638

643639
#[sqlx::test]
@@ -653,10 +649,7 @@ try-job: Bar
653649
gh.check_sha_history(
654650
default_repo_name(),
655651
TRY_MERGE_BRANCH_NAME,
656-
&[
657-
"ea9c1b050cc8b420c2c211d2177811e564a4dc60",
658-
"merge-ea9c1b050cc8b420c2c211d2177811e564a4dc60-pr-1-sha-0",
659-
],
652+
&["ea9c1b050cc8b420c2c211d2177811e564a4dc60", "merge-0-1"],
660653
);
661654
}
662655

@@ -671,7 +664,7 @@ try-job: Bar
671664
tester.expect_comments(1).await;
672665
tester.post_comment("@bors try parent=last").await?;
673666
insta::assert_snapshot!(tester.get_comment().await?, @r"
674-
:hourglass: Trying commit pr-1-sha with merge merge-ea9c1b050cc8b420c2c211d2177811e564a4dc60-pr-1-sha-1…
667+
:hourglass: Trying commit pr-1-sha with merge merge-1-1…
675668
676669
To cancel the try build, run the command `@bors try cancel`.
677670
");
@@ -683,9 +676,9 @@ try-job: Bar
683676
TRY_MERGE_BRANCH_NAME,
684677
&[
685678
"ea9c1b050cc8b420c2c211d2177811e564a4dc60",
686-
"merge-ea9c1b050cc8b420c2c211d2177811e564a4dc60-pr-1-sha-0",
679+
"merge-0-1",
687680
"ea9c1b050cc8b420c2c211d2177811e564a4dc60",
688-
"merge-ea9c1b050cc8b420c2c211d2177811e564a4dc60-pr-1-sha-1",
681+
"merge-1-1",
689682
],
690683
);
691684
}
@@ -773,7 +766,7 @@ try-job: Bar
773766
tester.expect_comments(1).await;
774767
tester.post_comment("@bors try").await?;
775768
insta::assert_snapshot!(tester.get_comment().await?, @r"
776-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-1…
769+
:hourglass: Trying commit pr-1-sha with merge merge-1-1…
777770
778771
To cancel the try build, run the command `@bors try cancel`.
779772
");
@@ -795,7 +788,7 @@ try-job: Bar
795788
)
796789
.await?;
797790
insta::assert_snapshot!(tester.get_comment().await?, @r"
798-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-0
791+
:hourglass: Trying commit pr-1-sha with merge merge-0-1
799792
800793
To cancel the try build, run the command `@bors try cancel`.
801794
");
@@ -816,7 +809,7 @@ try-job: Bar
816809

817810
tester.post_comment("@bors try").await?;
818811
insta::assert_snapshot!(tester.get_comment().await?, @r"
819-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-1…
812+
:hourglass: Trying commit pr-1-sha with merge merge-1-1…
820813
821814
(The previously running try build was automatically cancelled.)
822815
@@ -840,18 +833,22 @@ try-job: Bar
840833

841834
tester.post_comment("@bors try").await?;
842835
insta::assert_snapshot!(tester.get_comment().await?, @r"
843-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-1…
836+
:hourglass: Trying commit pr-1-sha with merge merge-1-1…
844837
845838
To cancel the try build, run the command `@bors try cancel`.
846839
");
847840
tester
848-
.workflow_full_success(WorkflowRunData::from(tester.try_branch()).with_run_id(2).with_check_suite_id(2))
841+
.workflow_full_success(
842+
WorkflowRunData::from(tester.try_branch())
843+
.with_run_id(2)
844+
.with_check_suite_id(2),
845+
)
849846
.await?;
850847
insta::assert_snapshot!(tester.get_comment().await?, @r#"
851848
:sunny: Try build successful ([Workflow1](https://github.com/workflows/Workflow1/2))
852-
Build commit: merge-main-sha1-pr-1-sha-1 (`merge-main-sha1-pr-1-sha-1`, parent: `main-sha1`)
849+
Build commit: merge-1-1 (`merge-1-1`, parent: `main-sha1`)
853850
854-
<!-- homu: {"type":"TryBuildCompleted","merge_sha":"merge-main-sha1-pr-1-sha-1"} -->
851+
<!-- homu: {"type":"TryBuildCompleted","merge_sha":"merge-1-1"} -->
855852
"#);
856853
Ok(())
857854
})
@@ -988,7 +985,7 @@ try = ["+foo", "+bar", "-baz"]
988985
.run_test(async |tester| {
989986
tester.post_comment("@bors try").await?;
990987
insta::assert_snapshot!(tester.get_comment().await?, @r"
991-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-0
988+
:hourglass: Trying commit pr-1-sha with merge merge-0-1
992989
993990
To cancel the try build, run the command `@bors try cancel`.
994991
");
@@ -1013,7 +1010,7 @@ try_succeed = ["+foo", "+bar", "-baz"]
10131010
.run_test(async |tester| {
10141011
tester.post_comment("@bors try").await?;
10151012
insta::assert_snapshot!(tester.get_comment().await?, @r"
1016-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-0
1013+
:hourglass: Trying commit pr-1-sha with merge merge-0-1
10171014
10181015
To cancel the try build, run the command `@bors try cancel`.
10191016
");
@@ -1043,7 +1040,7 @@ try_failed = ["+foo", "+bar", "-baz"]
10431040
.run_test(async |tester| {
10441041
tester.post_comment("@bors try").await?;
10451042
insta::assert_snapshot!(tester.get_comment().await?, @r"
1046-
:hourglass: Trying commit pr-1-sha with merge merge-main-sha1-pr-1-sha-0
1043+
:hourglass: Trying commit pr-1-sha with merge merge-0-1
10471044
10481045
To cancel the try build, run the command `@bors try cancel`.
10491046
");

src/bors/handlers/workflow.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,10 @@ mod tests {
402402
let w2 = WorkflowRunData::from(tester.try_branch()).with_run_id(2);
403403

404404
// Let the GH mock know about the existence of the second workflow
405-
tester.default_repo().lock().update_workflow_run(w2.clone(), WorkflowStatus::Pending);
405+
tester
406+
.default_repo()
407+
.lock()
408+
.update_workflow_run(w2.clone(), WorkflowStatus::Pending);
406409
// Finish w1 while w2 is not yet in the DB
407410
tester.workflow_full_success(w1).await?;
408411
tester.workflow_full_success(w2).await?;
@@ -413,9 +416,9 @@ mod tests {
413416
:sunny: Try build successful
414417
- [Workflow1](https://github.com/workflows/Workflow1/1) :white_check_mark:
415418
- [Workflow1](https://github.com/workflows/Workflow1/2) :white_check_mark:
416-
Build commit: merge-main-sha1-pr-1-sha-0 (`merge-main-sha1-pr-1-sha-0`, parent: `main-sha1`)
419+
Build commit: merge-0-1 (`merge-0-1`, parent: `main-sha1`)
417420
418-
<!-- homu: {"type":"TryBuildCompleted","merge_sha":"merge-main-sha1-pr-1-sha-0"} -->
421+
<!-- homu: {"type":"TryBuildCompleted","merge_sha":"merge-0-1"} -->
419422
"#
420423
);
421424
Ok(())
@@ -443,14 +446,14 @@ mod tests {
443446
:sunny: Try build successful
444447
- [Workflow1](https://github.com/workflows/Workflow1/1) :white_check_mark:
445448
- [Workflow1](https://github.com/workflows/Workflow1/2) :white_check_mark:
446-
Build commit: merge-main-sha1-pr-1-sha-0 (`merge-main-sha1-pr-1-sha-0`, parent: `main-sha1`)
449+
Build commit: merge-0-1 (`merge-0-1`, parent: `main-sha1`)
447450
448-
<!-- homu: {"type":"TryBuildCompleted","merge_sha":"merge-main-sha1-pr-1-sha-0"} -->
451+
<!-- homu: {"type":"TryBuildCompleted","merge_sha":"merge-0-1"} -->
449452
"#
450453
);
451454
Ok(())
452455
})
453-
.await;
456+
.await;
454457
}
455458

456459
// Finish the build early when we encounter the first failure

src/bors/merge_queue.rs

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ mod tests {
428428
tester.process_merge_queue().await;
429429
insta::assert_snapshot!(
430430
tester.get_comment().await?,
431-
@":hourglass: Testing commit pr-1-sha with merge merge-main-sha1-pr-1-sha-0..."
431+
@":hourglass: Testing commit pr-1-sha with merge merge-0-1..."
432432
);
433433
Ok(())
434434
})
@@ -467,7 +467,7 @@ mod tests {
467467
@r"
468468
:sunny: Test successful - [Workflow1](https://github.com/workflows/Workflow1/1)
469469
Approved by: `default-user`
470-
Pushing merge-main-sha1-pr-1-sha-0 to `main`...
470+
Pushing merge-0-1 to `main`...
471471
"
472472
);
473473
Ok(())
@@ -566,21 +566,13 @@ mod tests {
566566
Ok(())
567567
})
568568
.await;
569-
gh.check_sha_history(
570-
default_repo_name(),
571-
"main",
572-
&["main-sha1", "merge-main-sha1-pr-1-sha-0"],
573-
);
569+
gh.check_sha_history(default_repo_name(), "main", &["main-sha1", "merge-0-1"]);
574570
gh.check_sha_history(
575571
default_repo_name(),
576572
AUTO_MERGE_BRANCH_NAME,
577-
&["main-sha1", "merge-main-sha1-pr-1-sha-0"],
578-
);
579-
gh.check_sha_history(
580-
default_repo_name(),
581-
AUTO_BRANCH_NAME,
582-
&["merge-main-sha1-pr-1-sha-0"],
573+
&["main-sha1", "merge-0-1"],
583574
);
575+
gh.check_sha_history(default_repo_name(), AUTO_BRANCH_NAME, &["merge-0-1"]);
584576
}
585577

586578
#[sqlx::test]
@@ -636,12 +628,7 @@ mod tests {
636628
gh.check_sha_history(
637629
default_repo_name(),
638630
"main",
639-
&[
640-
"main-sha1",
641-
"merge-main-sha1-pr-1-sha-0",
642-
"merge-merge-main-sha1-pr-1-sha-0-pr-2-sha-1",
643-
"merge-merge-merge-main-sha1-pr-1-sha-0-pr-2-sha-1-pr-3-sha-2",
644-
],
631+
&["main-sha1", "merge-0-1", "merge-1-2", "merge-2-3"],
645632
);
646633
}
647634

@@ -697,12 +684,7 @@ mod tests {
697684
gh.check_sha_history(
698685
default_repo_name(),
699686
"main",
700-
&[
701-
"main-sha1",
702-
"merge-main-sha1-pr-1-sha-0",
703-
"merge-merge-main-sha1-pr-1-sha-0-pr-3-sha-1",
704-
"merge-merge-merge-main-sha1-pr-1-sha-0-pr-3-sha-1-pr-2-sha-2",
705-
],
687+
&["main-sha1", "merge-0-1", "merge-1-3", "merge-2-2"],
706688
);
707689
}
708690
}

src/tests/mocks/repository.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,7 @@ async fn mock_merge_branch(repo: Arc<Mutex<Repo>>, mock_server: &MockServer) {
554554
let head_sha = match head {
555555
None => {
556556
// head is a SHA
557-
data.head
557+
data.head.clone()
558558
}
559559
Some(branch) => {
560560
// head is a branch
@@ -569,10 +569,20 @@ async fn mock_merge_branch(repo: Arc<Mutex<Repo>>, mock_server: &MockServer) {
569569
return ResponseTemplate::new(409);
570570
}
571571

572-
let merge_sha = format!(
573-
"merge-{}-{head_sha}-{}",
574-
base_branch.sha, base_branch.merge_counter
575-
);
572+
// Extract source information for cleaner merge SHA
573+
let source_info = if head_sha.starts_with("pr-") && head_sha.ends_with("-sha") {
574+
// Extract PR number from "pr-{number}-sha" format
575+
head_sha
576+
.strip_prefix("pr-")
577+
.unwrap()
578+
.strip_suffix("-sha")
579+
.unwrap()
580+
} else {
581+
// Use the original head reference (branch name or SHA)
582+
&data.head
583+
};
584+
585+
let merge_sha = format!("merge-{}-{}", base_branch.merge_counter, source_info);
576586
base_branch.merge_counter += 1;
577587
base_branch.set_to_sha(&merge_sha);
578588
repo.set_commit_message(&merge_sha, &data.commit_message);

0 commit comments

Comments
 (0)