I'm building a Jenkins plugin that one of the features is to commit and push some files generated during the build. I already have the code to commit and to push (using Git client from org.jenkinsci.plugins), however when I execute
PushCommand push = gitClient.push();
push.ref(__MY_BRANCH__);
push.to(new URIish("origin"))
push.force();
push.execute();
I get an error not having permissions to push. So, my question is: how can I re-use the credentials of a project to proper configue gitClient or the pushCommand ?
-- Thanks, Jose
You need to provide credentials to the
GitClient.For example, here you can see the Git plugin calling the
GitClient#addDefaultCredentials()method, using credentials obtained fromCredentialsMatchers.You mention you want to re-use the credentials from the same job so — assuming that the Git plugin has been configured with those credentials — your plugin should have access to the
AbstractBuildwhere you can use something likebuild.getProject().getScm().getUserRemoteConfigs().get(0).getCredentialsIdto fetch the configured credentials ID.You'll need to cast the
SCMtoGitSCM, but otherwise that should work fine.