diff options
author | Justin Worthe <justin@jemstep.com> | 2020-01-31 17:11:35 +0200 |
---|---|---|
committer | Justin Worthe <justin@jemstep.com> | 2020-01-31 17:11:35 +0200 |
commit | 11701a7d00aebfa4022bc7157869e769349ff67f (patch) | |
tree | 505df8675b8f47ac527c4ceb2b8b1c423c2c76bd | |
parent | dd36fa1da0a8a95e5010c07e0ec984f7038fad4a (diff) |
PYKE-11909: Updated multiple author policy to allow merging between mainlines
-rw-r--r-- | src/policies.rs | 6 | ||||
-rw-r--r-- | tests/policies_test.rs | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/policies.rs b/src/policies.rs index eb5dcee..d11261f 100644 --- a/src/policies.rs +++ b/src/policies.rs @@ -323,6 +323,12 @@ fn verify_different_authors<G: Git>( } else if commits.len() == 0 { info!("Multiple author verification passed for {}: No new commits pushed, does not require multiple authors", new_commit_id); Ok(PolicyResult::Ok) + } else if commits.len() == 1 + && (commits[0].is_identical_tree_to_any_parent + || git.is_trivial_merge_commit(&commits[0])?) + { + info!("Multiple author verification passed for {}: The commit is a trivial merge between mainline branches", new_commit_id); + Ok(PolicyResult::Ok) } else { let authors: HashSet<_> = commits .iter() diff --git a/tests/policies_test.rs b/tests/policies_test.rs index b5708dd..abdd047 100644 --- a/tests/policies_test.rs +++ b/tests/policies_test.rs @@ -261,13 +261,13 @@ fn verify_git_commits_author_merged_own_code_not_on_head() { } #[test] -fn verify_git_commits_author_merged_own_code_on_configured_mainline() { +fn verify_git_commits_author_trivial_merge_between_mainlines() { before_all(); let result = policies::verify_git_commits::<LiveGit, MockGpg>( &LiveGit::new( "./", GitConfig { - mainlines: vec!["valid-*".into()], + mainlines: vec!["master".into(), "valid-*".into()], }, ) .unwrap(), @@ -278,7 +278,7 @@ fn verify_git_commits_author_merged_own_code_on_configured_mainline() { "refs/heads/valid-branch", ) .unwrap(); - assert!(result.is_err()); + assert!(result.is_ok(), "Error: {:?}", result); } #[test] |