Skip to content

Commit f0911e4

Browse files
committed
Merge branch 'release/0.20.0'
* release/0.20.0: Bump NGitLab from 7.6.0 to 8.3.0 in /src Bump Scriban from 5.12.1 to 6.1.0 in /src Bump GraphQL.Client from 6.0.1 to 6.1.0 in /src Bump GraphQL.Client.Serializer.SystemTextJson in /src Bump Microsoft.Extensions.DependencyInjection in /src Bump the analyzers group across 1 directory with 2 updates (#495) Add docs for new configuration option (#495) Fix tests as a result of changes (#495) Make use of new empty Scriban template (#495) Allow milestones without issues (build) Further prevent running documentation (build) Disable Wyam documentation (#669) Remove support for .NET 6.0 and 7.0 (#690) Add support for .NET 8.0 and 9.0 bring back the TargetFrameworks as it's required by Cake.Receipe move common project properties to Directory.Build.props
2 parents eb72dd1 + 270b5fd commit f0911e4

27 files changed

+146
-77
lines changed

.github/workflows/build.yml

+3-6
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@ jobs:
3030
TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
3131
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
3232
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
33-
WYAM_ACCESS_TOKEN: ${{ secrets.WYAM_ACCESS_TOKEN }}
34-
WYAM_DEPLOY_BRANCH: gh-pages
35-
WYAM_DEPLOY_REMOTE: https://github.com/GitTools/GitReleaseManager
3633
CODECOV_REPO_TOKEN: ${{ secrets.CODECOV_REPO_TOKEN }}
3734
GPR_USER: gittools-bot
3835
GPR_PASSWORD: ${{ secrets.NUGET_GITHUB_TOKEN }}
@@ -43,15 +40,15 @@ jobs:
4340
- name: Fetch all tags and branches
4441
run: git fetch --prune --unshallow
4542

46-
- name: Install .NET SDK 2.1.x, 3.1.x, 5.0.x, 6.0.x, and 7.0.x
43+
- name: Install .NET SDK 2.1.x, 3.1.x, 5.0.x, 8.0.x, and 9.0.x
4744
uses: actions/setup-dotnet@v4
4845
with:
4946
dotnet-version: |
5047
2.1.x
5148
3.1.x
5249
5.0.x
53-
6.0.x
54-
7.0.x
50+
8.0.x
51+
9.0.x
5552
5653
- name: Cache Tools
5754
uses: actions/cache@v4

docs/input/docs/configuration/default-configuration.md

+6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ create:
2121
sha-section-line-format: "- `{1}\t{0}`"
2222
allow-update-to-published: false
2323
include-contributors: false
24+
allow-milestone-without-issues: false
2425
export:
2526
include-created-date-in-title: false
2627
created-date-string-format: ''
@@ -142,6 +143,11 @@ control the look and feel of the generated release notes.
142143
in the release notes. A contributor is defined as someone who opened an issue
143144
or submitted a PR. **NOTE:** This configuration option was added in version
144145
0.19.0 of GitReleaseManager.
146+
- **allow-milestone-without-issues**
147+
- A boolean value which indicates whether an empty release will be created, when
148+
no issues are found to be associated with a milestone. The contents of the
149+
empty release can be controlled via the associated Scriban template.
150+
**NOTE:** This configuration option was added in version 0.20.0 of GitReleaseManager.
145151

146152
See the [example create configuration section](create-configuration) to see an
147153
example of how a footer can be configured.

nuspec/chocolatey/GitReleaseManager.Portable.nuspec

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
<tags>github release notes create export</tags>
2020
</metadata>
2121
<files>
22-
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net6.0\*.exe" target="tools" />
23-
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net6.0\*.pdb" target="tools" />
22+
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net8.0\*.exe" target="tools" />
23+
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net8.0\*.pdb" target="tools" />
2424
<file src="chocolateyInstall.ps1" target="tools"/>
2525
<file src="chocolateyUninstall.ps1" target="tools"/>
2626
<file src="VERIFICATION.TXT" />

nuspec/nuget/GitReleaseManager.nuspec

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
<tags>github release notes create export</tags>
2121
</metadata>
2222
<files>
23-
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net6.0\*.exe" target="tools" />
24-
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net6.0\*.xml" target="tools" />
25-
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net6.0\*.pdb" target="tools" />
23+
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net8.0\*.exe" target="tools" />
24+
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net8.0\*.xml" target="tools" />
25+
<file src="..\..\BuildArtifacts\temp\_PublishedApplications\GitReleaseManager.Cli\net8.0\*.pdb" target="tools" />
2626
<file src="..\..\icons\package_icon.png" target="" />
2727
</files>
2828
</package>

recipe.cake

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ BuildParameters.SetParameters(context: Context,
1919
twitterMessage: standardNotificationMessage,
2020
preferredBuildProviderType: BuildProviderType.GitHubActions,
2121
gitterMessage: "@/all " + standardNotificationMessage,
22-
shouldRunCodecov: false);
22+
shouldRunCodecov: false,
23+
shouldGenerateDocumentation: false);
2324

