github 上的 release 信息都是手写的吗?

2019-10-09 10:55:41 +08:00
 ffffb

看到很多仓库的 release 信息都挺清晰的,例如: https://github.com/ElemeFE/element/releases https://github.com/microsoft/TypeScript/releases

我所知道的是 github 会根据 tag 自动生成一个 release,但是生成出来的是没有这些信息的。这些难道都是手动新建的?还是有什么脚本可以参考?

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/607353

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX