Подтвердить что ты не робот

POST-крючок на Bitbucket

Как использовать URL-адрес POST в битбакете на частных Jenkins?

У меня возникли проблемы с bitbucket и их фиксацией по почте.

Описание:

http://username:[email protected]/job/myproject/build?token=mytoken

У меня есть экземпляр jenkins, который я хотел бы вызвать при нажатии на определенные репозитории. Поскольку дженкинс доступен снаружи (всемирная паутина), он защищен с помощью обычной системы пользователя/пароля.

При работе с Github я могу определить имя пользователя и пароль непосредственно в URL-адресе. При проверке журналов nginx ясно, что github может преобразовать этот URL-адрес для входа в систему пользователя. Битбукет - нет.

Вот некоторые журналы nginx, показывающие проблему.

Журналы сообщений Bitbucket:

- - "POST /job/myproject/build?token=mytoken HTTP/1.1" 403 216 "-" "Bitbucket.org"

Интересной частью является ошибка 403. Аксус отказался.

Те же журналы для почтового крючка Github:

- github - "POST /job/myproject/build?token=mytoken HTTP/1.1" 302 0 "-" "-"

Как показывают журналы, github - это имя пользователя, которого я создал, с хорошими правами на запуск сборок.

Что я могу сделать, чтобы включить пост-крючок?

4b9b3361

Ответ 1

Если вы хотите, чтобы BitBucket запускал выполнение задания Jenkins после фиксации в вашем репо, у вас есть два варианта:

  • Использовать КПП POST
  • Используйте крюк Дженкинса

Оба используют API Jenkins для запуска задания.

Для POST-крючка вам в основном нужно создать URL-адрес:

https://USER:[email protected]_URL/job/JOBNAME/build?token=TOKEN

где:

  • ПОЛЬЗОВАТЕЛЬ: пользователь Jenkins, который будет запускать задание
  • APITOKEN: это токен, связанный с этим пользователем, чтобы разрешить использование API, вы можете получить его со страницы конфигурации пользователя в Jenkins
  • JENKINS_URL: адрес вашего сервера jenkins
  • JOBNAME: имя задания
  • TOKEN: токен, связанный с заданием, вы должны добавить его на страницу конфигурации задания (включить удаленные триггеры)

Приятная вещь об этом заключается в том, что вы можете проверить, работает ли это только с помощью curl с консоли.

Также обратите внимание, что в URL-адресе нет пароля, вместо этого у вас есть API TOKEN, чтобы избежать публикации вашего пользователя и пароля. Что-то еще вы можете сделать, чтобы немного улучшить безопасность, если у вас есть права администратора на сервере Jenkins, создайте нового пользователя с правами доступа только для чтения и создания заданий и используйте его только для этого. Таким образом, вам не нужно публиковать свой собственный пользователь и токен, который может иметь права администратора.

Крючок Jenkins работает одинаково, создавая для вас один и тот же URL-адрес, но у вас нет возможности его протестировать (например, с помощью curl).

Это основано на этих документах:

Надеюсь, что это поможет.

Ger

Ответ 2

Это не отвечает на ваш вопрос, но предлагает другой подход. И bitbucket.org, и github.com поддерживают ключи ssh.

См. " Настройка SSH для Git"

Важно настроить ssh-agent (поясняется на этой странице), так как без этого вам будет предложено ввести пароль вместо имени пользователя и пароля.