2425
BuildParameters.PackageSources.Add(new PackageSourceData(Context, "GPR", "https://nuget.pkg.github.com/GitTools/index.json", FeedType.NuGet, false));
2526

src/Directory.Build.props

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,21 @@
11
<Project>
22
<PropertyGroup>
3+
<LangVersion>8.0</LangVersion>
4+
5+
<Authors>GitTools Contributors</Authors>
6+
<PackageProjectUrl>https://github.com/GitTools/GitReleaseManager</PackageProjectUrl>
7+
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
8+
<PackageTags>github release notes create export</PackageTags>
9+
<Copyright>Copyright (c) 2015 - Present - GitTools Contributors</Copyright>
10+
<PackageLicenseExpression>MIT</PackageLicenseExpression>
11+
<PackageIcon>package_icon.png</PackageIcon>
12+
<PackageReleaseNotes>https://github.com/GitTools/GitReleaseManager/releases</PackageReleaseNotes>
13+
<RepositoryType>git</RepositoryType>
14+
<RepositoryUrl>https://github.com/GitTools/GitReleaseManager.git</RepositoryUrl>
15+
316
<DebugType>pdbonly</DebugType>
417
<GenerateDocumentationFile>true</GenerateDocumentationFile>
5-
<NoWarn>CS1591</NoWarn>
18+
<NoWarn>$(NoWarn);CS1591;CA1707;Serilog004</NoWarn>
619
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
720
</PropertyGroup>
821

src/Directory.Packages.props

+7-7
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,21 @@
1010
<PackageVersion Include="CommandLineParser" Version="2.9.1" />
1111
<PackageVersion Include="coverlet.msbuild" Version="6.0.4" />
1212
<PackageVersion Include="Destructurama.Attributed" Version="5.1.0" />
13-
<PackageVersion Include="GraphQL.Client" Version="6.0.1" />
14-
<PackageVersion Include="GraphQL.Client.Serializer.SystemTextJson" Version="6.0.1" />
13+
<PackageVersion Include="GraphQL.Client" Version="6.1.0" />
14+
<PackageVersion Include="GraphQL.Client.Serializer.SystemTextJson" Version="6.1.0" />
1515
<PackageVersion Include="IDisposableAnalyzers" Version="4.0.8" />
1616
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0" />
17-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.2" />
17+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.3" />
1818
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
1919
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
20-
<PackageVersion Include="NGitLab" Version="7.6.0" />
20+
<PackageVersion Include="NGitLab" Version="8.3.0" />
2121
<PackageVersion Include="NSubstitute" Version="5.3.0" />
2222
<PackageVersion Include="NUnit" Version="4.3.2" />
23-
<PackageVersion Include="NUnit.Analyzers" Version="4.6.0" />
23+
<PackageVersion Include="NUnit.Analyzers" Version="4.7.0" />
2424
<PackageVersion Include="NUnit3TestAdapter" Version="4.6.0" />
2525
<PackageVersion Include="Octokit" Version="14.0.0" />
26-
<PackageVersion Include="Roslynator.Analyzers" Version="4.13.0" />
27-
<PackageVersion Include="Scriban" Version="5.12.1" />
26+
<PackageVersion Include="Roslynator.Analyzers" Version="4.13.1" />
27+
<PackageVersion Include="Scriban" Version="6.1.0" />
2828
<PackageVersion Include="Serilog" Version="4.2.0" />
2929
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
3030
<PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" />

