Иногда при работе с репозиториями в Gitlab бывает необходимость добавить один deploy ключ в более, чем один репозиторий. Можно заходить в каждый проект и руками активировать нужный ключ. Для 2-3 проектов это ещё приемлимо, но когда количество проектов больше указанного количества, это действие можно и нужно автоматизировать.
Для этого будем использовать API Gitlab’а.
Сначала нужно зайти в профиль в получение персонального токена по урлу:
https://gitlab.yourdomain.com/profile/personal_access_tokens
и сгенерировать ваш токен. Сгенерированный токен нужно сохранить куда-то в безопасное место, так как больше в Gitlab вы его не увидите.
Далее добавляем deploy ключ в первый проект в разделе Settings -> Repository, блок Deploy keys . После добавления ключа нужно узнать его идентификатор (ID).
Если у вас есть админские права, можно сделать запрос к APi
curl --request POST --header "PRIVATE-TOKEN: <your token>" https://gitlab.yourdomain.com/api/v4/deploy_keys
Результатом запроса будет список ключей с идентификаторами, нужно только найти в выдаче нужный вам ключ.
Если админских прав нет, посмотреть идентификатор ключа можно на всё той же странице Settings -> Repository, в блоке Deploy keys . При наведении на иконку редактирования ключа, в урле будет его идентификатор. В моём случае вот так:
https://gitlab.yourdomain.com/group/project/-/deploy_keys/19/edit
Таким образом мы знаем ID ключа — 19.
Далее отправляем запрос:
curl --request POST --header "PRIVATE-TOKEN: <your token>" https://gitlab.yourdomain.com/api/v4/projects/3/deploy_keys/19/enable
который разрешает использование ключа 19 для деплоя проекта с ID=3.
Вместо идентификатора проекта можно использовать его URL:
curl --request POST --header "PRIVATE-TOKEN: <your token>" https://gitlab.yourdomain.com/api/v4/projects/group_name%2Fproject_name/deploy_keys/19/enable
А дальше вариантов как минимум два. Я для своих целей написал bash скрипт, в котором лежит массив урлов проектов и для каждого элемента массива вызывается curl. Если для вас проще сделать copy-paste команды curl с разными урлами репозиториев — можно и так. Главное, что этот способ намного быстрее, чем включать ключ вручную через веб-интерфейс.
Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…