如何在Jenkins的shell脚本中使用git凭据?

use*_*607 6 git 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
Run Code Online (Sandbox Code Playgroud)

更新:这里有一些新信息.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
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 1

如果您的脚本必须具有这些凭据,那么您可以检查第二个选项“ Job DSL 插件:构建变量

所有构建变量都作为变量公开给作业 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)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)