GitHubReleaser
Simple way to automatically create GitHub releases with changelog and attachments out of issues & milestones
Install / Use
/learn @Suplanus/GitHubReleaserREADME
GitHubReleaser
Simple way to automatically create GitHub releases with changelog and attachments out of issues & milestones.

Functions
Creates a release with the version of a DLL or EXE file, e.g. 1.2.3.4. The last version part is the build number.
GitHubReleaser searches for a milestone without the build number e.g. 1.2.3. All issues in the milestone would be printed in the release changelog. You can also define which label should be in or filter some single issues out.
You can also attach files to the release e.g. ZIP-File with your binaries.
If the release is a pre-release, all closed issues of the milestone are collected since last release (date). If the release is NOT a pre-release, all issues of the milestone are collected (summary).
You can also update a release (changelog & attachments).
Usage
Get a API-Token for your GitHub-User here. We need the scope repo.
Execute GitHubRelease via command line arguments:
GitHubReleaser.exe /github-repo:"MyUsername/MyRepo" /github-token:"5578d3a8e0ed1c524e3c8c832e1533d79b16ad3c" /file-for-version:"C:\test\MyDllOrExe.dll" /pre-release:"false" /issue-labels:"bug;Bug" "feature;Feature" /issue-filter-label:"not-in-changelog" /release-attachments:"C:\test\MyDllOrExe1.zip" "C:\test\MyDllOrExe2.zip" /create-changelog-file:"false"
Or open config file with GitHubRelease:
GitHubReleaser.exe "C:\test\MySettings.json"
Combining config file with commandline arguments is not supported yet.
Parameter
| Name | Example | Required |
| --------------------------- | ----------------------------------------------------- | -------- |
| github-repo | MyUsername/MyRepo | ✅ |
| github-token | 5578d3a8e0ed1c524e3c8c832e1533d79b16ad3c | ✅ |
| file-for-version | "C:\test\MyDllOrExe.dll" | ✅ |
| pre-release | false | |
| issue-labels | "bug;Bug" "feature;Feature" | |
| issue-filter-label | not-in-changelog | |
| release-attachments | "C:\test\MyDllOrExe1.zip" "C:\test\MyDllOrExe2.zip" | |
| update-only | false | |
| create-changelog-file | false | |
| draft | false | |
| delete-files-after-upload | false | |
Config file example
{
"IsChangelogFileCreationEnabled": false,
"IsUpdateOnly": true,
"ReleaseAttachments": [ "C:\\test\\MyDllOrExe1.zip", "C:\\test\\MyDllOrExe2.zip" ],
"IssueFilterLabel": "not-in-changelog",
"IssueLabels": {
"bug": "Bug",
"feature": "Feature"
},
"IsPreRelease": false,
"IsDraft": false,
"DeleteFilesAfterUpload": false,
"FileForVersion": "C:\\test\\MyDllOrExe.dll",
"GitHubToken": "_5578d3a8e0ed1c524e3c8c832e1533d79b16ad3c_",
"GitHubRepo": "MyUsername/MyRepo"
}
Build
For debugging you can add a Secrets.cs to the folder Model:

For testing we use Smart Command Line Arguments Visual Studio extension.
With a test milestone and some test issues you can simple run throw the steps:

Contributing
Feel free to make a pull-request 🦄 Or simple make an issue for a bug report or feature request 💖
Thanks to Daniel Papp for being a first class contributer.
