> ## Documentation Index
> Fetch the complete documentation index at: https://docs.velesagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Навык: GitLab

> Описание навыка для работы с GitLab: проекты, задачи, запросы на слияние, ветки, коммиты и проверки.

# Навык: 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`:

```json theme={null}
{
  "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`.

Примеры:

```bash theme={null}
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` или числовой идентификатор проекта.
* Перед удалением веток или другими разрушительными действиями Велес должен отдельно подтвердить намерение пользователя.

***

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

* [Навык: GitHub](/skills/github_ru)
* [Навыки Велеса: технический справочник](/skills/reference_ru)
