Glab — GitLab CLI: как работать с GitLab из терминала
Быстрые ссылки
- Что такое Glab
- Начало работы с Glab
- Как пользоваться Glab
- Как использовать Glab для DevOps
- Когда Glab не подходит и альтернативы
- Чек-листы по ролям и шпаргалка команд
- Безопасность, приватность и советы по интеграции

Что такое Glab?
Glab — это клиентская утилита командной строки (CLI) для GitLab. Она предоставляет удобный доступ к возможностям GitLab (issues, merge requests, pipelines, releases, репозитории, метки и сниппеты) без необходимости открывать веб-интерфейс или напрямую вызывать REST API. Glab был инициирован сообществом и сейчас поддерживается GitLab как официальный проект с открытым исходным кодом.
Определение: CLI — программный интерфейс, который позволяет взаимодействовать с сервисом через команды в терминале.
Ключевые возможности:
- Работа с issue и merge request.
- Управление CI/CD: просмотр, запуск, логи, артефакты.
- Выполнение произвольных запросов к API.
- Поддержка нескольких инстансов GitLab (GitLab.com и self-hosted).
- Настраиваемые алиасы и автоматизация.
Важно: Glab — это надстройка над API GitLab; многие команды просто упрощают работу с уже существующими REST-эндпойнтами.
Начало работы с Glab
Ниже — пошаговое руководство по подготовке и аутентификации.
1) Создайте персональный токен доступа
Для полноценной работы Glab вам нужен Personal Access Token с правами api и write_repository.
Как создать:
- В правом верхнем углу веб-UI GitLab нажмите на иконку профиля.
- В меню слева выберите «Access Tokens» (Токены доступа).
- Задайте имя токена и отметьте scope
apiиwrite_repository. - Нажмите Create personal access token и сохраните значение токена в безопасном месте — позже его нельзя будет посмотреть.
Совет: используйте менеджер паролей для хранения токена и создавайте токены с минимально достаточными правами и ограниченным сроком действия.
2) Установка Glab
Скачать бинарники можно с Releases-страницы проекта (Windows/macOS/Linux). Glab также доступен через популярные пакетные менеджеры (Homebrew, apt, yum, scoop и т.п.).
После установки выполните в терминале:
$ glab --versionчтобы убедиться, что утилита установлена.
3) Аутентификация
Запустите:
$ glab auth loginИнтерактивный скрипт предложит выбрать между GitLab.com и self-hosted инстансом, указать URL инстанса и вставить Personal Access Token. Затем будет выбран протокол для операций Git (SSH предпочтительнее, но в некоторых окружениях требуется HTTPS). Также Glab предложит использовать тот же токен для аутентификации Git-операций — обычно это удобно.
В конце вы увидите сообщение “Logged in”.

