如何获取已合并GitHub拉取请求(PR)的merge_method属性值
GitHub PR合并方式查询方案
首先明确:merge_method是调用PR合并接口时传入的操作参数,不属于PR的固有元数据,因此GET PR详情接口默认不会返回该字段,以下是可行的获取方案:
- 先获取仓库允许的合并方式范围:调用仓库信息查询接口,返回值中
allow_merge_commit、allow_squash_merge、allow_rebase_merge三个布尔字段,分别对应普通合并、压缩合并、变基合并三种方式是否被仓库管理员启用,这是可选合并方式的基础范围。 - 结合PR状态过滤可用选项:如果PR存在合并冲突、处于草稿状态、未满足仓库设置的合并前置要求(如审批数量不足、CI检查未通过),所有合并方式都会被暂时禁用。
- 已合并PR的历史合并方式查询:可以拉取该PR对应的所有提交记录判断:普通合并会生成额外的合并提交、压缩合并最终只会有1条提交进入目标分支、变基合并不会生成额外合并提交且提交哈希会和源分支的原始提交哈希不同;也可通过PR返回的
merge_commit_sha字段辅助判断,该字段对应的提交如果有2个父提交则为普通合并,只有1个父提交且提交信息为压缩格式则为squash合并,无该字段则为rebase合并。
字段新增说明
GitHub官方暂未公开将
merge_method字段加入GET PR详情接口的近期更新计划,你可以通过GitHub官方反馈渠道提交功能需求申请该特性。
内容的提问来源于stack exchange,提问作者Nate Good
相关产品推荐
相关产品推荐

