使用Jenkins API获取Project的凭据

时间:2015-12-26 22:03:23

标签: jenkins hudson jenkins-plugins hudson-plugins hudson-api

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

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

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

- 谢谢, 何

1 个答案:

答案 0 :(得分:1)

您需要向GitClient提供凭据。

例如,您可以在此处使用从CredentialsMatchers获取的凭据,查看Git插件calling GitClient#addDefaultCredentials()方法。

您提到要重新使用同一作业中的凭据 - 假设已使用这些凭据配置了Git插件 - 您的插件应该可以访问AbstractBuild,您可以使用build.getProject().getScm()​.getUserRemoteConfigs().get(0)​.getCredentialsId之类的内容{1}}获取已配置的凭据ID。

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