[英]How can I use git credentials in a shell script on Jenkins?
所以我有一個普通的shell腳本,我想執行2個git命令,但沒有憑據。 如何將憑據存入我的環境? 我是否必須設置GIT_ASKPASS? 我不是管理員所以“安裝插件”不是一個很好的選擇。
環境已有以下可用:
BUILD_URL
UPDATE_VERSION
HOSTNAME
PASS <--- This one looks like a possible but still no user id.
POM_GROUPID
HUDSON_SERVER_COOKIE
BUILD_TAG
POM_DISPLAYNAME
GIT_PREVIOUS_COMMIT
WORKSPACE
JOB_URL
RUN_CHANGES_DISPLAY_URL
POM_ARTIFACTID
MAVEN_OPTS
JENKINS_SWARM_VERSION
NLSPATH
GIT_COMMIT
JENKINS_HOME
MAVEN_HOME
PATH
RUN_DISPLAY_URL
PWD
JAVA_HOME
HUDSON_URL
JAVA_VERSION
JOB_NAME
POM_VERSION
BUILD_VERSION
XFILESEARCHPATH
BUILD_DISPLAY_NAME
BUILD_ID
JENKINS_URL
JOB_BASE_NAME
GIT_PREVIOUS_SUCCESSFUL_COMMIT
POM_PACKAGING
HOME
GIT_SSL_NO_VERIFY
SHLVL
M2_HOME
GIT_BRANCH
EXECUTOR_NUMBER
JENKINS_SERVER_COOKIE
GIT_URL
NODE_LABELS
HUDSON_HOME
NODE_NAME
BUILD_NUMBER
JOB_DISPLAY_URL
HUDSON_COOKIE
更新:這里有一些新信息。 GIT_ASKPASS使用這些? ...而且我注意到Jenkins正在使用GIT_ASKPASS進行檢查。
+ git help -a
+ grep credential-
credential-cache remote-ext
credential-cache--daemon remote-fd
credential-gnome-keyring remote-ftp
credential-store remote-ftps
我不太了解Jenkins,但您可以使用git憑證幫助程序從shell腳本存儲git憑證(假設您已經配置了一個),例如:
printf "protocol=https/nhost=your.git.host/nusername=your_user/npassword=Y0urP@55w0rd/n/n" | git credential approve # git credential takes its arguments on stdin - the final double newline is needed to signal end of input
然后Git命令應該使用它,或者如果您需要憑證本身,您可以使用以下命令在stdout上檢索它:
printf "protocol=https/nhost=your.git.host/username=your_user/npassword=Y0urP/n/n" | git credential fill
如果您的腳本必須具有這些憑據,那么您可以檢查第二個選項“ Job DSL plugin:Build Variables ”
所有構建變量都作為變量公開給作業DSL腳本,請參閱用戶電源移動 。
有幾種方法可以將憑證定義為構建變量,例如EnvInject插件提供“為構建作為環境變量注入密碼”設置,以注入在“配置系統”中全局定義或直接在作業上定義的密碼。
// use the FLOWDOCK_TOKEN variable to configure the Flowdock publisher
job('example-4') {
publishers {
flowdock(FLOWDOCK_TOKEN) {
unstable()
success()
aborted()
failure()
fixed()
notBuilt()
}
}
}
// variables can also be using in configure blocks
job('example-5') {
configure { project ->
project / builders << 'org.foo.FooBuilder' {
userName(FOO_USER)
password(FOO_PASSWORD)
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.