Jenkins管道无法克隆Bitbucket存储库

时间:2019-09-12 12:46:02

标签: jenkins bitbucket bitbucket-server

在Jenkins中通过HTTP克隆存储库时遇到问题。仅在具有12个以上分支或总共18个分支和标签的存储库中出现此问题。

运行以下命令: git clone http://USERNAME:PASSWORD@bitbucket.company.org/scm/key/repo.git

当有11个分支或总共17个分支和标签时,克隆工作完全正常。如果超过该数字,克隆将失败,并显示以下错误:

error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500 
fatal: The remote end hung up unexpectedly

Bitbucket运行时的日志级别为DEBUG,我在日志中找不到更多信息。

服务器上的版本:

Bitbucket服务器5.14.0 Git 2.19.0

本地版本:

Git 2.17.1

PS:我没有在代理后面运行Bitbucket。

我检查了atlassian-bitbucket.log,它确实显示了与克隆存储库有关的错误:

    The following was written to stderr:
    fatal: the remote end hung up unexpectedly
    com.atlassian.utils.process.ProcessException: Non-zero exit code: 1
    at com.atlassian.bitbucket.scm.SummarizingProcessHandler.complete(SummarizingProcessHandler.java:47)
    ...

我试图设置postBuffer: git config --global http.postBuffer 524288000

我尝试使用用户名和密码作为输入进行克隆,但是在12个以上的分支上仍然失败: git clone http://bitbucket.company.org/scm/key/repo.git

存储库的大小无关紧要,因为我可以用较少的分支克隆大型存储库。

如果我使用SSH,它确实可以工作,但这不是我的用例的选择。由于每个发行版都有一个发行分支,并且标记的数量确实会随着时间的推移而增长,所以我希望这对于其他人也是一个问题。

在尝试在Jenkins管道中进行克隆时,我尝试了以下配置以获取不仅仅是浅层克隆的更多内容。

checkout([
  $class: 'GitSCM',
  branches: scm.branches,
  extensions: [
    [
      $class: 'CloneOption',
      honorRefspec: false,
      noTags: false,
      shallow: false,
    ]
  ],
  userRemoteConfigs: scm.userRemoteConfigs,
])

我希望无论分支数量多大,它都能够克隆存储库。有谁知道为什么会这样吗?任何帮助都会被接受。

1 个答案:

答案 0 :(得分:0)

您是否尝试过带有凭据步骤的常规git步骤?