auto-changelog
auto-changelog copied to clipboard
Github Automatic Changelog action
Auto Changelog
Automatic Changelog generator
Table of Content
- Usage
-
Inputs
- Github Token
- Commit Types
- Default Commit Type
- Release Name
- Release Name Prefix
- Mention Authors
- Mention New Contributors
- Include GitHub Compare Link
- SemVer Compatibility
- Use GitHub Autolink
-
Outputs
- Changelog
- Pre-release
- Release ID
- Example Usage
Usage
To use this action, your commit messages have to follow the format below:
type(category): description [flag]
-
The
type
must be one ofcommit-types
input keys. In the changelog output, the value will be used.The changelogs will be in the same order as
commit-types
input.If the
type
doesn't match any of the providedcommit-types
input keys, Thedefault-commit-type
input will be used instead. -
The
category
is optional and can be anything of your choice. -
The
flag
is optional (if provided, it must be surrounded in square brackets) and can be one of the followings:-
ignore
(Omits the commit from the changelog)
If
flag
is not found in the list, it'll be ignored. -
Commit messages not matching the format mentioned above will be ignored in the
changelog
output.
Inputs
github-token
(Optional)
Github token.
Default:
${{ github.token }}
commit-types
(Optional)
Commit types.
The default value is based on the Conventional Commits Specification
Default:
feat : New Features
fix : Bug Fixes
build : Build System & Dependencies
perf : Performance Improvements
docs : Documentation
test : Tests
refactor: Refactors
chore : Chores
ci : CI
style : Code Style
revert : Reverts
default-commit-type
(Optional)
Default commit type.
This input will be used when the commit message matches none of the defined commit-types
input.
Default:
Other Changes
release-name
(Optional)
Release name (version, e.g. v1.0.0
).
Default:
${{ github.ref_name }}
release-name-prefix
(Optional)
Release name (version) prefix.
Example: For a release name such as
@actions/github/v1.0.0
it would be@actions/github/
Default:
""
mention-authors
(Optional)
Mention the author of each commit.
Default:
true
mention-new-contributors
(Optional)
Mention new contributors at the bottom of the changelog (New Contributors).
Default:
true
include-compare-link
(Optional)
Include GitHub compare at the bottom of the changelog (Full Changelog).
If there is no previous tag determined it'll be ommited regardless of the provided value.
Default:
true
include-pr-links
(Optional)
Include GitHub pull request links at each log if applicable.
Default:
true
include-commit-links
(Optional)
Include GitHub commit links at each log.
Default:
true
semver
(Optional)
Enable semver based version comparison.
If enabled it'll determine whether the github ref is a valid semver string, it'll fail the action in case it's not.
It'll then determine whether the version is a pre-release or not, if it is, the previous version will be selected from any version (pre-release or not) lesser than the current ref, if current ref is not a pre-release, the previous version will be selected only from the latest version (not pre-release) lesser than the current ref.
Default:
true
use-github-autolink
(Optional)
Use GitHub Autolink.
Default:
true
Outputs
changelog
The generated changelog.
prerelease
Indicates whether it's a pre-release or not.
if semver is set to
true
, otherwise this output will always returnfalse
.
release-id
The pre-release id in case of prerelease being true
, latest
otherwise. (e.g. alpha
, beta
, rc
, canary
)
if semver is set to
true
, otherwise this output will always returnlatest
.
Example Usage
Using with default inputs:
- name: Changelog
uses: ardalanamini/auto-changelog@v4
id : changelog
Using with custom inputs:
- name: Changelog
uses: ardalanamini/auto-changelog@v4
id : changelog
with:
github-token : ${{ github.token }}
commit-types : |
feat: New Features
fix: Bug Fixes
build: Build System & Dependencies
perf: Performance Improvements
docs: Documentation
test: Tests
refactor: Refactors
chore: Chores
ci: CI
style: Code Style
revert: Reverts
default-commit-type : Other Changes
release-name : v1.0.0
release-name-prefix : ""
mention-authors : true
mention-new-contributors: true
include-compare-link : true
include-pr-links : true
include-commit-links : true
semver : true
use-github-autolink : true