Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: GitTools/GitReleaseManager
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.18.0
Choose a base ref
...
head repository: GitTools/GitReleaseManager
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.19.0
Choose a head ref
Loading
Showing with 885 additions and 209 deletions.
  1. +16 −2 .editorconfig
  2. +104 −29 .gitattributes
  3. +21 −0 .github/dependabot.yml
  4. +10 −9 .github/workflows/build.yml
  5. +2 −0 GitReleaseManager.yaml
  6. +15 −2 docs/input/docs/configuration/default-configuration.md
  7. +2 −2 recipe.cake
  8. +5 −5 src/Directory.Build.props
  9. +39 −0 src/Directory.Packages.props
  10. +13 −12 src/GitReleaseManager.Cli/GitReleaseManager.Cli.csproj
  11. +8 −0 src/GitReleaseManager.Cli/Program.cs
  12. +20 −19 src/GitReleaseManager.Core.Tests/GitReleaseManager.Core.Tests.csproj
  13. +1 −1 src/GitReleaseManager.Core.Tests/Provider/GitHubProviderTests.cs
  14. +1 −2 src/GitReleaseManager.Core.Tests/VcsServiceTests.cs
  15. +7 −0 src/GitReleaseManager.Core/Configuration/CloseConfig.cs
  16. +2 −0 src/GitReleaseManager.Core/Configuration/Config.cs
  17. +3 −0 src/GitReleaseManager.Core/Configuration/CreateConfig.cs
  18. +1 −1 src/GitReleaseManager.Core/Exceptions/InvalidIssuesException.cs
  19. +84 −0 src/GitReleaseManager.Core/Extensions/JsonExtensions.cs
  20. +20 −18 src/GitReleaseManager.Core/GitReleaseManager.Core.csproj
  21. +27 −1 src/GitReleaseManager.Core/MappingProfiles/GitHubProfile.cs
  22. +13 −1 src/GitReleaseManager.Core/MappingProfiles/GitLabProfile.cs
  23. +4 −0 src/GitReleaseManager.Core/Model/Issue.cs
  24. +5 −0 src/GitReleaseManager.Core/Model/IssueComment.cs
  25. +3 −1 src/GitReleaseManager.Core/Model/Milestone.cs
  26. +11 −0 src/GitReleaseManager.Core/Model/User.cs
  27. +1 −1 src/GitReleaseManager.Core/Model/VcsProvider.cs
  28. +1 −2 src/GitReleaseManager.Core/Options/BaseSubOptions.cs
  29. +141 −27 src/GitReleaseManager.Core/Provider/GitHubProvider.cs
  30. +29 −5 src/GitReleaseManager.Core/Provider/GitLabProvider.cs
  31. +3 −1 src/GitReleaseManager.Core/Provider/IVcsProvider.cs
  32. +41 −2 src/GitReleaseManager.Core/ReleaseNotes/ReleaseNotesBuilder.cs
  33. +1 −0 src/GitReleaseManager.Core/Templates/contributors/contributor-details.sbn
  34. +9 −0 src/GitReleaseManager.Core/Templates/contributors/contributors.sbn
  35. +10 −0 src/GitReleaseManager.Core/Templates/contributors/create/footer.sbn
  36. +13 −0 src/GitReleaseManager.Core/Templates/contributors/index.sbn
  37. +5 −0 src/GitReleaseManager.Core/Templates/contributors/issue-details.sbn
  38. +45 −0 src/GitReleaseManager.Core/Templates/contributors/issue-note.sbn
  39. +3 −0 src/GitReleaseManager.Core/Templates/contributors/issues.sbn
  40. +2 −0 src/GitReleaseManager.Core/Templates/contributors/milestone.sbn
  41. +10 −0 src/GitReleaseManager.Core/Templates/contributors/release-info.sbn
  42. +7 −2 src/GitReleaseManager.Core/VcsService.cs
  43. +40 −1 src/GitReleaseManager.IntegrationTests/GitHubProviderIntegrationTests.cs
  44. +1 −1 src/GitReleaseManager.IntegrationTests/GitLabProviderIntegrationTests.cs
  45. +19 −18 src/GitReleaseManager.IntegrationTests/GitReleaseManager.IntegrationTests.csproj
  46. +33 −9 src/GitReleaseManager.IntegrationTests/ReleaseNotesBuilderIntegrationTests.cs
  47. +18 −17 src/GitReleaseManager.Tests/GitReleaseManager.Tests.csproj
  48. +13 −16 src/GitReleaseManager.Tool/GitReleaseManager.Tool.csproj
  49. +3 −2 src/GitReleaseManager.sln
