Skip to content
This repository was archived by the owner on Aug 29, 2020. It is now read-only.

Commit 08c94f0

Browse files
committed
fix get previous version
1 parent 5e1a5f9 commit 08c94f0

File tree

6 files changed

+42
-78
lines changed

6 files changed

+42
-78
lines changed

src/App/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ static int Main(string[] args)
6666
{
6767
var options = new Options();
6868

69-
int result = 1;
69+
var result = 1;
7070

7171
if (!Parser.Default.ParseArgumentsStrict(args, options, (verb, subOptions) =>
7272
{
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using System;
2+
3+
namespace ReleaseNotesCompiler
4+
{
5+
using Octokit;
6+
7+
static class MilestoneExtensions
8+
{
9+
internal static Version Version(this Milestone ver)
10+
{
11+
var nameWithoutPrerelease = ver.Title.Split('-')[0];
12+
Version parsedVersion;
13+
14+
if (!System.Version.TryParse(nameWithoutPrerelease, out parsedVersion))
15+
{
16+
return new Version(0, 0);
17+
}
18+
19+
return parsedVersion;
20+
}
21+
}
22+
}

src/Compiler/ReleaseNotesBuilder.cs

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public ReleaseNotesBuilder(GitHubClient gitHubClient, string user, string reposi
2828

2929
public async Task<string> BuildReleaseNotes()
3030
{
31-
await GetMilestones();
31+
GetMilestones();
3232

3333
GetTargetMilestone();
3434
var issues = await GetIssues(targetMilestone);
@@ -85,24 +85,12 @@ async Task<int> GetNumberOfCommits(Milestone previousMilestone)
8585

8686
Milestone GetPreviousMilestone()
8787
{
88-
using (var orderedMilestones = milestones.OrderByDescending(x => x.Title, VersionComparer.Default).GetEnumerator())
89-
{
90-
Milestone previousMilestone = null;
91-
92-
while (orderedMilestones.MoveNext())
93-
{
94-
if (orderedMilestones.Current.Title == targetMilestone.Title)
95-
{
96-
break;
97-
}
98-
}
99-
100-
if (orderedMilestones.MoveNext())
101-
{
102-
previousMilestone = orderedMilestones.Current;
103-
}
104-
return previousMilestone;
105-
}
88+
var currentVersion = targetMilestone.Version();
89+
return milestones
90+
.OrderByDescending(m => m.Version())
91+
.Distinct().ToList()
92+
.SkipWhile(x => x.Version() >= currentVersion)
93+
.FirstOrDefault();
10694
}
10795

10896
string GetCommitsLink(Milestone previousMilestone)
@@ -145,10 +133,18 @@ static async Task AddFooter(StringBuilder stringBuilder)
145133
}
146134
}
147135

148-
async Task GetMilestones()
136+
void GetMilestones()
149137
{
150138
var milestonesClient = gitHubClient.Issue.Milestone;
151-
milestones = (await milestonesClient.GetForRepository(user, repository)).ToList();
139+
var closed = milestonesClient.GetForRepository(user, repository,new MilestoneRequest
140+
{
141+
State = ItemState.Closed
142+
}).Result;
143+
var open = milestonesClient.GetForRepository(user, repository,new MilestoneRequest
144+
{
145+
State = ItemState.Open
146+
}).Result;
147+
milestones = closed.Concat(open).ToList();
152148
}
153149

154150
async Task<List<Issue>> GetIssues(Milestone milestone)

src/Compiler/ReleaseNotesCompiler.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
<Compile Include="ReleaseNotesBuilder.cs" />
5353
<Compile Include="OctokitExtensions.cs" />
5454
<Compile Include="ReleaseUpdateRequired.cs" />
55-
<Compile Include="VersionComparer.cs" />
55+
<Compile Include="MilestoneExtensions.cs" />
5656
</ItemGroup>
5757
<ItemGroup>
5858
<None Include="packages.config">

src/Compiler/VersionComparer.cs

Lines changed: 0 additions & 54 deletions
This file was deleted.

src/Tests/ReleaseNotesBuilderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public async void SingleMilestone()
1313
{
1414
var gitHubClient = ClientBuilder.Build();
1515

16-
var releaseNotesBuilder = new ReleaseNotesBuilder(gitHubClient, "Particular", "NServiceBus", "5.0.0");
16+
var releaseNotesBuilder = new ReleaseNotesBuilder(gitHubClient, "Particular", "NServiceBus", "4.6.5");
1717
var result = await releaseNotesBuilder.BuildReleaseNotes();
1818
Debug.WriteLine(result);
1919
ClipBoardHelper.SetClipboard(result);

0 commit comments

Comments
 (0)