src/GitReleaseManager.Cli/GitReleaseManager.Cli.csproj

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<LangVersion>8.0</LangVersion>
43
<OutputType>Exe</OutputType>
54
<AssemblyName>GitReleaseManager</AssemblyName>
6-
<TargetFrameworks>net6.0</TargetFrameworks>
5+
<TargetFrameworks>net8.0</TargetFrameworks>
76
<PublishSingleFile>true</PublishSingleFile>
87
<SelfContained>true</SelfContained>
98
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
109
<Title>GitReleaseManager.Cli</Title>
1110
<Description>Create release notes in markdown given a milestone</Description>
1211
<IsPackable>false</IsPackable>
13-
<NoWarn>$(NoWarn);CA1707;</NoWarn>
1412
</PropertyGroup>
1513
<ItemGroup>
1614
<ProjectReference Include="..\GitReleaseManager.Core\GitReleaseManager.Core.csproj" />

src/GitReleaseManager.Core.Tests/Commands/ExportCommandTests.cs

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public void Setup()
2727
}
2828

2929
[Test]
30+
[NonParallelizable]
3031
public async Task Should_Execute_Command()
3132
{
3233
var options = new ExportSubOptions

src/GitReleaseManager.Core.Tests/GitReleaseManager.Core.Tests.csproj

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<LangVersion>9.0</LangVersion>
4-
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
3+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
54
<Title>GitReleaseManager.Core.Tests</Title>
65
<Description>Test Project for GitReleaseManager.Core</Description>
7-
<NoWarn>$(NoWarn);CA1707;Serilog004;</NoWarn>
86
</PropertyGroup>
97
<ItemGroup>
108
<Compile Include="..\GlobalSuppressions.cs" Link="GlobalSuppressions.cs" />

src/GitReleaseManager.Core.Tests/VcsServiceTests.cs

+8-9
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using GitReleaseManager.Core.Model;
99
using GitReleaseManager.Core.Provider;
1010
using GitReleaseManager.Core.ReleaseNotes;
11-
using GitReleaseManager.Core.Templates;
1211
using NSubstitute;
1312
using NUnit.Framework;
1413
using Serilog;
@@ -303,7 +302,7 @@ public async Task Should_Create_Release_From_Milestone()
303302
{
304303
var release = new Release();
305304

306-
_releaseNotesBuilder.BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, ReleaseTemplates.DEFAULT_NAME)
305+
_releaseNotesBuilder.BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, null)
307306
.Returns(Task.FromResult(RELEASE_NOTES));
308307

309308
_vcsProvider.GetReleaseAsync(OWNER, REPOSITORY, MILESTONE_TITLE)
@@ -315,7 +314,7 @@ public async Task Should_Create_Release_From_Milestone()
315314
var result = await _vcsService.CreateReleaseFromMilestoneAsync(OWNER, REPOSITORY, MILESTONE_TITLE, MILESTONE_TITLE, null, null, false, null).ConfigureAwait(false);
316315
result.ShouldBeSameAs(release);
317316

318-
await _releaseNotesBuilder.Received(1).BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, ReleaseTemplates.DEFAULT_NAME).ConfigureAwait(false);
317+
await _releaseNotesBuilder.Received(1).BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, null).ConfigureAwait(false);
319318
await _vcsProvider.Received(1).GetReleaseAsync(OWNER, REPOSITORY, MILESTONE_TITLE).ConfigureAwait(false);
320319
await _vcsProvider.Received(1).CreateReleaseAsync(OWNER, REPOSITORY, Arg.Is<Release>(o =>
321320
o.Body == RELEASE_NOTES &&
@@ -333,7 +332,7 @@ public async Task Should_Create_Release_From_Milestone_With_Assets()
333332

334333
var assetsCount = _assets.Count;
335334

336-
_releaseNotesBuilder.BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, ReleaseTemplates.DEFAULT_NAME)
335+
_releaseNotesBuilder.BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, null)
337336
.Returns(Task.FromResult(RELEASE_NOTES));
338337

339338
_vcsProvider.GetReleaseAsync(OWNER, REPOSITORY, MILESTONE_TITLE)
@@ -353,7 +352,7 @@ public async Task Should_Create_Release_From_Milestone_With_Assets()
353352
null).ConfigureAwait(false);
354353
result.ShouldBeSameAs(release);
355354

