为什么GitHub API在拉取请求中返回未知的mergeable_state?

时间:2015-06-03 12:00:58

标签: github-api pull-request

有时,当我从GitHub API获得单个pull请求时,响应包含JSON响应中的以下属性:

  "merged": false,
  "mergeable": null,
  "mergeable_state": "unknown",
  "merged_by": null,

为什么?如何确定此拉取请求是否可合并?我是否真的需要重新加载拉取请求,直到得到不同的响应?

2 个答案:

答案 0 :(得分:7)

来自GitHub的其中一个人:

  

空值表示尚未计算拉取请求的可合并性。可合并性是根据需要和后台计算的,因此当您获取未知可合并性的拉取请求时 - 您将返回空值,但也会启动作业以计算可合并性。如果您发出另一个请求,则应该看到可合并属性的非空值。

我认为实施延迟重试是可行的方法。

答案 1 :(得分:0)

没有一个API可以概述PR是否可合并的原因,仅概述它是否可以合并。在文档中指出:

  

mergeable属性的值可以为true,false或null。如果   值是null,这表示尚未合并   进行计算,然后开始执行后台作业进行计算。给   稍等片刻即可完成,然后再次提交请求。什么时候   工作完成后,响应中将包含一个非空值   可合并属性。

他们没有记录为什么的结果,只有是,否或尚未计算。

我希望对您有帮助