Как я могу Pu sh, чтобы освоить ветку от Дженкинса, используя ключ S sh другого пользователя - PullRequest
1 голос
/ 19 февраля 2020

Я не знаю, можно ли это сделать, но мне нужно внести sh изменения в хранилище веток master в Bitbucket в задании jenkins. Давайте назовем его repo1. Главная ветвь этого репозитория имеет настроенные права доступа для pu sh только для 2 пользователей. User_a и user_b. Эти пользователи подключаются к bitbucket с именем пользователя и паролем. Также appart от этого user_a и пользователь jenkins настроили в учетных данных настройки jenkins свои ключи S SH для подключения к bitbucket. Таким образом, в основном, когда Дженкинсу нужно извлечь код из ББ и построить какое-то приложение, он использует этот ID учетных данных.

Но теперь, одна из новых запрошенных вакансий, должна сделать так, чтобы Дженкинс мог вставить sh в этот репозиторий 1 мастер ветка. Конечно, я впервые получил ошибку разрешения, потому что только user_a и user_b могут добавить pu sh в master.

Так что теперь я попытался настроить, чтобы jenkis использовал ID учетных данных user_a (который имел разрешение на ветку master для pu sh)

Но когда я запускаю задание, появляется следующее сообщение:

 git commit -m test
[master c078d06] gulp file generated
 Committer: Jenkins <jenkins@xxxx@xxxxx.com>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 1 insertion(+), 1 deletion(-)
[Pipeline] sh
[workspace] Running shell script
+ git push origin master
remote: Permission denied to update branch master.To git@bitbucket.org:xxxxxx/repo1.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@bitbucket.org:xxxxxxx/repo1.git'

Я настроил этот шаг следующим образом с идентификатором пользователя user_a.

stage ('Pulling code from Bitbucket') {


        git branch: 'master',
                credentialsId: '2bbbbbbb-aaaaaaaa--xxxx-eeeeeeeeeee', #user_a credential ID
                url: 'git@bitbucket.org:xxxxxx/repo1.git'

            sh 'sed -i "s/running/walking/g" README.md' #just changing something in readme for test
            sh 'git add .'
            sh 'git commit -m "test"'
            sh 'git push '


        }

Так, как я могу выполнить sh это? Я говорю jenkins использовать ID учетных данных user_a, но он не работает.
Также я не могу добавить пользователя jenkins в bitbucket в основной ветке repo1, так как там нет пользователя с паролем и пользователем, jenkins просто подключается к битбакет с ключом s sh. Так же, как user_a (который также имеет user и pass). Как я могу вставить sh в мастер, используя ID пользователя user_a, то есть пользователя, у которого есть разрешение в ветке master? видимо, попытка, которую я попробовал, не сработала. Спасибо .-

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...