356-
await _releaseNotesBuilder.Received(1).BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, ReleaseTemplates.DEFAULT_NAME).ConfigureAwait(false);
355+
await _releaseNotesBuilder.Received(1).BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, null).ConfigureAwait(false);
357356
await _vcsProvider.Received(1).GetReleaseAsync(OWNER, REPOSITORY, MILESTONE_TITLE).ConfigureAwait(false);
358357
await _vcsProvider.Received(1).CreateReleaseAsync(OWNER, REPOSITORY, Arg.Is<Release>(o =>
359358
o.Body == RELEASE_NOTES &&
@@ -430,7 +429,7 @@ public async Task Should_Update_Published_Release_On_Creating_Release_From_Miles
430429

431430
_configuration.Create.AllowUpdateToPublishedRelease = updatePublishedRelease;
432431

433-
_releaseNotesBuilder.BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, ReleaseTemplates.DEFAULT_NAME)
432+
_releaseNotesBuilder.BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, null)
434433
.Returns(Task.FromResult(RELEASE_NOTES));
435434

436435
_vcsProvider.GetReleaseAsync(OWNER, REPOSITORY, MILESTONE_TITLE)
@@ -442,7 +441,7 @@ public async Task Should_Update_Published_Release_On_Creating_Release_From_Miles
442441
var result = await _vcsService.CreateReleaseFromMilestoneAsync(OWNER, REPOSITORY, MILESTONE_TITLE, MILESTONE_TITLE, null, null, false, null).ConfigureAwait(false);
443442
result.ShouldBeSameAs(release);
444443

445-
await _releaseNotesBuilder.Received(1).BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, ReleaseTemplates.DEFAULT_NAME).ConfigureAwait(false);
444+
await _releaseNotesBuilder.Received(1).BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, null).ConfigureAwait(false);
446445
await _vcsProvider.Received(1).GetReleaseAsync(OWNER, REPOSITORY, MILESTONE_TITLE).ConfigureAwait(false);
447446
await _vcsProvider.Received(1).UpdateReleaseAsync(OWNER, REPOSITORY, release).ConfigureAwait(false);
448447

@@ -458,7 +457,7 @@ public async Task Should_Throw_Exception_While_Updating_Published_Release_On_Cre
458457

459458
_configuration.Create.AllowUpdateToPublishedRelease = false;
460459

461-
_releaseNotesBuilder.BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, ReleaseTemplates.DEFAULT_NAME)
460+
_releaseNotesBuilder.BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, null)
462461
.Returns(Task.FromResult(RELEASE_NOTES));
463462

464463
_vcsProvider.GetReleaseAsync(OWNER, REPOSITORY, MILESTONE_TITLE)
@@ -467,7 +466,7 @@ public async Task Should_Throw_Exception_While_Updating_Published_Release_On_Cre
467466
var ex = await Should.ThrowAsync<InvalidOperationException>(() => _vcsService.CreateReleaseFromMilestoneAsync(OWNER, REPOSITORY, MILESTONE_TITLE, MILESTONE_TITLE, null, null, false, null)).ConfigureAwait(false);
468467
ex.Message.ShouldBe($"Release with tag '{MILESTONE_TITLE}' not in draft state, so not updating");
469468

470-
await _releaseNotesBuilder.Received(1).BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, ReleaseTemplates.DEFAULT_NAME).ConfigureAwait(false);
469+
await _releaseNotesBuilder.Received(1).BuildReleaseNotesAsync(OWNER, REPOSITORY, MILESTONE_TITLE, null).ConfigureAwait(false);
471470
await _vcsProvider.Received(1).GetReleaseAsync(OWNER, REPOSITORY, MILESTONE_TITLE).ConfigureAwait(false);
472471
}
473472

src/GitReleaseManager.Core/Configuration/Config.cs

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public Config()
2727
ShaSectionHeading = "SHA256 Hashes of the release artifacts",
2828
ShaSectionLineFormat = "- `{1}\t{0}`",
2929
AllowUpdateToPublishedRelease = false,
30+
AllowMilestonesWithoutIssues = false,
3031
IncludeContributors = false,
3132
};
3233

src/GitReleaseManager.Core/Configuration/CreateConfig.cs

