更新 issue 状态
git:issue-update
关闭或打开 issue
,修改 issue
标签。
# 适用事件
# 工作机制
查找 issue 是否存在 -> 检查是否符合 when 条件(可选) -> 检查是否符合 lint 条件(可选)-> 更新 issue 状态或标签
# issue ID 获取方式
- 如果传入了
fromText
参数,则从fromText
中获取。其中branch.delete
必传fromText
(分支已删除,无法从上下文中获取) - 如果没传入
fromText
参数,则从上下文中获取。push
事件:从本次推送的所有commit
的提交日志中获取- 合并请求类事件:从合并请求中的所有
commit
的提交日志中获取 - 其他事件:从最新的一个
commit
的提交日志中获取
获取方式:提取上述文本中如下两种格式
#issueID
:表示当前仓库的 issue。例如#123
,表示当前仓库 id 为123
的 issuegroupName/repoName#issueID
:表示跨仓库(其他仓库)的 issue。例如:test/test#123
,表示test/test
仓库中 id 为123
的 issue。
注意 #123
或 test/test#123
前需要有空格。
# 提交日志中如何带上 issue ID
提交代码时,可以在提交日志中加上关联的 issue ID, 可以在使用当前内置任务时可以自动提取到关联 issue,用来更新 issue 标签和状态
推荐在提交日志的 body 中带上 issue ID,命令行操作方式如下:
- 方法一:
用 shift + enter
换行,建议 title 和 body 之间加上一个空行
git commit -m "fix(云原生构建): 修复一个错误
cnb/feedback#123"
- 方法二:
以下提交方式 title 和 body 之间会产生两个换行
git commit -m "fix(云原生构建): 修复一个错误" -m "cnb/feedback#123"
# 参数
# fromText
- type:
String
- required:
false
从给定的文本中解析 issue id
。
不声明时,自动从上下文里的提交记录解析。
可以指定一个包含
issue id
引用的文本来声明操作对象,比如:${LATEST_CHANGE_LOG}
。
# state
- type: IssueStateMap
- required:
false
对应 state
属性,为 close
时,可关闭 issue
# label
- type: IssueUpdateLabel
- required:
false
对 label
的操作描述
# when
- type: IssueUpdateStatus
- required:
false
过滤条件,多个条件之间是 or
关系。为空时表示对所有 issue
操作。
# lint
- type: IssueUpdateStatus
- required:
false
检查 issue
是否满足条件,不满足时抛出异常,多个条件之间是 or
关系,为空时表示不做检查。
# defaultColor
- type:
String
- required:
false
添加的标签的默认颜色,当有传入 label.add
参数时才有效
# 输出结果
{
issues // issue 列表
}
# 配置样例
- 合并到 main 后,更新标签
main:
push:
- stages:
- name: update issue
type: git:issue-update
options:
# 移除 “开发中” 标签,添加 “预发布” 标签
label:
add: 预发布
remove: 开发中
# 当有 “feature” 或 “bug” 标签才进行上述标签操作
when:
label:
- feature
- bug
- tag_push 时,关闭 issue,更新标签
$:
tag_push:
- stages:
- name: 发布操作
script: echo "可用发布任务替代当前任务"
# 发布操作后执行 issue 更新操作
- name: update issue
type: git:issue-update
options:
# 关闭 issue
state: close
# 移除 “预发布” 标签,添加 “已发布” 标签
label:
add: 已发布
remove: 预发布
# 当有 “feature” 或 “bug” 标签才进行上述操作
when:
label:
- feature
- bug
- 根据 changelog 添加标签
$:
tag_push:
- stages:
- name: changelog
image: cnbcool/changelog
exports:
latestChangeLog: LATEST_CHANGE_LOG
- name: update issue
type: git:issue-update
options:
fromText: ${LATEST_CHANGE_LOG}
label:
add: 需求已接收
when:
label: feature
← auto-merge reviewer →