Project Icon

release

简化GitHub发布流程的自动化命令行工具

Release是Vercel开发的开源命令行工具,可通过npm安装,用于自动生成GitHub Release并填充最新变更。支持语义化版本控制,包括主要、次要、补丁和预发布版本。工具提供自定义钩子功能,方便用户定制发布内容。Release致力于简化开发团队的发布流程,提升工作效率。

Release

Release 是一个命令行工具,用于自动生成新的 GitHub Release 并填充自上次发布以来的变更(提交)。

使用方法

首先,从 npm 安装软件包:

npm install -g release

或者,你可以使用 Yarn 来安装:

yarn global add release

安装完成后,你可以在项目目录中运行以下命令:

release <type>

可以传递 <type> 参数。如果省略,将从最近的提交和标签创建 GitHub Release

根据 SemVer 规范,参数可以是以下值之一:

  • major:引入了不兼容的 API 更改
  • minor:以向后兼容的方式添加了功能
  • patch:应用了向后兼容的错误修复

除了这些值外,我们还支持创建预发布版本,如 3.0.0-canary.1

release pre

你还可以用自定义后缀替换 "canary",如下所示:

release pre <suffix>

假设你提供 "beta" 作为 <suffix>,你的发布版本将是 3.0.0-beta.1 – 以此类推...

选项

以下命令将显示所有可用选项的列表:

release help

预定义类型

如果你想进一步自动化 release,可以通过在括号中添加到标题描述中来指定提交的更改类型:

错误日志记录现在可用了 (patch)

假设你为某个提交定义了类型,release 就不会要求你手动设置类型。这将使创建发布的过程更快。

要预定义某个提交应该从列表中排除,可以使用以下关键字:

这是一个提交消息 (ignore)

自定义钩子

有时你可能想通过添加介绍文本、替换某些数据或仅更改变更顺序来过滤插入新版本的信息。

使用自定义钩子,上述示例(以及更多)很容易实现:

默认情况下,release 会在项目的根目录中查找名为 release.js 的文件。该文件应导出一个带有两个参数的函数,并始终返回一个 String(最终发布):

module.exports = async (markdown, metaData) => {
    // 使用可用数据创建自定义发布
    return markdown;
};

在上面的示例中,markdown 包含发布的 String(如果你只想替换某些内容)。此外,metaData 包含以下属性:

属性名内容
changeTypes更改类型及其描述
commits自上次发布以来的提交列表
groupedCommits类似于 commits,但按更改类型分组
authors发布协作者的 GitHub 用户名

提示: 你可以使用 --hook-H 标志指定钩子文件的自定义位置,该标志接受相对于当前工作目录的路径。

为什么?

当我们 Vercel 将所有 GitHub 仓库从维护 HISTORY.md 文件转换为使用 GitHub Releases 时,我们需要一种方法从自己的设备自动生成这些发布,而不是总是需要在浏览器中打开页面并手动为每个更改添加说明。

贡献

你可以在这里找到身份验证流程。

  1. Fork 此仓库到你自己的 GitHub 账户,然后 clone 到你的本地设备
  2. 如果已安装软件包,请先卸载:npm uninstall -g release
  3. 将软件包链接到全局模块目录:npm link
  4. 现在你可以在命令行中使用 release 了!

和往常一样,你可以使用 npm test 运行测试,看看你的更改是否破坏了任何东西。

致谢

非常感谢 Daniel Chatfieldnpm 上捐赠 "release" 这个名称,以及我可爱的团队告诉我他们的需求以及如何使这个软件包尽可能高效。

作者

Leo Lamprecht (@leo)

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号