Openshift 如何将BuildConfig Git源引用设置为GitHub请求?

Openshift 如何将BuildConfig Git源引用设置为GitHub请求?,openshift,Openshift,在报告中,它说: Cloning "https://github.com/<org>/<repo>" ... I0725 13:43:32.297019 1 source.go:134] git ls-remote --heads https://github.com/<org>/<repo> ... git ls-remote --heads https://github.com/<org>/<repo> ... git

在报告中,它说:

Cloning "https://github.com/<org>/<repo>" ...
I0725 13:43:32.297019 1 source.go:134] git ls-remote --heads https://github.com/<org>/<repo>
...
git ls-remote --heads https://github.com/<org>/<repo>
...
git checkout <branch>
如果ref字段表示pull请求,系统将使用git fetch操作,然后签出fetch\u HEAD

但是,我找不到需要将什么作为ref来匹配pull请求的示例。我不知道它应该是什么,我尝试过的每一种变体都会出现如下错误:

错误:生成错误:错误:pathspec“pull/128/head”与git已知的任何文件都不匹配

我尝试过的变体:

参考/拉力/128/头 拉/128/头 拉动/128 128 PR-128 来源/pr/128/头 来源/pr/128/合并 感谢您的帮助,谢谢

编辑:根据格雷厄姆的建议,在以下网站上更新新信息:


我不确定它是否显示了该部分的任何额外内容,但将BUILD_LOGLEVEL=9设置为构建配置的环境变量

设置BUILD_LOGLEVEL=9显示以下内容:

Cloning "https://github.com/<org>/<repo>" ...
I0725 13:43:32.297019 1 source.go:134] git ls-remote --heads https://github.com/<org>/<repo>
...
git ls-remote --heads https://github.com/<org>/<repo>
...
git checkout <branch>
我不知道如何给它一些东西,它会接受结帐。我看不出有什么办法可以让它像Jenkins那样,在本地将这些头提取到一些refspec,例如git fetch-tags-progresshttps://github.com//.git +refs/pull/*/head:refs/remotes/origin/pr/*

编辑2:添加关于我尝试过的事情的更多信息

我现在还尝试将.gitconfig文件添加到BuildConfig中设置的机密中。该机密还具有基本的身份验证凭据,可以通过https从GitHub克隆。.gitconfig中唯一的一件事是一个refspec,用于尝试获取PR头引用:

[remote "origin"]
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
这似乎也没有什么帮助,即使我尝试使用origin/pr/128/head的ref值,所以看起来refspec没有被获取


正如mhutter在评论中所建议的那样,通过-commit传递实际提交的sha1似乎得到了我想要的结果,但在我的理解中,忽略ref的值,并使用这种解决方法。

直到最近,使用pull ref还存在一个bug:

除非您使用的是origin 3.6.0-rc.0,否则这很可能就是您要使用的

这些文件反映了原始主机的状态


一旦您使用了具有修复程序的OpenShift版本,refs/pull/58/head应该是正确的格式。

我不确定它是否显示了该部分的任何额外内容,但将BUILD_LOGLEVEL=9设置为构建配置的环境变量。您尝试过origin/pr/1674/merge吗?我在OpenShift中实现了我的PR生成器,类似地,我在BuildConfig中使用目标分支,然后使用oc start build-commit@GrahamDumpleton感谢您的建议!基于此,我在文章中添加了更多信息。@mhutter我尝试了pathspec,并将其添加到问题的变体列表中,但没有帮助。如果在BC中设置分支,为什么需要传入-提交?当然分支裁判就足够了,不是吗?非常感谢Ben,这看起来正是我看到的行为。对于阅读本文的任何其他人来说,在使用修复程序升级到新版本之前,使用-commit或类似的方法传递commit似乎是一个不错的解决方法。