2015-12-26 37 views
0

我正在構建一個Jenkins插件,其中一個功能是提交併推送構建期間生成的一些文件。我已經有代碼提交和推(使用org.jenkinsci.plugins Git的客戶端),但是當我執行使用Jenkins API獲取項目的憑證

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

我得到一個錯誤,沒有權限來推動。所以,我的問題是:我如何重新使用項目的憑據來正確配置gitClientpushCommand

- 謝謝, 何塞

回答

1

您需要提供憑據GitClient

例如,在這裏你可以看到Git插件callingGitClient#addDefaultCredentials()方法,使用憑證從CredentialsMatchers獲得。

你提到你想從同樣的工作,以便重新使用的憑據 - 假設Git的插件已經配置了這些證書 - 你的插件應該有機會獲得AbstractBuild在那裏你可以使用類似build.getProject().getScm()​.getUserRemoteConfigs().get(0)​.getCredentialsId去取配置的憑據ID。

您需要將SCM轉換爲GitSCM,否則應該可以正常工作。

+0

嗨克里斯托弗,非常感謝您的幫助。只是爲了完成您的答案,在獲得credentialsId後,我創建了一個GitSCMSource並使用它和credentialsId從CredentialsMatchers獲取StandardUsernameCredentials的實例。那麼我只是按照你的建議調用addDefaultCredentials()。並推動它的工作。 :) – josecampos