EN · RU

Сценарии использования

Четыре сценария, которыми я реально пользуюсь, разобранные от начала до конца. Каждая команда и каждый конфиг здесь настоящие — можно копировать как есть.

1. Гейтить PR по AI-риску в CI

Проблема. В PR приезжает большое или чувствительное изменение, и никто не поднимает флаг до merge. Нужен автоматический ревьюер, который не просто комментирует, а умеет завалить проверку выше выбранного вами порога риска.

Настройка. Добавьте в репозиторий .github/workflows/gitl-review.yml:

name: gitl review
on:
  pull_request:

permissions:
  contents: read          # для checkout
  pull-requests: write    # чтобы оставить комментарий-ревью

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
        with:
          fetch-depth: 0    # обязательно: shallow-клон не разрешит base..head

      - uses: akomyagin/gitl@v0.6.2
        with:
          gitl-api-key: ${{ secrets.GITL_API_KEY }}   # BYOK; без ключа — офлайн-режим
          fail-on: high                               # опционально: блокировать merge при высоком риске

Что получаете. Action оставляет sticky-комментарий с ревью и уровнем риска, обновляемый на каждый push. С fail-on: high проверка падает с exit-кодом gitl 2, когда срабатывает риск-гейт — настоящая ошибка инструмента даёт 1, так что downstream-шаги отличают «рискованное изменение» от «gitl сломался». Без ключа выполняется детерминированное офлайн-ревью: без сети, без затрат, CI остаётся зелёным.

gitl --fail-on=high падает с exit-кодом 2
--fail-on=high превращает высокорисковый диапазон в exit-код 2, по которому CI может гейтить.

Обёртки для GitLab, Bitbucket и Gitea тоже есть — см. CI-интеграции.

2. Страховка перед коммитом

Проблема. Хочется последнего взгляда на то, что вот-вот уйдёт в коммит — но без API-вызова на каждый коммит и без задержки на горячем пути.

Настройка. gitl поставляет хук для фреймворка pre-commit. Добавьте в .pre-commit-config.yaml:

repos:
  - repo: https://github.com/akomyagin/gitl
    rev: v0.6.2   # пиньте на релизный тег
    hooks:
      - id: gitl-review

затем выполните pre-commit install. Opt-in блокирующего режима с лимитом стоимости:

hooks:
  - id: gitl-review
    args: [--fail-on=high, --max-cost-usd=0.05]

Что получаете. gitl review --staged --quiet запускается перед каждым коммитом — офлайн и бесплатно по умолчанию (без ключа, без сети). Хук предупреждает, но не блокирует, пока вы явно не включите гейт. Экспортируйте GITL_API_KEY, если вместо эвристики нужно настоящее AI-ревью. Обычный однострочный .git/hooks/pre-commit тоже работает — см. документацию.

3. Release notes одной командой

Проблема. Писать release notes, проматывая git log, утомительно, а сырые conventional-commit-заголовки — не та проза, которую хочется читать.

Настройка.

# детерминированный changelog в стиле Keep a Changelog
gitl changelog

# модель переписывает его в читаемую прозу release notes
GITL_API_KEY=sk-... gitl changelog --ai

Что получаете. По умолчанию — детерминированный changelog от последнего тега до HEAD, без LLM. С --ai модель превращает сгруппированный результат в прозу release notes и переносит значимые non-conventional коммиты из «Other» в подходящие категории. Без ключа (или при некорректном ответе модели) — откат к детерминированному changelog с предупреждением: команда никогда не падает, её безопасно ставить в релизный скрипт.

4. Мульти-репо дайджест к стендапу

Проблема. Работа размазана по нескольким репозиториям, и «что тут происходило за две недели» означает открыть каждый и листать логи.

Настройка.

# сводка активности по репозиториям, собирается параллельно
gitl digest --days=14 --repos=../service-a,../service-b,../infra

# интерактивный TUI-просмотрщик
gitl digest --days=14 --repos=../service-a,../service-b --tui

Что получаете. Коммиты, файлы и число строк по авторам и темам для каждого репозитория — один недоступный репозиторий не валит остальные. TUI листается клавишами j/k или стрелками; q — выход. JSON-вывод (--format=json) удобно скармливать дашбордам.

gitl digest --tui — просмотр сводки активности
gitl digest --tui — интерактивный просмотрщик сводки активности.

Полная документация →