4 个版本 (重大更改)

0.4.0 2020 年 5 月 22 日
0.3.0 2020 年 5 月 19 日
0.2.0 2020 年 5 月 17 日
0.1.1 2020 年 5 月 16 日

#31 in #release

MIT/Apache

98KB
2.5K SLoC

Rust 2.5K SLoC // 0.0% comments Shell 303 SLoC // 0.1% comments

ccclog

从由 Conventional Commits 创建的提交消息生成变更日志。

Github Action codecov Latest version Documentation Docker License

示例

入门

  • 从工作目录的最新标签创建变更日志
❯❯ ccclog
## [0.0.0] - 2020-05-16
### Feat
- [[6274215]] add essential feature (Wataru Matsui)
- [[e4cff17]] add init (Wataru Matsui)


[6274215]: https://github.com/watawuwu/ccclog/commit/62742151681860a5f9513510015035a8c0f6fdba
[e4cff17]: https://github.com/watawuwu/ccclog/commit/e4cff17b4c8b7103cea4e36eb34dd539937af4ba
  • 其他用法
USAGE:
    ccclog [FLAGS] [OPTIONS] [--] [ARGS]

FLAGS:
    -e, --enable-email-link    Make a link to the author using git config.email
    -h, --help                 Prints help information
    -r, --reverse              Reverse commit display order
    -V, --version              Prints version information

OPTIONS:
    -s, --ignore-summary <ignore-summary>
            Ignore summary use regex. Syntax: https://docs.rs/regex/1.3.7/regex/#syntax

    -t, --ignore-types <ignore-types>...
            Ignore commit type. ex) feat|fix|build|doc|chore|ci|style|refactor|perf|test

    -i, --root-indent-level <root-indent-level>    Change markdown root subject indent [default: 2]
    -p, --tag-prefix <tag-prefix>                  If there are multiple tag formats, specify the target prefix

ARGS:
    <REPO_PATH>        Working directory of git [default: .]
    <REVISION_SPEC>    Revision spec. Ref to https://git.js.cn/book/en/v2/Git-Tools-Revision-Selection

从 Github Action 使用

输入

repo_path

git 的工作目录。

revision_spec

修订规范。参考 https://git.js.cn/book/en/v2/Git-Tools-Revision-Selection

options

ccclog 命令选项。可以在命令行上指定的选项可以按原样指定(允许多个选项)。例如) --reverse --tag-prefix=prefix-v

输出

changelog

生成的变更日志

示例用法

name: Github Action Sample

on:
  push:
    tags:
     - '*.*.*'

jobs:
  create_github_release:
    name: Create Github release
    # If you use actions, use the platform that docker works
    runs-on: ubuntu-latest

    steps:
    - name: Setup code
      uses: actions/checkout@v2
      with:
        # Set the required number to create a changelog.
        # If the history is small, it is recommended to specify 0 and acquire all history.
        fetch-depth: 0

    - name: Fetch all tags
      # Get the tags to create history
      # `actions/checkout@v2` has the --not-tags option
      run: git fetch origin +refs/tags/*:refs/tags/*

    - name: Create Changelog
      id: create_changelog
      uses: watawuwu/ccclog@gha-v0
      # with:
      #   repo_path: "."
      #   revision_spec: "..HEAD"
      #   options: '--root-indent-level=3 --tag-prefix=component-v --ignore-summary=cargo\srelease.+'

    # You can also exec the binary
    # - name: Create Changelog
    #   id: create_changelog
    #   shell: bash -x {0}
    #   run: |
    #     mkdir bin && curl --tlsv1.2 -sSf https://raw.githubusercontent.com/watawuwu/ccclog/master/install.sh | sh -s -- --prefix ./
    #     changelog="$(bin/ccclog)"
    #     changelog="${changelog//$'\n'/'%0A'}"
    #     echo "::set-output name=changelog::$changelog"

    - name: Create release
      id: create_release
      uses: actions/create-release@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        tag_name: ${{ github.ref }}
        release_name: ${{ github.ref }}
        draft: false
        prerelease: false
        # outputs.changelog parameter is available
        body: ${{ steps.create_changelog.outputs.changelog }}

安装

  • 直接安装二进制文件
❯❯ curl --tlsv1.2 -sSf https://raw.githubusercontent.com/watawuwu/ccclog/master/install.sh | sh
  • 编译并安装
❯❯ git clone https://github.com/watawuwu/ccclog.git && cd ccclog

❯❯ make install
  • 使用 cargo 安装
❯❯ cargo install ccclog

贡献

请阅读 CONTRIBUTING.md 了解我们的行为准则和向我们提交拉取请求的过程的详细信息。

版本控制

我们使用 SemVer 进行版本控制。

许可证

此项目受以下任一许可证的许可:

任选其一。

贡献

除非你明确声明,否则任何有意提交以包含在作品中的贡献,如 Apache-2.0 许可证中定义的,应如上所述双重许可,不附加任何额外条款或条件。

作者

  • Wataru Matsui

依赖项

~23MB
~473K SLoC