Как я могу использовать учетные данные git в сценарии оболочки на Jenkins? - PullRequest
0 голосов
/ 27 апреля 2018

Итак, у меня есть простой сценарий оболочки, и я хочу выполнить 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 использует это? ... и я отмечаю, что Дженкинс использует 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

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Боюсь, я не очень разбираюсь в Jenkins, но вы можете сохранить учетные данные git из сценария оболочки с помощью помощника учетных данных git (если он у вас настроен), например ::100100

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 должны затем использовать его, или, если вам нужны сами учетные данные, вы можете получить их на стандартный вывод с помощью:

printf "protocol=https/nhost=your.git.host/username=your_user/npassword=Y0urP/n/n" | git credential fill
0 голосов
/ 27 апреля 2018

Если ваш сценарий должен иметь эти учетные данные, тогда вы можете проверить второй параметр " Плагин DSL задания: переменные сборки "

Все переменные сборки отображаются в сценариях Job 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)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...