Я не знаю, можно ли это сделать, но мне нужно внести 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? видимо, попытка, которую я попробовал, не сработала. Спасибо .-