👋
release-it-free-changelog
An extension based on @release-it/conventional-changelog that allows users to rewrite log content and provides a log topic by default
🏠 Homepage
Prerequisites
- node >=14
Install
yarn add release-it-free-changelog -D
Usage
In the release-it config, for example:
"plugins": {
"release-it-free-changelog": {}
}
Configuration
preset
The default configuration:
{
"preset": {
"name": "conventionalcommits",
"types": [
{
"type": "feat",
"section": "✨ Features | 新功能"
},
{
"type": "fix",
"section": "🐛 Bug Fixes | Bug 修复"
},
{
"type": "chore",
"section": "🚀 Chore | 构建/工程依赖/工具",
"hidden": true
},
{
"type": "docs",
"section": "📝 Documentation | 文档"
},
{
"type": "style",
"section": "💄 Styles | 样式"
},
{
"type": "refactor",
"section": "♻️ Code Refactoring | 代码重构"
},
{
"type": "perf",
"section": "⚡ Performance Improvements | 性能优化"
},
{
"type": "test",
"section": "✅ Tests | 测试",
"hidden": true
},
{
"type": "revert",
"section": "⏪ Revert | 回退",
"hidden": true
},
{
"type": "build",
"section": "📦 Build System | 打包构建"
},
{
"type": "ci",
"section": "👷 Continuous Integration | CI 配置"
}
]
}
}
Or you can also use one of:
angular
atom
codemirror
conventionalcommits
ember
eslint
express
jquery
jscs
-
jshint
Or you can also
If you want to customize the configuration, you can refer to Conventional Changelog Configuration Spec (v2.1.0) for the configuration object to pass as preset
.
changelogFile
Default value: CHANGELOG.md
Set a filename as changelogFile
to write the changelog to.
header
Set the main header for the changelog document:
"plugins": {
"release-it-free-changelog": {
"header": "# Changelog",
}
}
rewriteChangelog
Default value: false
If set to true, you can rewrite the log content,as shown below:
authorName
Default value: true
If set to false, the submitter of each commit will not be displayed
context
Default value: undefined
This option will be passed as the second argument (context
) to
conventional-changelog-core,
for example:
"plugins": {
"release-it-free-changelog": {
"context": {
"data": {
"name": "eric"
}
}
}
}
gitRawCommitsOpts
Default value: undefined
Options for git-raw-commits. For example, you can use the following option to include merge commits into changelog:
{
"plugins": {
"release-it-free-changelog": {
"gitRawCommitsOpts": {
"merges": null
}
}
}
}
parserOpts
Default value: undefined
Options for conventional-commits-parser. For example, you can use the following option to set the merge pattern during parsing the commit message:
{
"plugins": {
"release-it-free-changelog": {
"parserOpts": {
"mergePattern": "^Merge pull request #(\\d+) from (.*)$"
}
}
}
}
writerOpts
Default value: undefined
Options for conventional-changelog-writer. For example, you can use the following option to group the commits by 'scope' instead of 'type' by default.
{
"plugins": {
"release-it-free-changelog": {
"writerOpts": {
"groupBy:" "scope"
}
}
}
}
If you want to customize the templates used to write the changelog, you can do it like in a .release-it.js
file like
so:
const fs = require('fs')
const commitTemplate = fs.readFileSync('commit.hbs').toString()
module.exports = {
plugins: {
'release-it-free-changelog': {
writerOpts: {
commitPartial: commitTemplate
}
}
}
}
🌸 Thanks
This project is heavily inspired by the following awesome projects.
🤝 Contributing
Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.
Show your support
Give a ⭐️ if this project helped you!
📝 License
Copyright © 2022 ericwan ericwan2021@163.com.
This project is MIT licensed.