本文是利用人工智能生成的技术说明与实现示例。所发布的代办和步骤基于第一手资料构建,但作者并未在实机上进行运行验证。根据环境和版本的不同,运行结果可能会有所差异。我们将基于官方渠道发布的“GitHub async merge API 一般可用(GA)”的规范与背景,安全且实用解读其第一手资料。着眼于从同步端点向异步端点的迁移,确认其构成要素与提供的功能。
目的与背景
在大型仓库或执行复杂合并处理的自动化过程中,同步型的 REST 端点或 GraphQL 变更(mutations)存在请求长时间阻塞的问题。GitHub 异步合并 API 现已全面可用(GA),它提供了一种异步处理机制,可用于合并单个或堆叠的拉取请求、将其添加到合并队列或直接进行合并。本文整理了该 API 的构成要素以及关于从传统同步方法进行迁移的官方指南。
前提条件与注意事项
本文内容全部基于第一手资料(GitHub Changelog)。
由于【尚未进行实机验证】,本文不对特定的 API 输出结果或执行成功做断定。
在实际环境中投产使用时,请参考官方 API 文档。
其中包括具有权限的用户可选择绕过规则等功能。
flowchart TD
A[クライアント] -->|PUT: マージリクエスト送信| B[GitHub Async Merge API]
B -->|リクエストID返却| A
A -->|GET: ステータス確認| B
B -->|処理状況を返却| A
API 的构成要素与请求流程
根据第一手资料显示,使用异步合并 API 的异步处理基本流程由两个步骤组成:通过 PUT 请求发送以及通过 GET 请求轮询。
发送合并请求
客户端使用
PUT方法发送合并请求。API 异步接收该处理并返回一个请求 ID。
检查状态(轮询)
使用返回的请求 ID,通过
GET方法定期检查状态。这样一来,便无需等待复杂的合并处理完成,即可高效地为繁忙的仓库构建自动化流程。
支持的合并操作与功能
GitHub 异步合并 API 支持各种与合并相关的操作。
合并单个或堆叠的拉取请求: 这是唯一能够处理具有多个依赖关系的拉取请求(堆叠拉取请求)的合并 API。
添加到合并队列: 支持将拉取请求注册到合并队列中的操作。
直接合并: 直接合并拉取请求。
根据权限绕过规则: 仅在拥有所需权限的情况下,才能选择绕过规则并执行合并。
从传统同步端点迁移(当前指南)
官方公告建议,作为以编程方式合并拉取请求的推荐途径,应使用此异步合并 API 来替代传统的同步 REST 端点或 GraphQL 突变。
传统机制: 同步 REST 端点和 GraphQL 突变。
当前指南: 支持异步处理的异步合并 API 已成为推荐途径。
值得一提的优势: 强调它是唯一支持堆叠拉取请求的合并 API。建议查看官方异步合并 API 文档以了解详细的请求参数和具体示例。
使用时的注意事项和限制
根据执行环境和账户权限,绕过规则等行为可能会受到限制。
由于属于异步处理,因此需要在客户端实现轮询以及超时处理的设计。
关于准确的参数规范或架构更改,请务必参考官方最新文档。
总结
本文梳理了关于 GitHub 异步合并 API 正式发布的原始信息。执行前需要确认的要点和限制如下。
执行前需确认的要点:
查看官方异步合并 API 文档中的最新请求参数和响应规范
在自动化脚本中实现
PUT发送与GET轮询的设计符合仓库权限设置以及合并规则
限制:
本文是对原始信息的解读,作者未在实际设备上进行运行验证。
从同步 API 迁移时,必须实现伴随异步处理的轮询处理逻辑。

