如何将Jenkins GitHub组织文件夹与GitHub受保护的分支一起使用?

如何将Jenkins GitHub组织文件夹与GitHub受保护的分支一起使用?,github,jenkins,jenkins-pipeline,Github,Jenkins,Jenkins Pipeline,最近两周对Jenkins插件或GitHub api进行的一些更新似乎在GitHub上引入了一种非常奇怪的行为 现在我们可以防止一个公关被合并,如果一个特定的詹金斯分行的工作不是绿色的,但不知何故,它似乎不可能检查当前的公关是绿色的 如果我们没有在github存储库配置中选择任何分支,Jenkins构建将不会发生,用户将能够合并更改 如果我们检查其中一个,詹金斯将构建它,令人惊讶的是,我们可以看到与公关名称匹配的工作名称。很好,但不知何故,名为“Jenkins”的通用检查似乎仍在等待另一个状态检查

最近两周对Jenkins插件或GitHub api进行的一些更新似乎在GitHub上引入了一种非常奇怪的行为

现在我们可以防止一个公关被合并,如果一个特定的詹金斯分行的工作不是绿色的,但不知何故,它似乎不可能检查当前的公关是绿色的

如果我们没有在github存储库配置中选择任何分支,Jenkins构建将不会发生,用户将能够合并更改

如果我们检查其中一个,詹金斯将构建它,令人惊讶的是,我们可以看到与公关名称匹配的工作名称。很好,但不知何故,名为“Jenkins”的通用检查似乎仍在等待另一个状态检查,一个永远不会发生的检查,阻止我们合并


最后一个屏幕截图对此进行了最好的解释:命名的合并是绿色的,正如预期的那样,但我们还有另一个通用的“Jenkins”,它仍然“等待状态报告”,但Jenkins不会报告任何内容。

您必须为Github插件设置Diplay名称,当它没有设置时,插件会回退以生成名称

当我们将Github组织插件与管道一起使用时,我没有找到正确的方法来实现这一点。我通过从Jenkinsfile设置项目属性实现了这一点:

properties properties: [pipelineTriggers([]), [$class: 'GithubProjectProperty', displayName: 'Jenkins']]
然后手动设置状态:

step([$class: 'GitHubCommitStatusSetter', statusResultSource: [$class: 'ConditionalStatusResultSource', results: [[$class: 'BetterThanOrEqualBuildResult', message: 'Build success', result: 'SUCCESS', state: 'SUCCESS']]]])
这不会删除
Jenkins作业请购单xxxx
状态,但会添加
Jenkins
状态,您可以根据需要使用该状态进行检查