18 changes: 16 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@ indent_style = space
tab_width = 4

# New line preferences
end_of_line = crlf
end_of_line = unset
insert_final_newline = false
trim_trailing_whitespace = true

@@ -24,9 +24,18 @@ end_of_line = lf

[*.sln]
# Visual studio defaults
end_of_line = crlf
insert_final_newline = true
indent_style = tab

[*.csproj]
# Visual studio defaults
end_of_line = crlf
insert_final_newline = true
indent_style = space
tab_width = 4
indent_size = 4

[*.md]
trim_trailing_whitespace = false
insert_final_newline = true # Conflicts with markdownlint when false
@@ -36,10 +45,15 @@ indent_size = 2 # Incorrect indentation happens when this is not 2
indent_size = 2 # Incorrect indentation happens when this is not 2

[*.ps1]
end_of_line = crlf
charset = utf-8-bom
indent_style = space
indent_size = 2

[*.js]
indent_style = tab
indent_size = 2
indent_size = 2

[*.{bat,cmd}]
end_of_line = crlf
charset = latin1
133 changes: 104 additions & 29 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,29 +1,104 @@
* text eol=crlf whitespace=tab-in-indent,tabwidth=4

*.sh text eol=lf

*.md text whitespace=-blank-at-eol

# Custom for Visual Studio
*.cs text diff=csharp
*.sln merge=union whitespace=-tab-in-indent,-blank-at-eof,indent-with-non-tab
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

*.png binary

.editorconfig text whitespace=-blank-at-eol
# Common settings that generally should always be used with your language specific settings

# Auto detect text files and perform LF normalization
* text=auto

#
# The above will handle all files NOT found below
#

# Documents
*.bibtex text diff=bibtex
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.md text diff=markdown
*.mdx text diff=markdown
*.tex text diff=tex
*.adoc text
*.textile text
*.mustache text
*.csv text eol=crlf
*.tab text
*.tsv text
*.txt text
*.sql text
*.epub diff=astextplain

# Graphics
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.tif binary
*.tiff binary
*.ico binary
# SVG treated as text by default.
*.svg text
# If you want to treat it as binary,
# use the following line instead.
# *.svg binary
*.eps binary

# Scripts
*.bash text eol=lf
*.fish text eol=lf
*.ksh text eol=lf
*.sh text eol=lf
*.zsh text eol=lf
# These are explicitly windows files and should use crlf
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

# Serialisation
*.json text
*.toml text
*.xml text
*.yaml text
*.yml text

# Archives
*.7z binary
*.bz binary
*.bz2 binary
*.bzip2 binary
*.gz binary
*.lz binary
*.lzma binary
*.rar binary
*.tar binary
*.taz binary
*.tbz binary
*.tbz2 binary
*.tgz binary
*.tlz binary
*.txz binary
*.xz binary
*.Z binary
*.zip binary
*.zst binary

# Text files where line endings should be preserved
*.patch -text

*.cs text diff=csharp
*.cshtml text diff=html
*.csx text diff=csharp
*.sln text eol=crlf
*.csproj text eol=crlf

#
# Exclude files from exporting
#

.gitattributes export-ignore
.gitignore export-ignore
.gitkeep export-ignore
21 changes: 21 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,28 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
labels:
- "Build"
schedule:
interval: daily
- package-ecosystem: nuget
directory: "/src"
labels:
- "Build"
groups:
analyzers:
patterns:
- "*Analyzers"
serilog:
patterns:
- "Serilog.*"
tests:
patterns:
- "NUnit.*"
- "Microsoft.NET.Test.Sdk"
- "NSubstitute"
- "coverlet.msbuild"
schedule:
interval: daily
open-pull-requests-limit: 10
19 changes: 10 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@ jobs:
os: [ windows-2022 ]

