如何从 Phabricator 扩散中检出 Jenkins 中的源代码?

How to checkout the source code in Jenkins from Phabricator diffusion?

Phabricator 设置完成,svn+ssh 效果不错。 当我向 Jenkins 填写 link 时,它显示 Unable to access to repository.

查看Jenkins日志后,得到如下信息。

May 15, 2017 4:35:40 PM SEVERE hudson.scm.SubversionSCM$ModuleLocation$DescriptorImpl checkCredentialsId svn: E200015: Authentication cancelled

我尝试构建项目并收到以下消息。

Attempting a public key authentication with username dailybuild Failed to authenticate: svn: E170001: Credentials rejected by SSH server. FAILED: svn: E170001: Authentication failed for svn+ssh://vcsuser@192.168.1.185:2222/source/xxxx org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001: Authentication failed for svn+ssh://vcsuser@192.168.1.185:2222/source/xxxx at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.authenticationFailed(SVNErrorManager.java:53)
...

我可以通过在 Tortoise SVN 中从 Phabricator 生成的 ssh public 密钥 (.key) 检出代码,但它不能在 Jenkins 中工作

谁能帮我解决这个错误?

我在 Jenkins(不是特定于 Phabricator)中使用 SSH 获取 运行 的主要问题是主机密钥需要在通过 SSH 进行身份验证之前位于 jenkins 用户的 known_hosts 中会工作。

我遇到它已经有一段时间了,所以我不知道这些消息是否是该问题的征兆,但我确实记得这是一个一般的身份验证错误,因此很难追查真正的原因问题。

经过几天的尝试,我找到了一种从 Phabricator 结帐的简单方法

  1. 从服务器(不是从 Phabricator)创建 vcsuser 私钥
  2. 在 /source 创建一个文件夹
  3. 在/source 中创建一个软件link 例如sudo ln -s /var/repo/9 repo_name
  4. 从您的私钥向 Jenkins 添加凭据

现在我可以从 link 中查看源代码了:

svn+ssh://vcsuser@192.168.1.185/source/repo_name/branches/$branch_name