跳至主要内容

关于状态检查

状态检查可以让你知道你的提交是否满足你正在贡献的仓库设置的条件。

状态检查基于外部进程,例如持续集成构建,这些进程会在你对仓库进行每次推送时运行。你可以在拉取请求中单个提交旁边的状态检查中看到待定通过失败状态。

Screenshot of a list of commits and statuses.

任何拥有仓库写入权限的人都可以设置仓库中任何状态检查的状态。

你可以在仓库的分支页面或仓库的拉取请求列表中看到分支最后一次提交的总体状态。

如果仓库需要状态检查,则必须在将你的分支合并到受保护分支之前通过所需的检查。有关更多信息,请参阅“关于受保护分支”。

注意:跳过的作业将报告其状态为“成功”。即使它是必需的检查,它也不会阻止拉取请求合并。

GitHub 上的状态检查类型

GitHub 上有两种类型的状态检查

  • 检查
  • 提交状态

检查提交状态不同,因为它们提供行注释、更详细的消息,并且仅可用于 GitHub Apps。

注意:当工作流运行时,GitHub Actions 会生成检查,而不是提交状态。

组织所有者和拥有仓库推送权限的用户可以使用 GitHub 的 API 创建检查和提交状态。有关更多信息,请参阅“检查的 REST API 端点”和“提交状态的 REST API 端点”。

检查

当在仓库中设置检查时,拉取请求将有一个检查选项卡,你可以在其中查看来自检查的详细构建输出并重新运行失败的检查。

注意:只有在你为仓库设置了检查(而不是提交状态)时,检查选项卡才会填充拉取请求。

当提交中的特定行导致检查失败时,你将在拉取请求的文件选项卡中相关代码旁边看到有关失败、警告或通知的详细信息。

你可以使用检查选项卡下的提交下拉菜单,在拉取请求中不同提交的检查摘要之间导航。

Screenshot of the "Checks" tab of a pull request. The "Checks" tab and the dropdown menu to select a commit are both outlined in dark orange.

跳过和请求对单个提交的检查

当仓库设置为自动请求推送的检查时,您可以选择跳过对您推送的单个提交的检查。当仓库设置为自动请求推送的检查时,您可以请求对您推送的单个提交的检查。有关这些设置的更多信息,请参阅“检查套件的 REST API 端点”。

您还可以通过在提交消息中包含命令来跳过由pushpull_request事件触发的 workflow 运行。有关更多信息,请参阅“跳过 workflow 运行

或者,要跳过或请求对您提交的所有检查,请在提交消息的末尾添加以下尾部行之一

  • 跳过对提交的检查,请键入您的提交消息和对您更改的简短、有意义的描述。在您的提交描述之后,在结束引号之前,添加两行空行,然后添加skip-checks: true

    $ git commit -m "Update README
    >
    >
    skip-checks: true"
    
  • 请求对提交的检查,请键入您的提交消息和对您更改的简短、有意义的描述。在您的提交描述之后,在结束引号之前,添加两行空行,然后添加request-checks: true

    $ git commit -m "Refactor usability tests
    >
    >
    request-checks: true"
    

默认情况下,Git 会自动删除连续的换行符。要将提交消息保留为您的输入方式,请在您的提交中使用--cleanup=verbatim选项。有关更多信息,请参阅 Git 文档中的--cleanup=<mode>

检查的保留

GitHub.com 会保留 400 天的检查数据。400 天后,数据将被存档。存档 10 天后,数据将被永久删除。

要合并包含既是必需又是已存档的检查的拉取请求,您必须重新运行检查。