env:
GITTOOLS_GITHUB_TOKEN: ${{ secrets.GITTOOLS_GITHUB_TOKEN }}
GITTOOLS_GITHUB_TOKEN: ${{ secrets.NUGET_GITHUB_TOKEN }}
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
NUGET_SOURCE: https://api.nuget.org/v3/index.json
CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }}
@@ -35,46 +35,47 @@ jobs:
WYAM_DEPLOY_REMOTE: https://github.com/GitTools/GitReleaseManager
CODECOV_REPO_TOKEN: ${{ secrets.CODECOV_REPO_TOKEN }}
GPR_USER: gittools-bot
GPR_PASSWORD: ${{ secrets.GPR_PASSWORD }}
GPR_PASSWORD: ${{ secrets.NUGET_GITHUB_TOKEN }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Fetch all tags and branches
run: git fetch --prune --unshallow

- name: Install .NET SDK 2.1.x, 3.1.x, 5.0.x, and 6.0.x
uses: actions/setup-dotnet@v3
- name: Install .NET SDK 2.1.x, 3.1.x, 5.0.x, 6.0.x, and 7.0.x
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
2.1.x
3.1.x
5.0.x
6.0.x
7.0.x
- name: Cache Tools
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: tools
key: ${{ runner.os }}-tools-${{ hashFiles('recipe.cake') }}

- name: Build project
uses: cake-build/cake-action@v1
uses: cake-build/cake-action@v3
with:
script-path: recipe.cake
target: CI
verbosity: Normal
cake-version: tool-manifest

- name: Upload Issues-Report
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
if-no-files-found: warn
name: ${{ matrix.os }} issues
path: BuildArtifacts/report.html

- name: Upload Packages
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
if: runner.os == 'Windows'
with:
if-no-files-found: warn
2 changes: 2 additions & 0 deletions GitReleaseManager.yaml
Original file line number Diff line number Diff line change
@@ -19,8 +19,10 @@ create:
include-sha-section: true
sha-section-heading: "SHA256 Hashes of the release artifacts"
sha-section-line-format: "- `{1}\t{0}`"
include-contributors: true
close:
use-issue-comments: true
set-due-date: true
issue-comment: |-
:tada: This issue has been resolved in version {milestone} :tada:
17 changes: 15 additions & 2 deletions docs/input/docs/configuration/default-configuration.md
Original file line number Diff line number Diff line change
@@ -20,6 +20,7 @@ create:
sha-section-heading: "SHA256 Hashes of the release artifacts"
sha-section-line-format: "- `{1}\t{0}`"
allow-update-to-published: false
include-contributors: false
export:
include-created-date-in-title: false
created-date-string-format: ''
@@ -28,6 +29,7 @@ export:
multiline-regex: false
close:
use-issue-comments: false
set-due-date: false
issue-comment: |-
:tada: This issue has been resolved in version {milestone} :tada:
@@ -135,6 +137,11 @@ control the look and feel of the generated release notes.
- A boolean value which indicates whether or not updates can be applied to
published releases. The default value is false. **NOTE:** This
configuration option was added in version 0.11.0 of GitReleaseManager.
- **include-contributors**
- A boolean value which indicates whether the list of contributors is included
in the release notes. A contributor is defined as someone who opened an issue
or submitted a PR. **NOTE:** This configuration option was added in version
0.19.0 of GitReleaseManager.

See the [example create configuration section](create-configuration) to see an
example of how a footer can be configured.
@@ -176,10 +183,16 @@ tokenized values, such as milestone, owner, repository, with the actual values.
- A boolean value which indicates whether or not comments are added to any
closed issues that are included within a milestone, when it is being
closed.
- **issue-comment**
- This is a template for what comment should be added to each issue. Within
- **issue-comment**
- This is a template for what comment should be added to each issue. Within
this comment template, it is possible to replace information for example,
the milestone name, the owner/repository information, etc.
- **set-due-date**
- A boolean value which indicates whether or not to set the due date of the
milestone when closing it. The date which it is set to, is the same as the
date at which the command was run, it is not possible to provide a
different date. **NOTE:** This configuration option was added in version
0.19.0 of GitReleaseManager.

## Default branch

4 changes: 2 additions & 2 deletions recipe.cake
Original file line number Diff line number Diff line change
@@ -35,9 +35,9 @@ BuildParameters.Tasks.DotNetCoreBuildTask.Does((context) =>
{
var buildDir = BuildParameters.Paths.Directories.PublishedApplications;

var grmExecutable = context.GetFiles(buildDir + "/**/*.exe").First();
var grmExecutable = context.GetFiles(buildDir + "/GitReleaseManager.Tool/**/*.exe").First();

context.Information("Registering Built GRM executable...");
context.Information("Registering Built GRM executable... {0}", grmExecutable.FullPath);
context.Tools.RegisterFile(grmExecutable);
});

10 changes: 5 additions & 5 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -14,20 +14,20 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0">
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Serilog" Version="4.0.0" />
<PackageReference Include="IDisposableAnalyzers" Version="4.0.7">
<PackageReference Include="Serilog" />
<PackageReference Include="IDisposableAnalyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PackageReference Include="StyleCop.Analyzers">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Roslynator.Analyzers" Version="4.12.4">
<PackageReference Include="Roslynator.Analyzers">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
Loading