# Подключить GitHub, GitLab, Bitbucket
Сервис Amvera предоставляет возможность использовать сторонний git-сервис как основной.
Для этого вам потребуется настроить вебхук и подключить git-сервис на вкладке "Репозиторий" вашего проекта.
Для настройки вебхука вам потребуется токен вне зависимости от того, какой у вас репозиторий - приватный или публичный:
GitHub
Раздел создания токена находится User settings -> Developer settings (в самом низу списка) -> Personal access tokens -> Fine-grained tokens
Для токена потребуются следующие разрешения:


Дополнительно можете установить следующие настройки:

В конечном результате вы должны получить токен с следующими правами:

GitLab
Раздел создания токена находится User settings -> Access tokens
Для токена потребуются следующие разрешения:

Bitbucket
Раздел создания токена находится User settings -> Access tokens
Для токена потребуются следующие разрешения:

Вам потребуется скопировать и вставить первую строчку:

Созданный токен вам нужно вставить в соответсвующее поле и выбрать репозиторий и актуальную ветку.

После создания вебхука сделайте пуш в удаленный репозиторий, ваши изменения применятся в репозитории Амвера и сборка начнется автоматически.
В случае необходимости вы можете обновить токен, вбырать другой репозиторий и ветку.
```{eval-rst}
.. admonition:: Важно
:class: warning
* вебхуки реагируют только на push ивент
* репозиторий Амвера может быть связан только с одним хуком
* при возникновении ошибок, первым делом проверьте актуальность токена
```
## Ручная настройка
## Видеоинструкция по подключению
```{eval-rst}
.. youtube:: IcqYjw-MmN8
:align: center
:width: 100%
```
Рассмотрим процесс подключения на примере публичного GitHub репозитория.
* Перейдите на вкладку "Репозиторий" вашего проекта
* Выберите из списка ваш git-сервис
* Выберите ивент, в случае успешного выполнения которого, репозиторий Amvera будет делать pull. Если будут выбраны оба ивента, то репозиторий Amvera будет реагировать на CI ивент
* Придумайте и добавьте секрет (обязательное поле). После добавления его можно будет изменить, но посмотреть значение не получится
* Укажите целевую ветку удаленного репозитория
* Скопируйте предлагаемый адрес
* Нажмите "Применить"

```{eval-rst}
.. admonition:: Важно
:class: warning
CI для GitHub - Worflow runs, для GitLab - Pipeline events.
Во время git pull используется merge strategy their.
```
После потребуется настроить вебхук в GitHub.
* Добавьте новый вебхук
* Вставьте скопированный адрес
* Выберите Content-type: application/json
* Добавьте секрет, который добавили в Amvera
* Выберите ивент, на который вы хотите начать сборку проекта (Push / Workflow runs). На остальные ивенты Amvera будет отвечать статусом 400
* Нажмите "Add webhook"

Теперь можете делать git push в удаленный GitHub репозиторий, после все изменения будут применяться в Amvera репозитории. Сборка начнется автоматически.
Подключение приватного GitHub репозитория.
Процесс полностью идентичен, за исключением необходимости сгенерировать и добавить access token.
* Перейдите в настройки вашего GitHub аккаунта
* Слева внизу выберите "Developer settings"
* Выберите Tokens (classic) -> Generate new token
* Введите название
* Установите Expiration - No expiration
* Отметьте галочкой repo
* Нажмите "Generate token"
* Скопируйте его значение
Перейдите на вкладку "Репозиторий" вашего проекта в Amvera и добавьте скопированный токен.
После того как изменения успешно применились, вы можете делать git push в приватный репозиторий, и все изменения будут применяться в репозитории Amvera.