public async Task CreateIssueIfNotExists(Issue issue, Octokit.Repository githubRepo) { var foundIssue = await GetIssue(issue.Title, githubRepo); if (foundIssue != null) { Log($"Issue '{foundIssue.Title}' already exists (#{foundIssue.Id})"); return; } var relatedMilestone = await GetMilestone(issue.MilestoneName, githubRepo); if (relatedMilestone == null) { throw new Exception($"Milestone '{issue.MilestoneName}' was not found"); } await CreateIssue(issue, githubRepo, relatedMilestone); }
public async Task CreateIssue(Issue issue, Octokit.Repository githubRepo, Milestone relatedMilestone) { var optimizedDescription = issue.Description.Replace("- [ ]", "\r\n- [ ]"); var newIssue = new NewIssue(issue.Title) { Body = optimizedDescription, Milestone = relatedMilestone.Number }; foreach (var label in issue.Labels) { newIssue.Labels.Add(label); } var createdIssue = await GitHubClient.Issue.Create(githubRepo.Id, newIssue); Log($"Issue '{createdIssue.Title}' created (#{createdIssue.Number})"); }