Visitar URL original
堆叠式拉取请求 API 和 Webhooks - GitHub 文档
Skip to main content
Skip to content

堆叠式拉取请求 API 和 Webhooks

使用 GitHub REST 和 GraphQL API 以及 Webhook 以编程方式读取和管理堆叠式拉取请求(PR)。

GitHub REST 和 GraphQL API 都提供堆叠拉取请求。 REST API 支持读取和管理堆栈,而 GraphQL API 支持只读查询。

使用 API 读取拉取请求的所属堆栈,或为堆叠式拉取请求构建自己的自动化和集成。

REST API

REST API 以两种方式公开堆叠式拉取请求(PR):

  • stack拉取请求资源对象。 当拉取请求属于堆叠时,其 REST 资源包括一个 stack 对象。 这样,便可以直接从拉取请求中读取该拉取请求的所属堆栈信息,包括堆栈的编号和大小,以及该拉取请求的位置和基分支。
  • The Stacks API。 用于列出、读取、创建、扩展和删除堆栈的专用端点集。 这是用于创建和修改堆栈的界面。

有关终结点、参数和架构,请参阅 用于拉取请求的 REST API 终结点。

重要

如果通过 API 合并并想要使用堆叠拉取请求,则必须使用新的异步合并 API。

合并 API

通过 API 合并堆积拉取请求时,必须使用异步合并终结点。

堆栈不能与旧版同步合并端点或变更合并。 合并堆叠式拉取请求时,堆栈中的每个拉取请求,直到并包括你请求的那个拉取请求,都将被合并或排队合并到基分支中。 合并拉取请求堆栈可能涉及多个拉取请求,并且可能需要几分钟。 因此,在提交合并请求时,合并在后台运行,然后你可以轮询结果。

提交打开的 PR 时,只会检查基本拉取请求状态。 稍后在合并实际运行时评估分支保护和仓库规则,并在轮询时将规则失败报告为失败结果。 堆栈合并请求是原子性的,这意味着整组拉取请求都会被合并,或被添加到合并队列,或者都不会被合并或加入合并队列。

有关详细信息,请参阅 用于拉取请求的 REST API 终结点。

GraphQL API

GraphQL API 通过 PullRequest 类型上的只读 stack 和 stackEntry 字段公开拉取请求的堆栈成员身份。 使用这些字段查询拉取请求所属的堆栈及其在其中的位置。

GraphQL API 对 stack 是只读的;没有 stack 变更。 若要创建或修改堆栈,请使用 REST API。

有关字段、对象和架构,请参阅 拉取请求。

网络钩子

当拉取请求属于堆栈时,GitHub 会将一个 stack 属性添加到 Webhook 事件有效负载中的 pull_request 对象。 这允许应用和集成检查堆栈的目标分支,而不仅仅是拉取请求的直接父分支。

该 stack 对象包含在 pull_request Webhook 有效负载中,用于在拉取请求属于堆栈一部分期间发生的拉取请求生命周期事件。

请参阅“Webhook 事件和有效负载”。

延伸阅读