+3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ public class CreateConfig
3535
[YamlMember(Alias = "allow-update-to-published")]
3636
public bool AllowUpdateToPublishedRelease { get; set; }
3737

38+
[YamlMember(Alias = "allow-milestone-without-issues")]
39+
public bool AllowMilestonesWithoutIssues { get; set; }
40+
3841
[YamlMember(Alias = "include-contributors")]
3942
public bool IncludeContributors { get; set; }
4043
}

src/GitReleaseManager.Core/GitReleaseManager.Core.csproj

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@
33
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v16.0\TextTemplating\Microsoft.TextTemplating.targets" Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v16.0\TextTemplating\Microsoft.TextTemplating.targets')" />
44
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\TextTemplating\Microsoft.TextTemplating.targets" Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\TextTemplating\Microsoft.TextTemplating.targets')" />
55
<PropertyGroup>
6-
<LangVersion>8.0</LangVersion>
7-
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
6+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
87
<Title>GitReleaseManager.Core</Title>
98
<Description>Create release notes in markdown given a milestone</Description>
109
<IsPackable>false</IsPackable>
11-
<NoWarn>$(NoWarn);CA1707;</NoWarn>
1210
<TransformOnBuild>true</TransformOnBuild>
1311
</PropertyGroup>
1412

src/GitReleaseManager.Core/ReleaseNotes/ReleaseNotesBuilder.cs

+21-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public ReleaseNotesBuilder(IVcsProvider vcsProvider, ILogger logger, IFileSystem
3535
_templateFactory = templateFactory;
3636
}
3737

38-
public async Task<string> BuildReleaseNotesAsync(string user, string repository, string milestoneTitle, string template)
38+
public async Task<string> BuildReleaseNotesAsync(string user, string repository, string milestoneTitle, string customTemplate)
3939
{
4040
_user = user;
4141
_repository = repository;
@@ -58,12 +58,31 @@ public async Task<string> BuildReleaseNotesAsync(string user, string repository,
5858

5959
var numberOfCommits = await _vcsProvider.GetCommitsCountAsync(_user, _repository, @base, head).ConfigureAwait(false);
6060

61-
if (issues.Count == 0)
61+
if (issues.Count == 0 && !_configuration.Create.AllowMilestonesWithoutIssues)
6262
{
6363
var logMessage = string.Format(CultureInfo.CurrentCulture, "No closed issues have been found for milestone {0}, or all assigned issues are meant to be excluded from release notes, aborting release creation.", _milestoneTitle);
6464
throw new InvalidOperationException(logMessage);
6565
}
6666

67+
// By default we use the custom template, if it was provided.
68+
// Otherwise, we determine which template we should use.
69+
var template = customTemplate;
70+
if (string.IsNullOrWhiteSpace(template))
71+
{
72+
if (issues.Count == 0)
73+
{
74+
template = ReleaseTemplates.NO_ISSUES_NAME;
75+
}
76+
else if (_configuration.Create.IncludeContributors)
77+
{
78+
template = ReleaseTemplates.CONTRIBUTORS_NAME;
79+
}
80+
else
81+
{
82+
template = ReleaseTemplates.DEFAULT_NAME;
83+
}
84+
}
85+
6786
var commitsLink = _vcsProvider.GetCommitsUrl(_user, _repository, _targetMilestone?.Title, previousMilestone?.Title);
6887

6988
var issuesDict = GetIssuesDict(issues);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{{ if config.create.include_footer }}
2+
3+
### {{ config.create.footer_heading }}
4+
5+
{{ if config.create.milestone_replace_text
6+
replace_milestone_title config.create.footer_content config.create.milestone_replace_text milestone.target.title
7+
else
8+
config.create.footer_content
9+
end
10+
end }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{{-
2+
include 'release-info'
3+
if milestone.target.description
4+
include 'milestone'
5+
end
6+
include 'issues' | string.rstrip
7+
if template_kind == "CREATE"
8+
include 'create/footer'
9+
end
10+
~}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
This release had no issues associated with it.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
{{ milestone.target.description }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{{
2+
if commits.count > 0
3+
}}As part of this release we had [{{ commits.count }} {{ commits.count | string.pluralize "commit" "commits" }}]({{ commits.html_url }}).
4+
{{ end -}}

0 commit comments

Comments
 (0)