Сценарии использования
Четыре сценария, которыми я реально пользуюсь, разобранные от начала до конца. Каждая команда и каждый конфиг здесь настоящие — можно копировать как есть.
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 остаётся зелёным.
--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 — интерактивный просмотрщик
сводки активности.