使用 Jenkins 获取项目的凭据 API

Get Project's Credentials using Jenkins API

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

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

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

-- 谢谢, 何塞

您需要向 GitClient 提供凭据。

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

获得的凭据

你提到你想重复使用来自同一个工作的凭据 - 假设 Git 插件已经配置了这些凭据 - 你的插件应该可以访问 AbstractBuild 其中您可以使用 build.getProject().getScm()​.getUserRemoteConfigs().get(0)​.getCredentialsId 之类的东西来获取配置的凭据 ID。

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