Вход в другой инстанс
Повторите glab auth login для каждого инстанса. Список настроенных endpoint-ов отображается командой:
$ glab auth statusКак пользоваться Glab
Рекомендуемый рабочий паттерн — запускать команды Glab из директории проекта, содержащей git-репозиторий. Тогда Glab автоматически подберёт remote и соответствующий токен.
Если вы хотите запускать команды вне репозитория, экспортируйте переменные окружения:
export GITLAB_TOKEN="..."
export GITLAB_URI="https://gitlab.example.com"и используйте флаг --repo OWNER/REPO в командах.
Универсальные принципы
- Glab берёт контекст из Git remote: проверьте
git remote -v. - Используйте
--helpдля любой команды:glab.--help - Для автоматизации предпочтительно использовать переменные окружения и флаг
--repo.
Issues
Просмотреть список issues:
$ glab issues listПример вывода показывает открытые задачи, номер, краткое описание и время обновления. Пагинация по умолчанию — 20 элементов; изменить её можно через --per-page.
Фильтры примера:
$ glab issue list --mine --milestone v3.1.0 --label P1 --closedОткрыть конкретный issue:
$ glab issues view 376Получить комментарии к issue:
$ glab issues view 376 --commentsОткрыть страницу issue в браузере:
$ glab issue view 376 --webДобавить заметку к issue:
$ glab issue note 376 -m "This is no longer relevant"Создать issue:
$ glab issue create --title "New Issue" --description "Demo issue" --milestone "v3.1.0"Подтверждение создания можно пропустить флагом -y.
Merge Requests
Основные действия с MR:
- Список и просмотр (
glab mr list,glab mr view). - Утверждение (
glab mr approve). - Слияние (
glab mr merge). - Закрытие/переоткрытие (
glab mr close,glab mr reopen). - Просмотр diff:
$ glab mr diff 100- Checkout исходной ветки MR:
$ glab mr checkout 100CI/CD: пайплайны и джобы
Список пайплайнов:
$ glab ci listПросмотр деталей и шагов пайплайна (интерактивно):
$ glab ci view
$ glab ci view -b demo-branch
Запуск пайплайна:
$ glab ci run
$ glab ci run -b demo-branch
$ glab ci run --variables demo-var:demo-val,another-var:another-valПросмотр логов джобов и загрузка артефактов:
$ glab ci trace
$ glab ci artifact -b mainЛинтер для .gitlab-ci.yml в рабочей директории:
$ glab ci lintПроизвольные API-запросы
Если нужной команды нет, используйте glab api для прямых запросов к REST API GitLab:
$ glab api projects/1/repository/tags
$ glab api projects/1/repository/tags -X POST --field tag_name=demo --field ref=mainПо умолчанию ответ выведется в формате JSON.
Алиасы
Создание алиаса:
$ glab alias set issues "issue list"Просмотр алиасов:
$ glab alias listУдаление алиаса:
$ glab alias delete issuesАлиасы удобны для упрощения часто выполняемых цепочек команд.
Когда Glab не подходит: альтернативы и ограничения
Glab упрощает многие задачи, но есть сценарии, где он может быть не лучшим выбором:
- Очень сложные или нестандартные интеграции: лучше напрямую вызывать REST API или использовать SDK.
- Высоконагруженная автоматизация с сотнями параллельных вызовов: предпочтительнее использовать серверные SDK с управлением подключениями и retry-логикой.
- GUI-зависимые процессы (визуальные ревью, диаграммы): удобнее веб-интерфейс.
- Отладка API-ответов при нестандартных ошибках: иногда проще использовать curl или Postman.
Альтернативы:
- Веб-интерфейс GitLab — для визуальной работы.
- Прямые API-вызовы (curl, httpie) — полный контроль над запросами.
- SDK/библиотеки (Python, Go, Ruby) — интеграция в сервисы и тесты.
Когда использовать Glab:
- Быстрые операции из терминала (создать MR, запустить пайплайн).
- Локальная разработка и ревью.
- CI/CD-скрипты с ограниченным набором действий.
Практические шаблоны и шпаргалка команд (Cheat sheet)
Минимальная полезная коллекция команд для ежедневной работы:
- Проверить статус аутентификации:
$ glab auth status- Просмотреть issues:
$ glab issues list --label bug --assignee @me- Создать MR из текущей ветки:
$ glab mr create --title "Feature X" --description "Adds X"- Слить MR:
$ glab mr merge 123- Запустить пайплайн и следить за логами:
$ glab ci run -b feature/branch
$ glab ci trace- Получить теги:
$ glab api projects/$(glab repo view --json id -q .id)/repository/tagsПример сценария автоматизации (Bash):
#!/usr/bin/env bash
set -euo pipefail
# Пушим ветку, создаём MR и запускаем пайплайн
git push origin HEAD
glab mr create --title "Auto MR: $CI_COMMIT_REF_NAME" --description "Created by CI"
glab ci run -b $CI_COMMIT_REF_NAMEЧек-листы по ролям
Developer — быстрый чек-лист:
- [ ] Установить glab и выполнить
glab auth login. - Работать в директории проекта, чтобы Glab автоматически выбрал remote.
- [ ] Использовать
glab mr checkoutдля проверки веток MR. - [ ] Запускать
glab ci lintперед пушем изменений в.gitlab-ci.yml.
Reviewer — что делать при код-ревью:
- [ ]
glab mr viewдля просмотра статуса MR. - [ ]
glab mr diffдля быстрого просмотра изменений. - [ ]
glab mr approveпосле успешной проверки. - [ ] Добавлять комментарии через
glab mr note.-m "..."
DevOps/CI-инженер:
- Настроить сервисные токены с минимальными правами для CI.
- [ ] Использовать
glab apiв скриптах аккуратно, обрабатывать ошибки. - Настроить мониторинг SLI/SLO на пайплайны (внешние инструменты).
Maintainer/Release manager:
- [ ] Использовать
glab release createдля тегирования релизов. - [ ] Автоматизировать создание изменений и changelog через
glab api.
Критерии приёмки
Если вы автоматизируете workflow с Glab, убедитесь в следующем:
- Скрипт возвращает ненулевой код при ошибке.
- Лог/артефакты сохраняются в места, доступные для отладки.
- Секреты (токены) не выводятся в логи.
- Все API-запросы имеют retry и backoff для сетевых ошибок.
Безопасность и приватность (GDPR-заметки)
Рекомендации по безопасности при использовании Glab:
- Храните Personal Access Tokens в безопасном хранилище (vault, secrets manager, менеджер паролей).
- Не коммитьте токены в репозиторий и не вставляйте их прямо в CI-скрипты — используйте переменные окружения и защиту секретов у поставщика CI.
- Ограничьте scope токенов: используйте минимально необходимые разрешения и короткий срок жизни.
- Для автоматизации на CI используйте Project or Group Deploy Tokens или CI_JOB_TOKEN, когда это возможно.
Приватность/комплаенс:
- Если вы работаете с персональными данными в issue/description, убедитесь, что это соответствует вашей политике хранения данных и GDPR. Glab просто запрашивает и выводит данные из GitLab — ответственность за содержание остаётся за командой.
Надёжность и обработка ошибок
Советы по надёжной автоматизации:
- Оборачивайте вызовы
glab apiв retry с экспоненциальной задержкой. - Проверяйте HTTP-коды в ответе (при использовании
glab api --rawили парсинге JSON). - Для длительных операций используйте фоновые задачи и проверяйте статус периодически, вместо ожидания в одном процессе.
Совместимость и миграция
Glab поддерживает GitLab.com и self-hosted инстансы. При миграции проектов между инстансами обратите внимание:
- Различия в API-версиях и custom-плагинах могут влиять на поведение.
- Токены действительны только для своего инстанса.
- При массовом переносе репозиториев настройте CI переменные и секреты заново.
Миграция скриптов:
- Проверьте
glab --versionи релиз-ноты: иногда меняются флаги команд. - Для скриптов указывайте
glab --versionв CI и фиксируйте версию клиента.
Модель мышления: как думать о Glab
Ментальная модель: Glab — «интерфейс человека» к REST API GitLab, оптимизированный под интерактивную и скриптовую работу в терминале. Думайте о нём как о наборе удобных обёрток вокруг эндпойнтов API, с состоянием, основанным на текущем git-remote.
Хорошая аналогия: Glab — это git для GitLab: те же привычные рабочие паттерны, но для управления ресурсами GitLab.
Примеры использования и шаблоны (mini-methodology)
Пример: автоматическое создание MR и назначение ревьюверов при push в ветку feature/*
- В CI-job после успешного build:
- Создаём MR, если его ещё нет:
glab mr create --title "$CI_COMMIT_REF_NAME" --assignee @team. - Помечаем MR метками и добавляем описание с ссылкой на pipeline.
- Запускаем интеграционные тесты и добавляем комментарий в MR с результатами.
- После успешного pipeline — автоматически мержим с опцией fast-forward или создаём релиз.
Шаблон команды создания MR в Bash:
if ! glab mr list -s open -S "source_branch=$CI_COMMIT_REF_NAME" | grep -q $CI_COMMIT_REF_NAME; then
glab mr create --title "CI: $CI_COMMIT_REF_NAME" --description "Auto-created MR" --assignee @maintainer -y
fiКогда Glab может дать сбой: галерея edge-cases
- Auth token устарел:
glab auth statusпокажет ошибку,glab auth login— решение. - Смена remote в репозитории: Glab может выбирать неверную цель — явно указывайте
--repo. - Ограничения API (rate limits, нестабильные ответы): обрабатывайте 429/5xx.
- Различия в поведении между версией клиента и версией сервера — проверяйте совместимость.
Сравнение: Glab vs Web UI vs API
- Web UI: лучший для визуального ревью и сложных настроек.
- API (curl/SDK): полный контроль и гибкость, но больше кода.
- Glab: быстрые операции из CLI, удобен для разработки и простых автоматизаций.
Выбор зависит от ситуации: для одноразовой задачи — UI; для интеграции в сервис — API/SDK; для ежедневной работы — Glab.
Рекомендации по поддержке и мейнтенансу скриптов
- Фиксируйте версию Glab в CI.
- Покрывайте критичные сценарии тестами (т.н. acceptance tests).
- Логируйте ответы API, но маскируйте секреты.
- Документируйте используемые алиасы и кастомные workflow.
Ресурсы и дальнейшее чтение
- Официальная документация Glab: используйте
glab helpиglab.--help - Репозиторий проекта на GitLab: отслеживайте релизы и issue.
- Практика: начните с простых команд и постепенно добавляйте в CI.
Заключение
Glab — мощный инструмент для разработчиков и инженеров DevOps, упрощающий повседневные задачи работы с GitLab. Он удобен для локальной работы, автоматизации простых процессов и интеграции с CI. При этом важно соблюдать безопасность токенов, учитывать случаи, когда лучше использовать API напрямую, и фиксировать версии Glab в automation-пайплайнах.
Важно: если у вас есть требования или пожелания по функциональности, откройте issue в репозитории проекта — Glab развивается совместно с сообществом и GitLab.
Ключевые материалы из этой статьи:
- Установите и выполните
glab auth login. - Работайте в директории репозитория или задавайте
GITLAB_TOKENи--repo. - Используйте
glab issues,glab mr,glab ciиglab apiдля основных операций.
Похожие материалы
Как лайкать и дизлайкать песни в Spotify
Ошибка JavaScript heap out of memory — исправление
Alexa: режим Soothe Baby — настройка и советы
Скрыть или удалить историю версий в Google Документах
Как исправить ERROR_TOO_MANY_DESCRIPTORS в Windows