@@ -24,6 +24,25 @@ public GitRepoMetadataProvider(IRepository repository, Config configuration)
2424 this . configuration = configuration ;
2525 }
2626
27+ public static IEnumerable < Tuple < Tag , SemanticVersion > > GetValidVersionTags ( IRepository repository , string tagPrefixRegex , DateTimeOffset ? olderThan = null )
28+ {
29+ var tags = new List < Tuple < Tag , SemanticVersion > > ( ) ;
30+
31+ foreach ( var tag in repository . Tags )
32+ {
33+ if ( olderThan . HasValue && ( ( Commit ) tag . PeeledTarget ( ) ) . When ( ) > olderThan . Value )
34+ continue ;
35+
36+ SemanticVersion semver ;
37+ if ( SemanticVersion . TryParse ( tag . FriendlyName , tagPrefixRegex , out semver ) )
38+ {
39+ tags . Add ( Tuple . Create ( tag , semver ) ) ;
40+ }
41+ }
42+
43+ return tags ;
44+ }
45+
2746 public IEnumerable < SemanticVersion > GetVersionTagsOnBranch ( Branch branch , string tagPrefixRegex )
2847 {
2948 if ( semanticVersionTagsOnBranchCache . ContainsKey ( branch ) )
@@ -34,15 +53,7 @@ public IEnumerable<SemanticVersion> GetVersionTagsOnBranch(Branch branch, string
3453
3554 using ( Logger . IndentLog ( string . Format ( "Getting version tags from branch '{0}'." , branch . CanonicalName ) ) )
3655 {
37- var tags = new List < Tuple < Tag , SemanticVersion > > ( ) ;
38- foreach ( var t in this . Repository . Tags )
39- {
40- SemanticVersion semver ;
41- if ( SemanticVersion . TryParse ( t . FriendlyName , tagPrefixRegex , out semver ) )
42- {
43- tags . Add ( Tuple . Create ( t , semver ) ) ;
44- }
45- }
56+ var tags = GetValidVersionTags ( this . Repository , tagPrefixRegex ) ;
4657
4758 var versionTags = branch . Commits . SelectMany ( c => tags . Where ( t => c . Sha == t . Item1 . Target . Sha ) . Select ( t => t . Item2 ) ) . ToList ( ) ;
4859
@@ -225,7 +236,7 @@ List<BranchCommit> GetMergeCommitsForBranch(Branch branch, Branch[] excludedBran
225236
226237 var currentBranchConfig = configuration . GetConfigForBranch ( branch . NameWithoutRemote ( ) ) ;
227238 var regexesToCheck = currentBranchConfig == null
228- ? new [ ] { ".*" } // Match anything if we can't find a branch config
239+ ? new [ ] { ".*" } // Match anything if we can't find a branch config
229240 : currentBranchConfig . SourceBranches . Select ( sb => configuration . Branches [ sb ] . Regex ) ;
230241 var branchMergeBases = Repository . Branches
231242 . ExcludingBranches ( excludedBranches )
0 commit comments