如何跨分支机构/ PR统一执行GitHub PR合并状态检查?

时间:2019-11-25 14:54:34

标签: github github-api

出于审计/法规遵从性的原因,我希望能够将GitHub中的每个提交都归结到一个问题,并跟踪类似Jira的问题,并且除非有合适的链接,否则禁止合并请求请求。 Status API涵盖了此功能,其中GitHub将拒绝允许将分支合并到受保护分支(例如master)中,在该分支中,要合并的分支无法进行状态检查。

我的外部CI系统配置为查看每个GitHub事件,并在适当的情况下将状态与提交相关联。

如果我检查分支的名称或PR的标题,那么我可以确认两者都遵循某种命名约定,例如ABC-123,其中ABC-123是Jira中的问题。该状态与PR或分支的头提交有关。但是,如果创建了一个单独的分支或PR,指向同一提交,则将针对该提交重新运行检查,从而可能更改检查的状态。在以下情况下会出现故障情况(假设PR的标题需要以正则表达式ABC-[0-9]{1,4}开头才能被视为有效):

  1. 用户创建名为non-compliant的PR#1。
  2. 状态检查失败,并且头部落实标记有状态failure
  3. 用户无法合并分支(GitHub禁止这样做)。
  4. 用户基于与(1)中相同的提交创建另一个PR#2,称为ABC-123 this is a compliant branch
  5. 状态检查通过,并且头部提交标记为状态success
  6. 用户现在可以合并PR#2(可以)或PR#1(不能!)

是否可以通过GitHub API在PR /分支命名级别上执行检查以确保一致性?

我是否必须在提交级别执行检查,即确保每个提交在其注释中都有适当的问题?

0 个答案:

没有答案