v3.8.1 - 2024-12-02
- Fix resolving redirect of repository URL does not work when the repository is hosted on GitHub Enterprise server. changelog-from-release tries to resolve a repository URL because the repository may have been renamed. However GitHub Enterprise server redirects a repository URL to its login page when the request is not authenticated. Now changelog-from-release detects a login page URL and stops resolving the redirect.
v3.8.0 - 2024-10-15
- Support more auto link references following the GitHub's official spec. Please read the 'Reference auto linking' section for more details. Some examples:
- Commit URL:
50b11ed2bd
, rhysd/actionlint@1ba25a77e1
- Issue/PR URL: #1, rhysd/actionlint#453
GH-
reference link: GH-1
- Commit URL:
- Support the custom autolinks. Please read the 'Custom autolink' section for more details.
- GitHub API requires "Administration" repository permissions (read). You need to set your personal access token to the
GITHUB_TOKEN
environment variable with proper permission.
- GitHub API requires "Administration" repository permissions (read). You need to set your personal access token to the
- Fix pre-releases are included in a generated changelog. (#31)
- Add
-p
flag to include pre-releases in a generated changelog. - Prefer the ISO-standard date format
YYYY-MM-DD
. (#27)- This follows the recommendation by keep a changelog.
- Previous format (e.g.
02 Jan 2006
) was not good because not all release notes are written in English.
- Use
id
attribute instead ofname
attribute for<a>
elements in a generated changelog because thename
attribute is deprecated. - Fix releases are not correctly filtered when both
-d
and-i
/-e
are specified. - Set 120 seconds timeout to GitHub API requests.
- Send requests to GitHub in parallel to fetch repository data faster.
- Add
-debug
flag and debug log. When something went wrong, enabling debug log helps to analyze what happened. - Include checksums for each released archives in the release assets as
changelog-from-release_{version}_checksums.txt
. - Require Go 1.22 or later for build.
- Update
go-github
dependency from v58 to v66.
v3.7.2 - 2024-01-26
- Fix getting a tag from
$GITHUB_EVENT_PATH
environment variable in action (#23, thanks @linde12) - Fix only
github.com
is allowed as host name for GHE environment - Do not download files on Git LFS when updating changelog file in action (#24)
- Update Go module dependencies including
go-github
v58
v3.7.1 - 2023-04-12
- Ensure a trailing
/
in the API base URL set inGITHUB_API_BASE_URL
environment variable - Show a diff of updated changelog in action output instead of printing an entire changelog
- Update
google/go-github
from v40 to v45 - Improve help description of
-r
option
v3.7.0 - 2023-01-29
- Add
-r
option to specify a remote URL of repository.# Generate changelog for rhysd/changelog-from-release changelog-from-release -r 'https://github.com/rhysd/changelog-from-release'
- Fix repeating Git tag name in a release heading when a release title already includes it (#20). For example, when a release title is
v1.2.3 with some features
and its Git tag isv1.2.3
, the generated heading is:- until v3.7.0:
v1.2.3 with some features (v1.2.3)
- from v3.7.0:
v1.2.3 with some features
- until v3.7.0:
- Ensure spaces are trimmed from release title and release name.
v3.6.1 - 2023-01-16
- Fix 404 response is not handled when trying to resolve private renamed repositories. (#19)
- For private repositories, repository rename is not resolved because GitHub always returns 404 even if an authentication token is set. Please ensure the Git remote URL in your local repository is up-to-date when running
changelog-from-release
command in this case.
- For private repositories, repository rename is not resolved because GitHub always returns 404 even if an authentication token is set. Please ensure the Git remote URL in your local repository is up-to-date when running
v3.6.0 - 2023-01-13
- If you enable protected-branch,
rhysd/changelog-from-release/action
action cannot push a commit directly to the branch. Instead, usepull_request
input to create a pull request to update the changelog. (#17)- uses: rhysd/changelog-from-release/action@v3 with: file: CHANGELOG.md github_token: ${{ secrets.GITHUB_TOKEN }} pull_request: true
v3.5.2 - 2023-01-05
- Check and follow redirects for Git remote URLs. This check is necessary to resolve renamed old repositories correctly. (#16)
- Avoid unnecessary memory allocation when no reference link is included in changelog.
- Update dependencies to include
golang.org/x/*
packages which were newly managed as Go modules.
v3.5.1 - 2022-12-12
- Add
-d
option to include/exclude drafts in generated changelog. (thanks @paescuj, #15)# Exclude drafts from the output changelog-from-release -d=false > CHANGELOG.md
- Include version of
changelog-from-release
in the footer of generated output - Remove a single space which were prepended to a footer line
- Do not fail when no release is found since an empty changelog is a good start point of development
v3.4.0 - 2022-08-27
- Add
-i
option to ignore release tags by regular expression pattern. For example, if your project hasnightly
tag release for nightly builds, it can be excluded as follows:changelog-from-release -i '^nightly$' > CHANGELOG.md
- Add
-e
option to extract release tags by regular expression pattern. For example, if your project usesv{major}.{minor}.{patch}
format for release tags, they can be extracted as follows:changelog-from-release -e '^v\d+\.\d+\.\d+$' > CHANGELOG.md
- Allow multiple drafts in releases. For including draft releases, see the FAQ for more details.
v3.3.0 - 2022-08-23
- Add
args
input to the action to define command line arguments passed tochangelog-from-release
command.- uses: rhysd/changelog-from-release/action@v3 with: file: CHANGELOG.md github_token: ${{ secrets.GITHUB_TOKEN }} # Pass `-l 2` to use `##` instead of `#` for each release section args: -l 2
- Add
header
andfooter
inputs to the action to insert templates before/after the generated changelog. The following step inserts the header and the footer.- uses: rhysd/changelog-from-release/action@v3 with: file: CHANGELOG.md github_token: ${{ secrets.GITHUB_TOKEN }} args: -l 2 header: | Changelog ========= This is header. footer: |- This is footer.
- Report an error when the release is not associated with any Git tags. This can happen when the release is a draft.
- Fix release date is broken when the release is a draft. Instead of published date, created date is used in the case.
- Add FAQ section to readme document. Currently two topics are described.
v3.2.0 - 2022-08-22
- Add
-l
option to set heading level of each release sections. For example,-l 2
uses##
instead of#
for each release sections. - Use Go 1.19 to build release binaries.
- Go module path was changed from
github.com/rhysd/changelog-from-release
togithub.com/rhysd/changelog-from-release/v3
sincego install
without version specifier does not work in recent Go toolchain. (#14)
v3.1.4 - 2022-08-10
- In previous release, references in link texts were fixed. But the fix was not perfect. Nested text node in a link node was still linked incorrectly and this release fixed the bug. For instance,
@foo
in[_@foo_](...)
should not be linked where the text is in italic node in link node.
v3.1.3 - 2022-08-08
- Do not references in link texts. Previously references in link texts like
[#1](...)
were linked to[[#1](https://github.com/owner/repo/issues/1)](...)
. Now they are not linked and left as-is (#12).
v3.1.2 - 2022-08-04
- Fixed
commit-summary-template
was not effective by renaming the input tocommit_summary_template
. Hyphens are not available in Docker actions. For example, whenv1.2.3
is released, the following step creates a commit with summarychore(changelog): describe changes for "v1.2.3"
.- uses: rhysd/changelog-from-release/action@v3 with: file: CHANGELOG.md github_token: ${{ secrets.GITHUB_TOKEN }} commit_summary_template: 'chore(changelog): describe changes for %s'
v3.1.1 - 2022-08-04
- Use
git remote
instead ofgit rev-parse
to retrieve a remote name of repository sincegit rev-parse
sometimes returns an unexpected output for some reason. (#6) - Added
commit-summary-template
input to the action so that the commit message can be customized. The template is passed to the first argument ofprintf
command. It must contain one%s
placeholder which will be replaced with the tag name. - Removed duplicate of command output from error messages on
git
command failure. - Improved error messages when retrieving a URL of remote repository
v3.1.0 - 2022-08-03
- Link commit references in release note automatically. For example,
85a7d9028ed70bc81224cb126e29e070dcc0aa1c
is converted to[`85a7d9028e`](https://github.com/owner/repo/commit/85a7d9028ed70bc81224cb126e29e070dcc0aa1c)
. Note that only full-length (40 characters) commit hashes are linked to avoid false positives. - Fix user references followed by
/
like@foo/
are wrongly linked. - Describe how reference auto linking works in README.md.
v3.0.0 - 2022-08-03
- BREAKING: Labels at head of list items are no longer converted to bold text. For example, a list item starting with
- Fix:
was converted to- **Fix:**
, but it is no longer converted from v3.0.0. - Issue references like
#123
and user references like@rhysd
are now automatically linked (#3). For example, when we have a release item as follows in release notes:- Fixed something (thanks @rhysd, #1)
changelog-from-release
links the references as follows:- Fixed something (thanks [@rhysd](https://github.com/rhysd), [#1](https://github.com/owner/repo/issues/1))
- Fixed
git@
andssh://
repository URLs were not converted to HTTPS URLs when the repository is hosted on GHE. - Updated
google/go-github
dependency from v17 to v45. - Removed
pkg/errors
dependency and used standardfmt.Errorf
instead.
v2.2.5 - 2022-06-02
- Fix
changelog-from-release
command hangs when generating a changelog of repository which has more than 30 releases (#8, #10)
v2.2.4 - 2022-05-12
- Strip credentials in repository URLs (#9).
- Fix the action fails due to permission error on accessing a workspace directory.
- Update dependencies in
go.mod
. - Use GoReleaser to make release binaries.
v2.2.3 - 2021-09-26
- Improve: Introduce Go modules. Now this tool is installable via
go install
- Improve: Better footer comment (thanks @spl, #7)
- Improve: Build binaries with the latest Go toolchain v1.17
- Improve: Release
darwin/arm64
andlinux/arm64
binaries
v2.2.2 - 2021-02-24
- Fix: Rename
github-token
input togithub_token
since-
is not available for input names (#4)
v2.2.0 - 2020-02-22
- New: Support
$GITHUB_API_BASE_URL
environment variable to configure API endpoint for GitHub Enterprise
export GITHUB_API_BASE_URL=https://github.your-company.com/api/v3
GITHUB_TOKEN=abcabcabcabcabcabcabc changelog-from-release > CHANGELOG.md
v2.1.0 - 2020-02-20
- New: Action for GitHub Actions was added. Updating your changelog file following the new release now can be automated easily.
Example workflow:
name: Update changelog
on:
release:
types: [published]
jobs:
changelog:
name: Update changelog
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: master
- uses: rhysd/changelog-from-release/action@v2
with:
file: CHANGELOG.md
github-token: ${{ secrets.GITHUB_TOKEN }}
v2.0.0 - 2020-02-19
I decided to keep this tool as simple as possible. This release drops some features for simplification.
- Breaking: Instead of modifying
CHANGELOG.md
, this tool outputs a generated changelog to stdout. Please redirect the output to update your changelog file
$ changelog-from-release > CHANGELOG.md
- Breaking: Drop
-commit
flag. Please add and commit changes by yourself
$ changelog-from-release > CHANGELOG.md
$ git add CHANGELOG.md
$ git commit -m "Update changelog for $(git describe --tags)"
v1.2.0 - 2020-02-18
- New:
-commit
option was added to make a new commit for the changelog updates automatically
v1.1.3 - 2020-02-13
- Fix: Consider paging for getting releases from GitHub API
- Fix: Cause an error when no release found
v1.1.2 - 2019-11-16
- Fix: Codes in fences should not be modified
v1.1.1 - 2018-11-14
- Fix: Fix emphasizing item header with bold, not italic
v1.1.0 - 2018-11-14
- Improve: Emphasize list item headers like
- *Fix:* Fix something
v1.0.0 - 2018-11-10
First release 🎉