configuration
Configuration is based on the conventional changelog config spec.
The configuration must be specified in a .versionrc
file in the root of the repository.
YAML or JSON can be used to declare the configuration.
host
, owner
and repository
will not be looked up from package.json
as convco
is build tool agnostic.
Additionally scopeRegex
and template
can be specified to restrict scopes or use a different template directory.
Most configuration is used with convco-changelog
, but scopeRegex
is used in the other commands.
Configuration
config key | description | default value |
---|---|---|
header |
the header of the changelog | "# Changelog\n\n" |
types |
show/hide/group commit types | see default configuration |
preMajor |
automatically set by convco |
true if version <1.0.0 else false |
commitUrlFormat |
a URL to a specific commit hash | "{{host}}/{{owner}}/{{repository}}/commit/{{hash}}" |
compareUrlFormat |
a URL to compare two git shas | "{{host}}/{{owner}}/{{repository}}/compare/{{previousTag}}...{{currentTag}}" |
issueUrlFormat |
a URL to the issue | "{{host}}/{{owner}}/{{repository}}/issues/{{id}}" |
userUrlFormat |
a URL to the user’s profile | "{{host}}/{{user}}" |
releaseCommitMessageFormat |
not used | "chore(release): {{currentTag}} |
issuePrefixes |
used to detect issues in the commit body | [ "#" ] |
host |
the host to be used in commitUrlFormat , compareUrlFormat , issueUrlFormat |
extracted from git remote get-url origin |
owner |
the repository owner | extracted from git remote get-url origin |
repository |
the repository url | extracted from git remote get-url origin |
template |
template directory path | empty, the build in template is used |
scopeRegex |
limit valid scopes | "[[:alnum:]]+(?:[-_/][[:alnum:]]+)*" |
URL formats
The commit, compare, issue and user url format can
Default configuration
# .versionrc
---
header: |
# Changelog
types:
- type: feat
section: Features
hidden: false
- type: fix
section: Fixes
hidden: false
- type: build
section: Other
hidden: true
- type: chore
section: Other
hidden: true
- type: ci
section: Other
hidden: true
- type: docs
section: Documentation
hidden: true
- type: style
section: Other
hidden: true
- type: refactor
section: Other
hidden: true
- type: perf
section: Other
hidden: true
- type: test
section: Other
hidden: true
preMajor: false
commitUrlFormat: '{{@root.host}}/{{@root.owner}}/{{@root.repository}}/commit/{{hash}}'
compareUrlFormat: '{{@root.host}}/{{@root.owner}}/{{@root.repository}}/compare/{{previousTag}}...{{currentTag}}'
issueUrlFormat: '{{@root.host}}/{{@root.owner}}/{{@root.repository}}/issues/{{issue}}'
userUrlFormat: '{{host}}/{{user}}'
releaseCommitMessageFormat: 'chore(release): {{currentTag}}'
issuePrefixes:
- '#'
host: null
owner: null
repository: null
template: null
commitTemplate: null
scopeRegex: '[[:alnum:]]+(?:[-_/][[:alnum:]]+)*'
lineLength: 80
wrapDisabled: false
linkCompare: true
linkReferences: true
merges: false
firstParent: false
stripRegex: ''