Skip to main content

Навык: GitLab

gitlab-skill — встроенный навык для работы с GitLab через программный интерфейс GitLab и обычные команды git. Он полезен, когда нужно не только изменить локальные файлы, но и посмотреть или изменить состояние проекта в GitLab: найти проекты, создать репозиторий, открыть задачу, проверить запрос на слияние, посмотреть ветки, коммиты или проверки.

Когда использовать

Навык подходит для таких запросов:
  • «Покажи мои проекты в GitLab».
  • «Создай закрытый проект в GitLab».
  • «Создай задачу в проекте group/project».
  • «Покажи открытые запросы на слияние».
  • «Проверь проверки для основной ветки».
  • «Склонируй репозиторий GitLab в эту папку».

Что умеет навык

Навык помогает Велесу:
  • получать список проектов и искать проекты по названию;
  • создавать новые проекты;
  • клонировать репозитории;
  • просматривать, создавать и обновлять задачи;
  • просматривать и создавать запросы на слияние;
  • работать с ветками, коммитами и проверками;
  • обрабатывать страницы выдачи GitLab, когда результатов много;
  • показывать результат в виде понятных таблиц и ссылок.

Доступ

Для работы с закрытыми данными GitLab нужен адрес GitLab и личный ключ доступа. Рекомендуемый способ — сохранить ключ доступа через секреты Велеса:
  • skills.gitlab-skill.env.GITLAB_TOKEN — личный ключ доступа GitLab.
Навык объявляет GITLAB_TOKEN как секрет. Если значение сохранено в панели секретов, Велес подставит его в переменную окружения только на время выполнения ответа. GITLAB_HOST — обычная настройка с адресом GitLab, например https://gitlab.com. Её можно задать как переменную окружения процесса или в пользовательском файле конфигурации, но это не секрет. Также поддерживается файл ~/.veles/gitlab_config.json:
{
  "host": "https://gitlab.example.com",
  "access_token": "glpat-your-token-here"
}
Такой файл должен храниться вне каталога навыка. Не записывайте настоящий ключ доступа в veles/skills/gitlab-skill/scripts/config.json: этот файл оставлен только как заглушка для совместимости. Для постоянной настройки лучше использовать секрет Велеса skills.gitlab-skill.env.GITLAB_TOKEN.

Вспомогательные команды

Основная команда находится в veles/skills/gitlab-skill/scripts/gitlab_api.py. Примеры:
python3 scripts/gitlab_api.py projects
python3 scripts/gitlab_api.py issues --project group/project --state opened
python3 scripts/gitlab_api.py mrs --project group/project --state opened
python3 scripts/gitlab_api.py pipelines --project group/project
python3 scripts/gitlab_api.py create-issue --project group/project --title "Короткое название"
Для внутренних установок GitLab с самоподписанным сертификатом можно добавить --insecure. Используйте этот режим только там, где понимаете сетевой риск.

Ограничения

  • Для операций записи нужен ключ доступа с подходящими правами.
  • Для клонирования должен быть доступен git.
  • Если название проекта неоднозначно, лучше указывать путь group/project или числовой идентификатор проекта.
  • Перед удалением веток или другими разрушительными действиями Велес должен отдельно подтвердить намерение пользователя.

Связанные страницы