0

我正在构建一个 Jenkins 插件,其中一个功能是提交和推送构建期间生成的一些文件。我已经有了要提交和推送的代码(使用来自 org.jenkinsci.plugins 的 Git 客户端),但是当我执行时

PushCommand push = gitClient.push();
push.ref(__MY_BRANCH__);
push.to(new URIish("origin"))
push.force();
push.execute();

我收到一个错误,没有推送权限。所以,我的问题是:如何重新使用项目的凭据来正确配置gitClientpushCommand

——谢谢,何塞

4

1 回答 1

1

您需要向GitClient.

例如,在这里您可以看到 Git 插件调用GitClient#addDefaultCredentials()方法,使用从CredentialsMatchers.

你提到你想重用来自同一个作业的凭证,所以——假设 Git 插件已经配置了这些凭证——你的插件应该可以访问AbstractBuild你可以使用的地方,比如build.getProject().getScm()​.getUserRemoteConfigs().get(0)​.getCredentialsId获取配置的凭证 ID。

您需要将 to 强制SCM转换为GitSCM,否则应该可以正常工作。

于 2015-12-27T14:43:18.127 回答