You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions的PR中添加UI可见的自定义检查状态?

问题根源与解决方法

1. 接口用错了

你调用的Commit Status API,只会在仓库主页的提交记录旁显示小状态图标,不会出现在PR的「检查」标签页里。而super-linter那种可展开的详细检查状态,用的是GitHub Checks API——这是两个完全不同的接口,这就是UI没显示的核心原因。

2. 正确实现步骤

(1)配置权限

在GitHub Actions的workflow文件里,给任务分配必要权限:

permissions:
  checks: write
  contents: read

创建检查状态必须要有checks: write权限。

(2)调用Checks API生成检查项

用脚本调用Checks API,核心参数不能错:

  • name:检查项的名称(对应super-linter里的Linted: ...)
  • head_sha:PR的头提交SHA,用${{ github.event.pull_request.head.sha }}获取;如果是push事件,用${{ github.sha }}
  • status:可选queued/in_progress/completed
  • 若状态为completed,还要指定conclusion(比如success/failure)和output来展示详细内容

示例curl命令(在Actions中执行):

curl -X POST \
  -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
  -H "Accept: application/vnd.github.v3+json" \
  ${{ github.api_url }}/repos/${{ github.repository }}/check-runs \
  -d '{
    "name": "自定义检查: 代码规范扫描",
    "head_sha": "${{ github.event.pull_request.head.sha }}",
    "status": "completed",
    "conclusion": "success",
    "output": {
      "title": "代码规范扫描通过",
      "summary": "所有文件符合规范要求",
      "text": "- 扫描文件数: 12\n- 发现问题数: 0"
    }
  }'

(3)关键注意点

  • 别再混用Commit Status和Checks API:前者是轻量状态标记,后者才是生成带详情的检查项
  • 默认的GITHUB_TOKEN配置权限后就能用,不需要手动创建个人令牌

3. 验证

调用成功后,去PR页面的「检查」标签页,就能看到自定义的检查项,点击可展开查看详细内容,和super-linter的效果一致。

内容的提问来源于stack exchange,提问作者rzlvmp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:57:57