From 5401ee26228e8e15490a45cb6132df27f5865a28 Mon Sep 17 00:00:00 2001 From: Matthias Koch Date: Thu, 5 Dec 2024 00:23:26 +0100 Subject: [PATCH] chore: comment on resolved issues --- build/Build.GitFlow.cs | 4 ++-- build/Build.cs | 9 ++++++++- source/Nuke.Common/Tools/GitHub/GitHubTasks.cs | 10 ++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/build/Build.GitFlow.cs b/build/Build.GitFlow.cs index c87df305a..2e7602d27 100644 --- a/build/Build.GitFlow.cs +++ b/build/Build.GitFlow.cs @@ -23,14 +23,14 @@ partial class Build [Parameter] readonly bool Major; string MajorMinorPatchVersion => Major ? $"{GitVersion.Major + 1}.0.0" : GitVersion.MajorMinorPatch; + string MilestoneTitle => $"v{MajorMinorPatchVersion}"; Target Milestone => _ => _ .Unlisted() .OnlyWhenStatic(() => GitRepository.IsOnReleaseBranch() || GitRepository.IsOnHotfixBranch()) .Executes(async () => { - var milestoneTitle = $"v{MajorMinorPatchVersion}"; - var milestone = await GitRepository.GetGitHubMilestone(milestoneTitle); + var milestone = await GitRepository.GetGitHubMilestone(MilestoneTitle); if (milestone == null) return; diff --git a/build/Build.cs b/build/Build.cs index 62a5be0f7..47a28bda4 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -18,6 +18,7 @@ using Nuke.Common.ProjectModel; using Nuke.Common.Tooling; using Nuke.Common.Tools.DotNet; +using Nuke.Common.Tools.GitHub; using Nuke.Common.Tools.GitVersion; using Nuke.Common.Utilities; using Nuke.Components; @@ -178,7 +179,13 @@ void DeletePackage(string id, string version) .Inherit() .TriggeredBy() .ProceedAfterFailure() - .OnlyWhenStatic(() => GitRepository.IsOnMasterBranch()); + .OnlyWhenStatic(() => GitRepository.IsOnMasterBranch()) + .Executes(async () => + { + var issues = await GitRepository.GetGitHubMilestoneIssues(MilestoneTitle); + foreach (var issue in issues) + await GitHubActions.Instance.CreateComment(issue.Number, $"Released in {MilestoneTitle}! 🎉"); + }); Target Install => _ => _ .DependsOn() diff --git a/source/Nuke.Common/Tools/GitHub/GitHubTasks.cs b/source/Nuke.Common/Tools/GitHub/GitHubTasks.cs index 52eb97d2e..27bdf4bd8 100644 --- a/source/Nuke.Common/Tools/GitHub/GitHubTasks.cs +++ b/source/Nuke.Common/Tools/GitHub/GitHubTasks.cs @@ -84,6 +84,16 @@ public static async Task GetGitHubMilestone(this GitRepository reposi return milestones.FirstOrDefault(x => x.Title == name); } + public static async Task> GetGitHubMilestoneIssues(this GitRepository repository, string name) + { + Assert.True(repository.IsGitHubRepository()); + var milestone = await repository.GetGitHubMilestone(name).NotNull(); + return await GitHubClient.Issue.GetAllForRepository( + repository.GetGitHubOwner(), + repository.GetGitHubName(), + new RepositoryIssueRequest { State = ItemStateFilter.All, Milestone = milestone.Number.ToString() }); + } + public static async Task TryCreateGitHubMilestone(this GitRepository repository, string title) { try