@semantic-release/ github (英语)
语义释放 发布一个插件 GitHub 发布 并评论发布的"拉出请求"/"问题".
| 步骤 | 说明 |
|---|---|
verifyConditions | 验证认证的存在和有效性(通过 环境变量)和 资产 选项配置. |
publish | 发布a GitHub 发布,可选择上传文件资产. |
addChannel | 更新a GitHub 发布是因为 pre-release 字段. |
success | 在每个注释中添加注释 GitHub 问题 或者说 拉请求 解决了释放问题和以前尚未解决的问题 fail 步骤. |
fail | 打开或更新 a GitHub 问题 以及导致发行失败的错误信息. |
安装
$ npm install @semantic-release/github -D
使用量
插件可以在 语义释放 配置文件数字 :
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
["@semantic-release/github", {
"assets": [
{"path": "dist/asset.min.css", "label": "CSS distribution"},
{"path": "dist/asset.min.js", "label": "JS distribution"}
]
}],
]
}
以此为例 GitHub 发布 将随文件一起发布 dist/asset.min.css 财务报告和审定财务报表 dist/asset.min.js。 。 。 .
配置
GitHub 认证
GitHub 认证配置为 所需经费 并可以通过 环境变量。 。 。 .
跟着 为命令行创建个人访问符 文档以获取认证符。 必须在您的 CI 环境中通过 GH_TOKEN 环境变量。 与该令牌相关的用户必须具有向寄存器推出权限.
当创建符号时 最低要求范围 它们是:
repo用于私人仓库public_repo公共存储器
关于 GitHub 行动的说明: 您可以使用密件中提供的默认符号 (原始内容存档于2018-10-21). GITHUB TOKEN然而,使用此符号完成的发布不会触发启动其他工作流程的发布事件. 如果您有触发新创建的释放的动作, 请为此使用生成的代号, 并将其存储在您的存储库的秘密中( GITHUB TOKEN 以外的任何名称都很好) .
使用时 (原始内容存档于2018-10-21). GITHUB TOKEN,则 最低许可 它们是:
contents: write能够发布 GitHub 发布issues: write* 能够就已公布的问题发表意见pull-requests: write能够对已发布的拉动请求进行评论
环境变量
| 变量 | 说明 |
|---|---|
GH_TOKEN 或者说 GITHUB_TOKEN | 要求. 用于认证与 GitHub 的标志 . |
GITHUB_API_URL 或者说 GH_URL 或者说 GITHUB_URL | GitHub企业端点. |
GH_PREFIX 或者说 GITHUB_PREFIX | GitHub Entertainment API前缀. |
选项
| 选项 | 说明 | 默认 |
|---|---|---|
githubUrl | GitHub企业端点. | GH_URL 或者说 GITHUB_URL 环境变量. |
githubApiPathPrefix | GitHub Entertainment API前缀. | GH_PREFIX 或者说 GITHUB_PREFIX 环境变量. |
proxy | 用于访问 GitHub API 的代理 。 设定为 false 以禁用代理服务器。 见 代理服务器。 。 。 . | HTTP_PROXY 环境变量. |
assets | 要上传到发布的文件阵列 。 见 资产。 。 。 . | - 说吧 |
successComment | 评论要加入每个问题,拉出请求通过发行解决. 设定为 false 以禁用对问题的评论并拉动请求。 见 成功Comment。 。 。 . | :tada: This issue has been resolved in version ${nextRelease.version} :tada:\n\nThe release is available on [GitHub release](<github_release_url>) |
failComment | 发行失败时创建的问题内容 。 设定为 false 无法在发布失败时打开问题。 见 失败Comment。 。 。 . | 有链接的友好消息 语义释放 文档和支持,并列出导致发布失败的错误清单. |
failTitle | 发行失败时创建的问题标题 。 设定为 false 无法在发布失败时打开问题. | The automated release is failing 🚨 |
labels | 这个 标签 以添加在发布失败时创建的问题。 设定为 false 不添加任何标签. | ['semantic-release'] |
assignees | 这个 受让人 以添加在发布失败时创建的问题. | - 说吧 |
releasedLabels | 这个 标签 以添加每个问题,并拉动通过发行解决的请求。 设定为 false 不添加任何标签。 见 已放出的标签。 。 。 . | ['released<%= nextRelease.channel ? \ 在@${nextrelease. channel}#####$#nextRelease.channel####:"("""%>")- |
addReleases | 将添加释放链接到 GitHub 释放 。 可能会 false, (中文(简体) ), "bottom" 或者说 "top"。见 添加释放。 。 。 . | false |
代理服务器
可能会 false,一个代理 URL 或一个 Object 具有下列属性:
| 财产 | 说明 | 默认 |
|---|---|---|
host | 要求. 要连接到的代理主机 . | - 说吧 |
port | 要求. 要连接的代理端口 . | 从中提取的文件名 path。 。 。 . |
secureProxy | 若为 true,然后使用 TLS 连接到代理服务器. | false |
headers | 在HTTP CONNECT方法下发送额外的HTTP头. | - 说吧 |
见 节点- https- 代理代理 财务报告和审定财务报表 节点- http- 代理代理 其他细节.
代理示例
'http://168.63.76.32:3128': 使用运行在主机上的代理 168.63.76.32 和端口 3128 每个 GitHub API 请求.
{host: '168.63.76.32', port: 3128, headers: {Foo: 'bar'}}: 使用运行在主机上的代理 168.63.76.32 和端口 3128 每个 GitHub API 请求,设置 Foo 页眉值为 bar。 。 。 .
资产
可能是一个 阴影 或和 Array 联 合 国
缩写 财务报告和审定财务报表 Objects 有下列属性:
| 财产 | 说明 | 默认 |
|---|---|---|
path | 要求. A 类 阴影 以识别要上传的文件. | - 说吧 |
name | GitHub 发行的可下载文件名称. | 从中提取的文件名 path。 。 。 . |
label | GitHub 发布时显示的文件的简短描述 . | - 说吧 |
表格中的每个条目 assets Array 被逐个地颂扬。 A 类 阴影
可能是一个 String (单位:千美元)"dist/**/*.js" 或者说 "dist/mylib.js"或一个 Array 联 合 国 Strings,将一起被颂扬
(单位:千美元)["dist/**", "!**/*.css"]) (中文(简体) ).
如果配置了目录,将包含该目录下的所有文件及其子项.
这个 name 财务报告和审定财务报表 label 每笔资产都是通过 Lodash 模板。有下列变量:
| 参数 | 说明 |
|---|---|
branch | 释出所从之分支. |
lastRelease | Object 与 version, (中文(简体) ), gitTag 财务报告和审定财务报表 gitHead 最后的释放. |
nextRelease | Object 与 version, (中文(简体) ), gitTag, (中文(简体) ), gitHead 财务报告和审定财务报表 notes 正在完成的释放. |
commits | Array 承诺 Object编号与 hash, (中文(简体) ), subject, (中文(简体) ), body message 财务报告和审定财务报表 author。 。 。 . |
说明: 如果一个文件在 assets 即便它也有匹配点,它也会被包含在内 .gitignore。 。 。 .
资产实例
'dist/*.js':包括所有 js 文档中 dist 目录,但不在其子目录中.
[['dist', '!**/*.css']]: 包含全部文件 dist 目录及其分目录不包括 css
文档.
[{path: 'dist/MyLibrary.js', label: 'MyLibrary JS distribution'}, {path: 'dist/MyLibrary.css', label: 'MyLibrary CSS distribution'}]:包括 dist/MyLibrary.js 财务报告和审定财务报表 dist/MyLibrary.css 文件,并标签 MyLibrary JS distribution 财务报告和审定财务报表 MyLibrary CSS distribution 在 GitHub 发布中.
[['dist/**/*.{js,css}', '!**/*.min.*'], {path: 'build/MyLibrary.zip', label: 'MyLibrary'}]:包括所有 js 财务报告和审定财务报表
css 文档中 dist 目录及其子目录,不包括已修改的版本,加
build/MyLibrary.zip 文件并标签 MyLibrary 在 GitHub 发布中.
[{path: 'dist/MyLibrary.js', name: 'MyLibrary-${nextRelease.gitTag}.js', label: 'MyLibrary JS (${nextRelease.gitTag}) distribution'}]: 包含文件 dist/MyLibrary.js 并上传到 GitHub 发布中 MyLibrary-v1.0.0.js 和标签 MyLibrary JS (v1.0.0) distribution 这将生成链接 :
[MyLibrary JS (v1.0.0) distribution](MyLibrary-v1.0.0.js)
成功Comment
问题评论的讯息是用 Lodash 模板。有下列变量:
| 参数 | 说明 |
|---|---|
branch | Object 与 name, (中文(简体) ), type, (中文(简体) ), channel, (中文(简体) ), range 财务报告和审定财务报表 prerelease 用于释放的分支的属性. |
lastRelease | Object 与 version, (中文(简体) ), channel, (中文(简体) ), gitTag 财务报告和审定财务报表 gitHead 最后的释放. |
nextRelease | Object 与 version, (中文(简体) ), channel, (中文(简体) ), gitTag, (中文(简体) ), gitHead 财务报告和审定财务报表 notes 正在完成的释放. |
commits | Array 承诺 Object编号与 hash, (中文(简体) ), subject, (中文(简体) ), body message 财务报告和审定财务报表 author。 。 。 . |
releases | Array 释放 Objects 用于发布的每一版,可选发布数据,例如: name 财务报告和审定财务报表 url。 。 。 . |
issue | A 类 GitHub API 拖取请求对象 与犯罪或 Object 与 number 财产,通过 关键词 |
成功Comment 示例
这个 successComment This ${issue.pull_request ? 'pull request' : 'issue'} is included in version ${nextRelease.version} 生成注释 :
此拉力请求包含在1.0.0版本中
失败Comment
用于问题内容的信息由 Lodash 模板。有下列变量:
| 参数 | 说明 |
|---|---|
branch | 释放失败的分支. |
errors | 一个 Array 联 合 国 语义释放错误。每个错误都有 message, (中文(简体) ), code, (中文(简体) ), pluginName 财务报告和审定财务报表 details 属性.pluginName 包含丢出错误的插件的软件包名称.details 包含关于降标格式错误的信息. |
失败Comment 示例
这个 failComment This release from branch ${branch.name} had failed due to the following errors:\n- ${errors.map(err => err.message).join('\\n- ')} 生成注释 :
分支主机的这一释放由于以下错误而失败 :
- 错误消息 1
- 错误消息 2
已放出的标签
每个标签名称都是用 Lodash 模板。有下列变量:
| 参数 | 说明 |
|---|---|
branch | Object 与 name, (中文(简体) ), type, (中文(简体) ), channel, (中文(简体) ), range 财务报告和审定财务报表 prerelease 用于释放的分支的属性. |
lastRelease | Object 与 version, (中文(简体) ), channel, (中文(简体) ), gitTag 财务报告和审定财务报表 gitHead 最后的释放. |
nextRelease | Object 与 version, (中文(简体) ), channel, (中文(简体) ), gitTag, (中文(简体) ), gitHead 财务报告和审定财务报表 notes 正在完成的释放. |
commits | Array 承诺 Object编号与 hash, (中文(简体) ), subject, (中文(简体) ), body message 财务报告和审定财务报表 author。 。 。 . |
releases | Array 释放 Objects 用于发布的每一版,可选发布数据,例如: name 财务报告和审定财务报表 url。 。 。 . |
issue | A 类 GitHub API 拖取请求对象 与犯罪或 Object 与 number 财产,通过 关键词 |
已放出的标签示例
这个 releasedLabels ['released<%= nextRelease.channel ? ` on @\${nextRelease.channel}` : "" %> from <%= branch.name %>'] 生成标签 :
发布于 @ next 从分支下一个
添加释放
向 GitHub 发布机构添加其它发布内容的链接.
此选项的有效值为 false, (中文(简体) ), "top" 或者说 "bottom"。 。 。 .
添加释放实例
见 引入公关 举个例子说明它会是什么样子.