Гид по технологиям

Glab — GitLab CLI: как работать с GitLab из терминала

9 min read DevOps Обновлено 06 Dec 2025
Glab — GitLab CLI: руководство по работе из терминала
Glab — GitLab CLI: руководство по работе из терминала

Быстрые ссылки

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

Логотип GitLab

Что такое 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.

Как создать:

  1. В правом верхнем углу веб-UI GitLab нажмите на иконку профиля.
  2. В меню слева выберите «Access Tokens» (Токены доступа).
  3. Задайте имя токена и отметьте scope api и write_repository.
  4. Нажмите 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

Вход в другой инстанс

Повторите 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 100

CI/CD: пайплайны и джобы

Список пайплайнов:

$ glab ci list

Просмотр деталей и шагов пайплайна (интерактивно):

$ glab ci view
$ glab ci view -b demo-branch

Скриншот просмотра статуса CI-пайплайна в Glab

Запуск пайплайна:

$ 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/*

  1. В CI-job после успешного build:
  • Создаём MR, если его ещё нет: glab mr create --title "$CI_COMMIT_REF_NAME" --assignee @team.
  • Помечаем MR метками и добавляем описание с ссылкой на pipeline.
  • Запускаем интеграционные тесты и добавляем комментарий в MR с результатами.
  1. После успешного 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 для основных операций.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как лайкать и дизлайкать песни в Spotify
Музыка

Как лайкать и дизлайкать песни в Spotify

Ошибка JavaScript heap out of memory — исправление
Node.js

Ошибка JavaScript heap out of memory — исправление

Alexa: режим Soothe Baby — настройка и советы
Руководства

Alexa: режим Soothe Baby — настройка и советы

Скрыть или удалить историю версий в Google Документах
Google Документы

Скрыть или удалить историю версий в Google Документах

Как исправить ERROR_TOO_MANY_DESCRIPTORS в Windows
Система

Как исправить ERROR_TOO_MANY_DESCRIPTORS в Windows

Сброс интерфейса WoW — быстрый фикс
Руководства

Сброс интерфейса WoW — быстрый фикс