看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!
GitHub Checks API 意在实现向持续集成工作流中添加代码检查,诸如对源代码文件做Lint 静态分析后,将结果直接展示在PULL 请求视图中。反馈信息可达用户预期的详细程度,包括给出导致问题的代码行,使得代码提交者可以修复问题,并在代码上运行新的检查。
GitHub Check API 可以看成是对传统 GitHub 状态 API 的一次革命性改进。它支持使用外部服务对提交情况标记一些检查状态,例如fail
、pass
等,并将检查状态反映在提交所涉及的所有 PULL 请求中。使用 Check API,集成者现在可对提交和 PR 状态具有更细力度的控制,包括success
、failure
、neutral
、cancelled
、timed_out
、action_required
、queued
、_progress
和completed
。此外,检查可针对文本信息、图像等多种数据。这使得用户可以构建复杂工作流,对一次提交或 PR 做多次检查。GitHub 将展示所有通过的、失败的以及需要用户注意的检查。
GitHub 支持多种检查工作流控制等级:
- 自动(Automatic):对所有具有
checks:write
权限的已安装应用发送事件,以启动对此类应用的更改分析。GitHub UI 将列出所有运行检查中的应用,由集成者和开发人员监控检查过程,并在必要时采取行动。 - 用户(User):: 用户可以通过
POST /repos/:owner/:repo/check-suite-requests
这样的请求,或是通过在提交消息中添加skip-checks: true
、request-checks: true
等指令,请求运行指定的检查。 - Web UI:用户可以使用 GitHUb Web UI,独立或一并运行各种检查。
需运行检查的 GitHub 应用必须支持对 check_suite WebHook 的处理。基于此,应用可创建一个新的 check run ,并由 GitHub 添加到 Check Suite 中。Check Suite 概要描述了应用所有的检查和输出情况。应用初始创建的检查,将运行在queued
或in progress
状态。在检查开展过程中,状态将会得以更新。如果想要了解应用和 GitHub 间所有需交换消息的细节,请参考上述官方文档。
当前,GitHub Checks API 仅支持 GitHub REST API。对 GraphQL API 的支持正在实现中。
查看英文原文: GitHub Checks API Enables Apps for Advanced Continuous Integration
评论