从提交和标记

时间:2016-11-29 12:10:50

标签: git bitbucket changelog

我试图为项目生成更改日志(bitbucket.org中的repo),但我找不到简单的解决方案。我们正在使用this pattern

(<type>(<scope>): <subject>)

填写提交消息,标记为版本(0.1,0.2,0.3)。

是否有任何开箱即用(某些脚本,npm包等等)或者我能做的最好的事情是使用git log编写一些自定义脚本并解析数据(提交消息等)。 ..)?

我知道有一个github-changelog-creator,但只要这个repo在bitbucket repo中,我就无法使用。

1 个答案:

答案 0 :(得分:4)

我们正在使用这个简单的shell脚本来生成按标签排序的分层更改日志,并在最上面添加最新标记。

#!/usr/bin/env bash
previous_tag=0
for current_tag in $(git tag --sort=-creatordate)
do

if [ "$previous_tag" != 0 ];then
    tag_date=$(git log -1 --pretty=format:'%ad' --date=short ${previous_tag})
    printf "## ${previous_tag} (${tag_date})\n\n"
    git log ${current_tag}...${previous_tag} --pretty=format:'*  %s [View](https://bitbucket.org/projects/test/repos/my-project/commits/%H)' --reverse | grep -v Merge
    printf "\n\n"
fi
previous_tag=${current_tag}
done

您可以将它作为一些shel文件放在项目根目录中并运行它(取决于您可能需要使其可执行的平台),如下所示

sh change-log-builder.sh > changelog.md

结果changelog.md看起来像这样

v1.1.0(2017-08-29)

  • 添加IPv6支持[查看]
  • 添加TreeMaker类及其测试。 [显示]

v1.0.9(2017-08-22)

  • 更新composer.json.lock [查看]

v1.0.8(2017-08-22)

  • 添加S3Gateway作为替代类[查看]
  • 删除不再使用的文件[查看]