Skip to content

Commit 151724a

Browse files
committed
Merge branch 'develop' of https://github.com/GitTools/GitReleaseManager into develop
2 parents b295002 + e8006e2 commit 151724a

File tree

8 files changed

+27
-8
lines changed

8 files changed

+27
-8
lines changed

.github/workflows/build.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,15 @@ jobs:
4343
- name: Fetch all tags and branches
4444
run: git fetch --prune --unshallow
4545

46-
- name: Install .NET SDK 2.1.x, 3.1.x, 5.0.x, and 6.0.x
46+
- name: Install .NET SDK 2.1.x, 3.1.x, 5.0.x, 6.0.x, and 7.0.x
4747
uses: actions/setup-dotnet@v4
4848
with:
4949
dotnet-version: |
5050
2.1.x
5151
3.1.x
5252
5.0.x
5353
6.0.x
54+
7.0.x
5455
5556
- name: Cache Tools
5657
uses: actions/cache@v4
@@ -59,7 +60,7 @@ jobs:
5960
key: ${{ runner.os }}-tools-${{ hashFiles('recipe.cake') }}
6061

6162
- name: Build project
62-
uses: cake-build/cake-action@v2
63+
uses: cake-build/cake-action@v3
6364
with:
6465
script-path: recipe.cake
6566
target: CI

src/Directory.Packages.props

+5-5
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,27 @@
88
<PackageVersion Include="ApprovalTests" Version="6.0.0" />
99
<PackageVersion Include="AutoMapper" Version="13.0.1" />
1010
<PackageVersion Include="CommandLineParser" Version="2.9.1" />
11-
<PackageVersion Include="coverlet.msbuild" Version="6.0.3" />
11+
<PackageVersion Include="coverlet.msbuild" Version="6.0.4" />
1212
<PackageVersion Include="Destructurama.Attributed" Version="5.1.0" />
1313
<PackageVersion Include="IDisposableAnalyzers" Version="4.0.8" />
1414
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0" />
15-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
15+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.2" />
1616
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
1717
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
18-
<PackageVersion Include="NGitLab" Version="7.1.0" />
18+
<PackageVersion Include="NGitLab" Version="7.6.0" />
1919
<PackageVersion Include="NSubstitute" Version="5.3.0" />
2020
<PackageVersion Include="NUnit" Version="4.3.2" />
2121
<PackageVersion Include="NUnit.Analyzers" Version="4.6.0" />
2222
<PackageVersion Include="NUnit3TestAdapter" Version="4.6.0" />
2323
<PackageVersion Include="Octokit" Version="14.0.0" />
24-
<PackageVersion Include="Roslynator.Analyzers" Version="4.12.10" />
24+
<PackageVersion Include="Roslynator.Analyzers" Version="4.13.0" />
2525
<PackageVersion Include="Scriban" Version="5.12.1" />
2626
<PackageVersion Include="Serilog" Version="4.2.0" />
2727
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
2828
<PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" />
2929
<PackageVersion Include="Serilog.Sinks.File" Version="6.0.0" />
3030
<PackageVersion Include="seriloganalyzer" Version="0.15.0" />
31-
<PackageVersion Include="Shouldly" Version="4.2.1" />
31+
<PackageVersion Include="Shouldly" Version="4.3.0" />
3232
<PackageVersion Include="StyleCop.Analyzers" Version="1.1.118" />
3333
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
3434
<PackageVersion Include="TextCopy" Version="6.2.1" />

src/GitReleaseManager.Core/Configuration/CloseConfig.cs

+7
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,12 @@ public sealed class CloseConfig
2222
[Sample(":tada: This issue has been resolved in version {milestone} :tada:\n\nThe release is available on:\n\n- [NuGet package(@{milestone})](https://nuget.org/packages/{repository}/{milestone})\n- [GitHub release](https://github.com/{owner}/{repository}/releases/tag/{milestone})\n\nYour **[GitReleaseManager](https://github.com/GitTools/GitReleaseManager)** bot :package::rocket:")]
2323
[YamlMember(Alias = "issue-comment", ScalarStyle = YamlDotNet.Core.ScalarStyle.Literal)]
2424
public string IssueCommentFormat { get; set; }
25+
26+
/// <summary>
27+
/// Gets or sets a value indicating whether the due date should be set when closing the milestone.
28+
/// </summary>
29+
[Description("Whether to set the due date when closing the milestone.")]
30+
[YamlMember(Alias = "set-due-date")]
31+
public bool SetDueDate { get; set; }
2532
}
2633
}

src/GitReleaseManager.Core/Configuration/Config.cs

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public Config()
4242
{
4343
IssueComments = false,
4444
IssueCommentFormat = ISSUE_COMMENT_FORMAT,
45+
SetDueDate = false, // by default, do not set the due date to match previous behavior
4546
};
4647

4748
DefaultBranch = "master";

src/GitReleaseManager.Core/Model/Milestone.cs

+2
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,7 @@ public sealed class Milestone
1717
public string Url { get; set; }
1818

1919
public Version Version { get; set; }
20+
21+
public DateTimeOffset? DueOn { get; set; }
2022
}
2123
}

src/GitReleaseManager.Core/Provider/GitHubProvider.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ public Task SetMilestoneStateAsync(string owner, string repository, Milestone mi
227227
{
228228
return GitHubProvider.ExecuteAsync(async () =>
229229
{
230-
var update = new MilestoneUpdate { State = (Octokit.ItemState)itemState };
230+
var update = new MilestoneUpdate { State = (Octokit.ItemState)itemState, DueOn = milestone.DueOn };
231231
await _gitHubClient.Issue.Milestone.Update(owner, repository, milestone.PublicNumber, update).ConfigureAwait(false);
232232
});
233233
}

src/GitReleaseManager.Core/Provider/GitLabProvider.cs

+5
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,11 @@ public Task SetMilestoneStateAsync(string owner, string repository, Milestone mi
267267
}
268268
else if (itemState == ItemState.Closed)
269269
{
270+
if (milestone.DueOn.HasValue)
271+
{
272+
mileStoneClient.Update(milestone.InternalNumber, new MilestoneUpdate { DueDate = milestone.DueOn.Value.ToString("o", CultureInfo.InvariantCulture) });
273+
}
274+
270275
mileStoneClient.Close(milestone.InternalNumber);
271276
}
272277

src/GitReleaseManager.Core/VcsService.cs

+3
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,9 @@ public async Task CloseMilestoneAsync(string owner, string repository, string mi
254254
_logger.Verbose("Finding open milestone with title '{Title}' on '{Owner}/{Repository}'", milestoneTitle, owner, repository);
255255
var milestone = await _vcsProvider.GetMilestoneAsync(owner, repository, milestoneTitle, ItemStateFilter.Open).ConfigureAwait(false);
256256

257+
// Set the due date only if configured to do so
258+
milestone.DueOn = _configuration.Close.SetDueDate ? DateTimeOffset.UtcNow : (DateTimeOffset?)null;
259+
257260
_logger.Verbose("Closing milestone '{Title}' on '{Owner}/{Repository}'", milestoneTitle, owner, repository);
258261
await _vcsProvider.SetMilestoneStateAsync(owner, repository, milestone, ItemState.Closed).ConfigureAwait(false);
259262

0 commit comments

Comments
 (0)