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

Как правильно подключить Bitbucket к Jenkins

Начиная примерно с 1 недели, Bitbucket не отправляет запрос на мой сервер Jenkins.

Я установил все так:

Endpoint http://username:[email protected]/
username= имя пользователя в Jenkins
apitoken= apitoken подключен к имени пользователя в Jenkins
jenkinshost= мой хост, где я запускаю Jenkins

Project name - проект Token: токен, который я могу настроить в конфигурации для каждого проекта.

Я сделал это в соответствии с этим сайтом: http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins.
Это действительно сработало, но это уже не так. Битбакет что-то изменил? Как я могу это исправить?

enter image description here

4b9b3361

Ответ 1

Чтобы создать свое репо после новых коммитов, используйте плагин BitBucket.

Есть только одно замечание: При создании POST-крюка (обратите внимание, что это POST-крючок, а не Jenkins), URL-адрес работает, когда в конце есть "/". Как:

URL: JENKINS_URL/bitbucket-hook/
e.g. someAddress:8080/bitbucket-hook/

Не забудьте проверить "Сборка, когда изменение переместится в BitBucket" в настройке вашей работы.

Ответ 2

У меня были подобные проблемы, пока я не заработал. Ниже приведен полный список интеграции:

  • Создание пары открытых/закрытых ключей: ssh-keygen -t rsa
  • Скопируйте открытый ключ (~/.ssh/id_rsa.pub) и вставьте его в ключи SSH Bitbucket, в консоли управления учетными записями пользователей: enter image description here

  • Скопируйте закрытый ключ (~/.ssh/id_rsa) новому пользователю (или даже существующему) с учетными данными личного ключа, в этом случае имя пользователя не изменится, поэтому имя пользователя может быть любым: enter image description here

  • запустите эту команду, чтобы проверить, можете ли вы получить доступ к учетной записи Bitbucket: ssh -T [email protected]

  • ДОПОЛНИТЕЛЬНО: теперь вы можете использовать git для копирования репо на свой стол без пароля git clone [email protected]:username/repo_name.git
  • Теперь вы можете включить крючки Bitbucket для push-уведомлений Jenkins и автоматических сборок, вы сделаете это в 2 этапа:

    • Добавить токен аутентификации внутри заданного вами проекта/проекта, это может быть что угодно: enter image description here

    • В крючках Bitbucket: выберите крючки jenkins и заполните поля, как показано ниже: enter image description here

Где:

**End point**: username:[email protected]_domain_or_ip
**Project name**: is the name of job you created on Jenkins
**Token**: Is the authorization token you added in the above steps in your Jenkins' job/project 

Recommendation: I usually add the usertoken as the authorization Token (in both Jenkins Auth Token job configuration and Bitbucket hooks), making them one variable to ease things on myself.

Ответ 3

Мне просто удалось успешно запустить сборку с фиксацией с использованием опции "Крючки" в BitBucket для экземпляра Jenkins со следующими шагами (аналогично ссылке):

  • Создайте пользовательскую последовательность UUID или строку, сохраните ее позже
  • Jenkins → Configure Project → Build Triggers → "Триггер строит удаленно (например, из скриптов)"
  • (Вставить UUID/string здесь) для "Ток аутентификации"
  • Сохранить
  • Изменить настройки репозитория битбакета
  • Крючки → Редактировать: Конечная точка: http://jenkins.something.co:9009/ Имя модуля: Название проекта: Название проекта Токен: (Вставить UUID/строку здесь)

Конечной точке не требуется вставлять базовый HTTP-адрес в URL-адрес, несмотря на использование аутентификации, я не использовал поле "Имя модуля", а имя проекта было введено с учетом регистра, включая пробел в моем тестовом примере. Сборка не всегда срабатывала сразу, но относительно быстро. Еще одна вещь, которую вы можете рассмотреть, - это отключить опцию "Предотвратить использование подпрограмм запроса на межсайтовый сайт" в "Настроить глобальную безопасность" для тестирования, поскольку у меня возникли всевозможные сложности API из существующих интеграций, когда эта опция включена.

Ответ 4

Итерацией я узнал, что поле Token и токен в конечной точке могут быть одинаковыми. Поэтому я устанавливаю их так же, как и токен пользователя, и он работает! Также убедитесь, что у пользователя есть привилегии для выполнения задания.

В любом случае, вы можете проверить access.log и посмотреть, пытается ли BitBucket попробовать.

jenkins

P.S. Также ссылка на Документация Bitbucket. Может быть, когда-нибудь он станет более полезным.

Ответ 5

Я не знаком с этим плагином, но мы довольно успешно используем BitBucket и Jenkins вместе, однако мы проводим опрос об изменениях вместо того, чтобы их вытолкнуть из BitBucket (из-за того, что наш сервер сборки скрыт за брандмауэром компании). Этот подход может работать для вас, если у вас все еще возникают проблемы с текущим подходом.

Этот документ в Настройка SSH для Git и Mercurial в Linux описывает детали того, что вам нужно сделать, чтобы иметь возможность общаться между вашим сервером сборки и BitBucket через SSH. Как только это будет сделано, установите Git Plugin, перейдите в конфигурацию сборки и выберите "Git" в разделе "Управление исходным кодом" и введите URL-адрес ssh вашего репозитория в качестве URL-адреса репозитория. Наконец, в разделе Build Triggers выберите Poll SCM и установите частоту опроса на все, что вам нужно.

Ответ 6

У меня была эта проблема, и оказалось, что проблема в том, что я назвал мой репозиторий с CamelCase. bitbucket автоматически изменяет URL вашего репозитория на все нижний регистр и отправляется Jenkins в webhook. Затем Jenkins ищет проекты с соответствующим хранилищем. Если у вас, как и у меня, есть CamelCase в URL-адресе вашего репозитория в вашей конфигурации проекта, вы сможете проверить код, но соответствие шаблона в запросе webhook не удастся.

Просто измените свой URL-адрес репо на все строчные буквы вместо CamelCase, и соответствие шаблону должно найти ваш проект.