Changelog CI is a GitHub Action that enables a project to utilize anautomatically generated changelog.
The workflow can be configured to perform any (or all) of the following actions
Generate changelog using Pull Request or Commit Messages.
Prepend the generated changelog to the CHANGELOG.md
file and then Commit modified CHANGELOG.md
file to the release pull request.
Add a Comment on the release pull request with the generated changelog.
Changelog CI uses python
and GitHub API
to generate changelog for arepository. First, it tries to get the latest release
from the repository (Ifavailable). Then, it checks all the pull requests / commits merged after the last releaseusing the GitHub API. After that, it parses the data and generatesthe changelog
. Finally, It writes the generated changelog at the beginning ofthe CHANGELOG.md
(or user-provided filename) file. In addition to that, if auser provides a config (JSON/YAML file), Changelog CI parses the user-provided configfile and renders the changelog according to users config. Then the changesare committed and/or commented to the release Pull request.
To use this Action The pull request title must match with thedefault regex
or the user-provided regex
from the config file.
Default Title Regex: ^(?i:release)
(title must start with the word "release" (case-insensitive))
Default Changelog Type: pull_request
(Changelog will be generated using pull request title),You can generate changelog using commit_message
as wellUsing an optional configuration file.
Default Version Number Regex: This Regex will be checked against a PullRequest title. This follows SemVer
(Semantic Versioning) pattern. e.g. 1.0.0
, 1.0
, v1.0.1
etc.
For more details on Semantic Versioning pattern go to thislink: https://regex101.com/r/Ly7O1x/3/
Note: You can use a custom regular expression to parse your changelog addingone to the optional configuration file. To learn more, seeUsing an optional configuration file.
To Enable Commenting, Disable Committing, Group Changelog Items, Use Commit Messages andsome other options, see Configuration to learn more.
To integrate Changelog CI
with your repositories Actions, Put this step insideyour .github/workflows/workflow.yml
file:
- name: Run Changelog CI
uses: saadmk11/changelog-ci@v0.8.0
with:
# Optional, you can provide any name for your changelog file,
# defaults to `CHANGELOG.md` if not provided.
changelog_filename: MY_CHANGELOG.md
# Optional, only required when you want more customization
# e.g: group your changelog by labels with custom titles,
# different version prefix, pull request title and version number regex etc.
# config file can be in JSON or YAML format.
config_file: changelog-ci-config.json
# Optional, This will be used to configure git
# defaults to `github-actions[bot]` if not provided.
committer_username: 'test'
committer_email: 'test@test.com'
env:
# optional, only required for `private` repositories
# and required if the changelog comment
# option is turned on through the config file
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
Changelog CI Badge:
![Changelog CI Status](https://github.com/<username>/<repository>/workflows/Changelog%20CI/badge.svg)
Output:
Changelog CI is will run perfectly fine without including a configuration file.If a user seeks to modify the default behaviors of Changelog CI, they can do soby adding a JSON
or YAML
config file to the project. For example:
Including JSON
file changelog-ci-config.json
:
with:
config_file: changelog-ci-config.json
Including YAML
file changelog-ci-config.yaml
:
with:
config_file: changelog-ci-config.yml
changelog_type
You can use pull_request
(Default) or commit_message
as the value for this option.pull_request
option will generate changelog using pull request title.commit_message
option will generate changelog using commit messages.
header_prefix
The prefix before the version number. e.g. version:
in Version: 1.0.2
commit_changelog
Value can be true
or false
. if not provided defaults to true
. If it isset to true
then Changelog CI will commit to the release pull request.
comment_changelog
Value can be true
or false
. if not provided defaults to false
. If it isset to true
then Changelog CI will comment on the release pull request. Thisrequires GITHUB_TOKEN
to be added to the workflow.
pull_request_title_regex
If the pull request title matches with this regex
Changelog CI will generatechangelog for it. Otherwise, it will skip the changelog generation.If pull_request_title_regex
is not provided defaults to ^(?i:release)
,then the title must begin with the word "release" (case-insensitive).
version_regex
This regex
tries to find the version number from the pull request title. incase of no match, changelog generation will be skipped. if version_regex
isnot provided, it defaults toSemVer
pattern.
group_config
By adding this you can group changelog items by your repository labels withcustom titles.
See this example output with group_config
See this example output without group_config
Written in JSON:
{
"changelog_type": "commit_message",
"header_prefix": "Version:",
"commit_changelog": true,
"comment_changelog": true,
"pull_request_title_regex": "^Release",
"version_regex": "v?([0-9]{1,2})+[.]+([0-9]{1,2})+[.]+([0-9]{1,2})\\s\\(\\d{1,2}-\\d{1,2}-\\d{4}\\)",
"group_config": [
{
"title": "Bug Fixes",
"labels": ["bug", "bugfix"]
},
{
"title": "Code Improvements",
"labels": ["improvements", "enhancement"]
},
{
"title": "New Features",
"labels": ["feature"]
},
{
"title": "Documentation Updates",
"labels": ["docs", "documentation", "doc"]
}
]
}
Written in YAML:
changelog_type: 'commit_message' # or 'pull_request'
header_prefix: 'Version:'
commit_changelog: true
comment_changelog: true
pull_request_title_regex: '^Release'
version_regex: 'v?([0-9]{1,2})+[.]+([0-9]{1,2})+[.]+([0-9]{1,2})\s\(\d{1,2}-\d{1,2}-\d{4}\)'
group_config:
- title: Bug Fixes
labels:
- bug
- bugfix
- title: Code Improvements
labels:
- improvements
- enhancement
- title: New Features
labels:
- feature
- title: Documentation Updates
labels:
- docs
- documentation
- doc
In this Example version_regex
matches any version number including date (e.g: v1.1.0 (01-23-2018)
) in the pull request title. If you don't provideany regex
Changelog CI will use defaultSemVer
pattern. e.g. 1.0.1
, v1.0.2
.
Here the changelog will be generated using commit messages because of changelog_type: 'commit_message'
.
Here pull_request_title_regex
will match any pull request title thatstarts with Release
you can match Any Pull Request Title by adding this pull_request_title_regex": ".*"
,
Click here to see the example output using this config
name: Changelog CI
# Controls when the action will run. Triggers the workflow on a pull request
on:
pull_request:
types: [ opened, reopened ]
jobs:
build:
runs-on: ubuntu-latest
steps:
# Checks-out your repository
- uses: actions/checkout@v2
- name: Run Changelog CI
uses: saadmk11/changelog-ci@v0.8.0
with:
changelog_filename: CHANGELOG.md
config_file: changelog-ci-config.json
# Add this if you are using it on a private repository
# Or if you have turned on commenting through the config file.
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
The code in this project is released under the MIT License.
查找方法: ST05 - SQL 跟踪 - 找到 INSERT * ---(TABLE : VBMOD ) 规律 : MM 模块 日志记录对应的 INCLUDE : F(主程序后4位)CDC* 1 , 采购订单 (SAPMM06E) 显示日志FM: ME_CHANGEDOC_SELECT 采购记录日志: EINKBELEG_WRITE_DOCUMENT i
简介 基本概念 GitLab-CI GitLab-CI 即为 GitLab Continuous Integration,也就是GitLab自带的持续集成工具。 其思想就是每次用户push代码到GitLab上时触发执行gitlab-ci.yml 脚本,脚本的内容包括了测试,编译,部署等一系列自定义的内容。 GitLab-Runner 安装 $ curl -L https://packages.gi
我们就可以使用 standard-version 进行版本管理自动化,包括更新 CHANGELOG.md,以及使用 git tag。它也会自动修改 package.json 里的 version。 在使用 standard-version 之前,需要遵循 Conventional Commit Specifications 来进行标准化的 commit message 编写。这是因为 standa
3.10.2 【bug修复】- 当组件的根为异步组件时,视图更新错误 3.10.1 【优化】- 模板预热过程,删除不必要的对象复制 【新特性】- dev 模式增加 before 生命周期钩子,应用于 devtools 【bug修复】- s-is 动态组件更新时,如果组件类型发生变化,视图更新错误 3.10.0 【新特性】- 支持通过 s-is,声明动态组件类型 【删除】- 移除 getCompon
[v0.2.0] 2017-06-17 https://github.com/open-falcon/falcon-plus/releases/tag/v0.2.0 http://www.jianshu.com/p/6fb2c2b4d030 全新的前端 Open-Falcon 所有前端组件进行了统一整合,包括dashboard、screen、portal、alarm-dashboard、UIC、f
Changelog Create a Changelog site of your Product Demo Setup Guide Quick Setup Fork the project Changelog Edit _config.yml with your data (check settings section) Connect to the domain with Netlify. P
Version 2.7 (codename to be selected, release date to be announced) Choice and prefix loaders now dispatch source and template lookup separately in order to work in combination with module loaders as
Here you can see the full list of changes between each Flask release. Version 1.0 (release date to be announced, codename to be selected) Added SESSION_REFRESH_EACH_REQUEST config key that controls th
qqPlayCore.js版本更新内容 790 qqPlayCore version:60a66b7 Add 增加h5游戏跳转到其他游戏接口 Bugfixed BKBufferToArrayBuffer 参数判断空保护 IOS H5游戏 点击退出按钮无法关闭游戏修复 分包加载的逻辑顺序与回调顺序的修复 785 新版qqPlayCore version:5877 Add 增加lifeCycle模块