如何将GitHub Check Run绑定到指定的GitHub Actions工作流运行实例?
可以将Check Run绑定到特定工作流运行实例
要解决Check Run随机关联工作流的问题,你只需要在调用octokit.rest.checks.create时添加check_suite_id参数,这个参数对应目标工作流运行实例关联的唯一Check Suite ID。
获取Check Suite ID的两种场景
- 在目标工作流内部创建Check Run:直接从当前工作流的
context中提取,context.payload.check_suite.id就是当前运行实例对应的Check Suite ID。 - 在外部(如另一个工作流或独立服务)创建:先通过GitHub API查询目标工作流运行实例的详情(调用
actions.getWorkflowRun接口),结果里会包含check_suite_id字段,将其取出传入即可。
修改后的代码示例(工作流内部创建)
const context = require('@actions/github').context; octokit.rest.checks.create({ ...context.repo, name: name_task, head_sha: context.sha, check_suite_id: context.payload.check_suite.id, // 关键参数:绑定到当前工作流的Check Suite status: 'completed', conclusion: 'success', output: { title: 'Results', summary } });
原理说明
每个工作流运行实例都会对应一个唯一的Check Suite,指定check_suite_id后,GitHub会将Check Run精准关联到该Check Suite对应的工作流运行实例,不会再出现随机关联或重跑时绑定到旧实例的问题。
内容的提问来源于stack exchange,提问作者Telion
相关产品推荐
相关产品推荐

