Skip to content

Simple way to automatically create GitHub releases with changelog and attachments out of issues & milestones

Notifications You must be signed in to change notification settings

Suplanus/GitHubReleaser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Simple way to automatically create GitHub releases with changelog and attachments out of issues & milestones

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages