Git push с использованием учетных данных jenkins из декларативного конвейера - PullRequest
0 голосов
/ 03 мая 2019

Я использую конвейер jenkins (декларативный синтакс) и хочу отправить коммит в мой удаленный репозиторий.

Есть ли способ сделать это с помощью плагина git? Вот что я сейчас пытаюсь:

withCredentials([usernamePassword(credentialsId: "${GIT_CREDENTIAL_ID}", passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) {
                        sh "git add ${BRANCH_RENAME}.bundle"
                        sh "echo ${GIT_USERNAME}|||||||${GIT_PASSWORD}"
                        sh "git tag -a backup -m 'Backup branch ${BRANCH} from vega-salesforce to vega-salesforce-backup' "
                        sh('git push https://${GIT_USERNAME}:${GIT_PASSWORD}@${GIT_URL_WITHOUT_HTTPS} --tags')
                    }

Но это не работает. Я получил следующую ошибку: `

fatal: unable to access 'https://****:****@myrepositoryurl/mygitgroup/salesforce-backup/': Could not resolve host: ****:clear_password_here; Name or service not known

Может кто-нибудь помочь, пожалуйста? Я думаю, что проблема связана со специальными символами в моем пароле, но я не уверен.

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Наконец-то мы это выяснили.Проблема была просто в том, что в нашем пароле есть специальные символы, которые выделяют URL.

Вот рабочий код:

withCredentials([usernamePassword(credentialsId: env.GIT_CREDENTIAL_ID, usernameVariable: 'USER', passwordVariable: 'PASS')]) {
                    script {
                        env.encodedPass=URLEncoder.encode(PASS, "UTF-8")
                    }
                    sh 'git clone https://${USER}:${encodedPass}@${GIT_URL} ${DIR} -b ${BRANCH}'
                    sh 'git add .'
                    sh 'git commit -m "foobar" '
                    sh 'git push'
                } 
0 голосов
/ 03 мая 2019

Вы не можете использовать имя пользователя: пароль для подключения к git repo в скрипте.

Вы должны использовать ключ ssh.Пожалуйста, смотрите этот ответ для получения дополнительной информации

...