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

Commit 07ac3e9

Browse files
committed
do open and closed issues
1 parent bb5bdd9 commit 07ac3e9

File tree

2 files changed

+36
-22
lines changed

2 files changed

+36
-22
lines changed

ReleaseNotesCompiler/OctokitExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ public static string ExtractSummary(this Issue issue)
5757
{
5858
builder.Append("```\r\n\r\n");
5959
}
60-
builder.AppendFormat("Content trimmed. See [full issue]({0})", issue.HtmlUrl);
60+
builder.Append("*Content trimmed. See full issue*");
61+
//TODO: include URL when octokit is updated
62+
//builder.AppendFormat("*Content trimmed. See [full issue]({0})*", issue.HtmlUrl);
6163
break;
6264
}
6365

ReleaseNotesCompiler/ReleaseNotesBuilder.cs

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,36 +25,48 @@ public ReleaseNotesBuilder(GitHubClient gitHubClient, string user, string reposi
2525
public async Task<string> BuildReleaseNotes()
2626
{
2727
var milestone = await GetMilestone();
28-
var repositoryIssueRequest = new RepositoryIssueRequest
29-
{
30-
Milestone = milestone.Number.ToString()
31-
};
32-
var issues = await gitHubClient.Issue.GetForRepository(user, repository, repositoryIssueRequest);
33-
var list = issues.Where(x => !x.IsPullRequest()).ToList();
34-
35-
CheckForBadIssues(list);
36-
28+
var issues = await GetIssues(milestone);
3729
var stringBuilder = new StringBuilder();
3830
Append(issues, "Bug", stringBuilder);
3931
Append(issues, "Feature", stringBuilder);
4032
Append(issues, "Improvement", stringBuilder);
4133
return stringBuilder.ToString();
4234
}
4335

44-
void CheckForBadIssues(List<Issue> list)
36+
async Task<List<Issue>> GetIssues(Milestone milestone)
4537
{
46-
foreach (var issue in list.Where(x => x.Labels.All(l => l.Name != "Bug" && l.Name != "Internal refactoring" && l.Name != "Feature" && l.Name != "Improvement")))
38+
var closedIssueRequest = new RepositoryIssueRequest
4739
{
48-
string foundLabelList;
49-
if (issue.Labels.Count == 0)
50-
{
51-
foundLabelList = "none";
52-
}
53-
else
54-
{
55-
foundLabelList = string.Format("'{0}'", string.Join("', '", issue.Labels.Select(x => x.Name)));
56-
}
57-
var message = string.Format("Bad Issue {0} expected to find a label with either 'Bug', 'Internal refactoring', 'Improvement' or 'Feature'. Instead found {1}.", HtmlUrl(issue), foundLabelList);
40+
Milestone = milestone.Number.ToString(),
41+
State = ItemState.Closed
42+
};
43+
var openIssueRequest = new RepositoryIssueRequest
44+
{
45+
Milestone = milestone.Number.ToString(),
46+
State = ItemState.Open
47+
};
48+
var closedIssues = await gitHubClient.Issue.GetForRepository(user, repository, closedIssueRequest);
49+
var openIssues = await gitHubClient.Issue.GetForRepository(user, repository, openIssueRequest);
50+
51+
var issues = new List<Issue>();
52+
foreach (var issue in openIssues.Union(closedIssues).Where(x=>!x.IsPullRequest()))
53+
{
54+
CheckForValidLabels(issue);
55+
issues.Add(issue);
56+
}
57+
return issues;
58+
}
59+
60+
void CheckForValidLabels(Issue issue)
61+
{
62+
var count = issue.Labels.Count(l =>
63+
l.Name == "Bug" ||
64+
l.Name == "Internal refactoring" ||
65+
l.Name == "Feature" ||
66+
l.Name == "Improvement");
67+
if (count != 1)
68+
{
69+
var message = string.Format("Bad Issue {0} expected to find a label with either 'Bug', 'Internal refactoring', 'Improvement' or 'Feature'.", HtmlUrl(issue));
5870
throw new Exception(message);
5971
}
6072
}

0 commit comments

Comments
 (0)