看到很多仓库的 release 信息都挺清晰的,例如: https://github.com/ElemeFE/element/releases https://github.com/microsoft/TypeScript/releases
我所知道的是 github 会根据 tag 自动生成一个 release,但是生成出来的是没有这些信息的。这些难道都是手动新建的?还是有什么脚本可以参考?
1
EricXuu 2019-10-09 11:06:15 +08:00 2
可以直接从 commit message 生成 Change log
参考 http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html |
2
ffffb OP @EricXuu 我的也是用这个方法生成 changelog,但是跟 release 信息还是不一样。我的意思是,他们是不是手动去编辑 release 信息,大概的操作就是去到 release 那个页面,然后找到对应的 tag,点击编辑,把对应 changelog 复制进去,然后保存。
|
3
imherer 2019-10-09 11:22:39 +08:00
可能会单独编写吧,毕竟大项目,那么多人都在用。 (我猜的)
|
4
rodjl 2019-10-09 12:25:18 +08:00 via iPhone 1
我一般都是用 semantic release 配合 CI 生成的
|
5
thonatos 2019-10-09 15:18:52 +08:00 1
我在用 github actions + semantic release,传送门: https://zhuanlan.zhihu.com/p/78293527
|
6
ffffb OP 感谢两位,@rodjl @thonatos。我也找到一个叫 release-it 的东西,看了下 semantic release,两个差不多。现在问题来了,我原来就有一个 release 用的脚本,现在在看如何跟 release-it 等配合,只用 release-it 等来填 github 的 release 信息。
|
7
ffffb OP 记录一下最后的办法吧。
由于我本身就有一个 release 脚本,所以就不直接用 semantic release 或者 release it 了。最后是参考了 release-it,使用了 github 的 @octokit/rest 库,直接请求 github 的 createRelease api 来创建。按照 api 的要求传入指定的信息即可。 另外就是要得到 changelog 信息了,我用的是 conventional-changelog,在不传入目标文件的时候,生成的 changelog 信息就会输出到标准输出中,得到之后转成字符串用于后续的 createRelease api 参数。 all set。 |