Skip to content

Commit 858ea20

Browse files
7evenkarturcic
authored andcommitted
Parse Bitbucket v7 pull request merge message.
1 parent 1707bbc commit 858ea20

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/GitVersionCore.Tests/MergeMessageTests.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,34 @@ public void ParsesBitBucketPullMergeMessage(
150150
sut.Version.ShouldBe(expectedVersion);
151151
}
152152

153+
private static readonly object[] BitBucketPullMergeMessagesv7 =
154+
{
155+
new object[] { @"Pull request #68: Release/2.2
156+
157+
Merge in aaa/777 from release/2.2 to master
158+
159+
* commit '750aa37753dec1a85b22cc16db851187649d9e97':", "release/2.2", "master", new SemanticVersion(2,2,0), 68 }
160+
};
161+
162+
[TestCaseSource(nameof(BitBucketPullMergeMessagesv7))]
163+
public void ParsesBitBucketPullMergeMessagev7(
164+
string message,
165+
string expectedMergedBranch,
166+
string expectedTargetBranch,
167+
SemanticVersion expectedVersion,
168+
int? expectedPullRequestNumber)
169+
{
170+
// Act
171+
var sut = new MergeMessage(message, config);
172+
173+
// Assert
174+
sut.FormatName.ShouldBe("BitBucketPullv7");
175+
sut.TargetBranch.ShouldBe(expectedTargetBranch);
176+
sut.MergedBranch.ShouldBe(expectedMergedBranch);
177+
sut.IsMergedPullRequest.ShouldBeTrue();
178+
sut.PullRequestNumber.ShouldBe(expectedPullRequestNumber);
179+
sut.Version.ShouldBe(expectedVersion);
180+
}
153181

154182
private static readonly object[] SmartGitMergeMessages =
155183
{

src/GitVersionCore/MergeMessage.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class MergeMessage
1313
new MergeMessageFormat("Default", @"^Merge (branch|tag) '(?<SourceBranch>[^']*)'(?: into (?<TargetBranch>[^\s]*))*"),
1414
new MergeMessageFormat("SmartGit", @"^Finish (?<SourceBranch>[^\s]*)(?: into (?<TargetBranch>[^\s]*))*"),
1515
new MergeMessageFormat("BitBucketPull", @"^Merge pull request #(?<PullRequestNumber>\d+) (from|in) (?<Source>.*) from (?<SourceBranch>[^\s]*) to (?<TargetBranch>[^\s]*)"),
16+
new MergeMessageFormat("BitBucketPullv7", @"^Pull request #(?<PullRequestNumber>\d+).*\r?\n\r?\nMerge in (?<Source>.*) from (?<SourceBranch>[^\s]*) to (?<TargetBranch>[^\s]*)"),
1617
new MergeMessageFormat("GitHubPull", @"^Merge pull request #(?<PullRequestNumber>\d+) (from|in) (?:(?<SourceBranch>[^\s]*))(?: into (?<TargetBranch>[^\s]*))*"),
1718
new MergeMessageFormat("RemoteTracking", @"^Merge remote-tracking branch '(?<SourceBranch>[^\s]*)'(?: into (?<TargetBranch>[^\s]*))*")
1819
};

0 commit comments

Comments
 (0)