@@ -12,6 +12,9 @@ class MergeMessage
12
12
static Regex parseGitHubPullMergeMessage = new Regex (
13
13
@"^Merge pull request #(?<PullRequestNumber>\d*) (from|in) (?<Source>.*)" ,
14
14
RegexOptions . IgnoreCase | RegexOptions . Compiled ) ;
15
+ static Regex parseBitBucketPullMergeMessage = new Regex (
16
+ @"^Merge pull request #(?<PullRequestNumber>\d*) (from|in) (?<Source>.*) from (?<SourceBranch>.*) to (?<TargetBranch>.*)" ,
17
+ RegexOptions . IgnoreCase | RegexOptions . Compiled ) ;
15
18
static Regex smartGitMergeMessage = new Regex (
16
19
@"^Finish (?<Branch>.*)" ,
17
20
RegexOptions . IgnoreCase | RegexOptions . Compiled ) ;
@@ -67,15 +70,19 @@ private string ParseBranch()
67
70
return match . Groups [ "Branch" ] . Value ;
68
71
}
69
72
73
+ match = parseBitBucketPullMergeMessage . Match ( mergeMessage ) ;
74
+ if ( match . Success )
75
+ {
76
+ IsMergedPullRequest = true ;
77
+ PullRequestNumber = GetPullRequestNumber ( match ) ;
78
+ return match . Groups [ "SourceBranch" ] . Value ;
79
+ }
80
+
70
81
match = parseGitHubPullMergeMessage . Match ( mergeMessage ) ;
71
82
if ( match . Success )
72
83
{
73
84
IsMergedPullRequest = true ;
74
- int pullNumber ;
75
- if ( int . TryParse ( match . Groups [ "PullRequestNumber" ] . Value , out pullNumber ) )
76
- {
77
- PullRequestNumber = pullNumber ;
78
- }
85
+ PullRequestNumber = GetPullRequestNumber ( match ) ;
79
86
var from = match . Groups [ "Source" ] . Value ;
80
87
// TODO We could remove/separate the remote name at this point?
81
88
return from ;
@@ -91,6 +98,16 @@ private string ParseBranch()
91
98
return "" ;
92
99
}
93
100
101
+ private int GetPullRequestNumber ( Match match )
102
+ {
103
+ int pullNumber ;
104
+ if ( int . TryParse ( match . Groups [ "PullRequestNumber" ] . Value , out pullNumber ) )
105
+ {
106
+ PullRequestNumber = pullNumber ;
107
+ }
108
+ return pullNumber ;
109
+ }
110
+
94
111
public string TargetBranch { get ; }
95
112
public string MergedBranch { get ; }
96
113
public bool IsMergedPullRequest { get ; private set ; }
0 commit comments