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 事件和有效负载”。