我正在构建一个Jenkins插件,其中一个功能是提交并推送构建期间生成的一些文件。我已经有了提交和推送的代码(使用org.jenkinsci.plugins中的Git客户端),但是当我执行时
PushCommand push = gitClient.push();
push.ref(__MY_BRANCH__);
push.to(new URIish("origin"))
push.force();
push.execute();
我收到错误,没有权限推送。所以,我的问题是:如何重新使用项目的凭据来正确配置 gitClient 或 pushCommand ?
- 谢谢, 何
答案 0 :(得分:1)
您需要向GitClient
提供凭据。
例如,您可以在此处使用从CredentialsMatchers
获取的凭据,查看Git插件calling GitClient#addDefaultCredentials()
方法。
您提到要重新使用同一作业中的凭据 - 假设已使用这些凭据配置了Git插件 - 您的插件应该可以访问AbstractBuild
,您可以使用build.getProject().getScm().getUserRemoteConfigs().get(0).getCredentialsId
之类的内容{1}}获取已配置的凭据ID。
您需要将SCM
转换为GitSCM
,否则应该可以正常工作。