dropseed/changerelease
Automatically update your GitHub Releases from CHANGELOG.md (Keep a Changelog)
{ "createdAt": "2020-09-06T02:50:31Z", "defaultBranch": "master", "description": "Automatically update your GitHub Releases from CHANGELOG.md (Keep a Changelog)", "fullName": "dropseed/changerelease", "homepage": "", "language": "Python", "name": "changerelease", "pushedAt": "2022-09-26T15:35:06Z", "stargazersCount": 28, "topics": [ "changelog", "changelog-parser", "release", "release-automation", "release-notes" ], "updatedAt": "2025-01-05T13:38:01Z", "url": "https://github.com/dropseed/changerelease"}changerelease
Section titled “changerelease”Automatically update your GitHub Releases from CHANGELOG.md.
This tool expects that you follow the Keep a Changelog format.
To use it:
- Keep a Changelog
- Git tag your versions
- Let the changerelease GitHub Action automatically keep your GitHub Releases updated
![changerelease screenshot]!(changerelease.png)
Use the GitHub Action
Section titled “Use the GitHub Action”name: changereleaseon: workflow_dispatch: {} push: paths: [CHANGELOG.md] branches: [master] tags: ["*"]
jobs: sync: runs-on: ubuntu-latest steps: - uses: dropseed/changerelease@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} # optional tag_prefix: v changelog: CHANGELOG.mdWhat if my changelog isn’t in Markdown?
Section titled “What if my changelog isn’t in Markdown?”For changelogs written in reStructuredText or another syntax besides Markdown,
you can run a conversion step before running changerelease.
This can be a custom rendering script or something like pandoc to convert your changelog to Markdown.
The only real expectation is that your version names are written in h2 headings (## {version_name}).
name: changereleaseon: workflow_dispatch: {} push: paths: [CHANGELOG.md] branches: [master] tags: ["*"]
jobs: sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2
# Convert to markdown first # https://github.com/pandoc/pandoc-action-example - uses: docker://pandoc/core:2.14 with: args: "CHANGELOG.rst -f rst -t markdown -o CR_CHANGELOG.md"
- uses: dropseed/changerelease@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} # optional tag_prefix: v changelog: CR_CHANGELOG.md remote_changelog: false