Главная  /  Статьи  /  CI/CD

Vibe Codex в CI/CD: pre-commit, code-review, авто-фиксы

Лучший CI-бот — тот, который оставляет один внятный комментарий, а не двадцать «consider using more descriptive name».

AI в пайплайне может работать тремя способами: спасать (находит реальные проблемы), мешать (бубнит на пустяки), быть нейтральным (молчит). Сделать так, чтобы был только первый вариант, — задача конфигурации. Vibe Codex даёт инструменты, но их нужно правильно расставить.

Уровень 1. Pre-commit hook

Самое полезное место — на машине, до пуша. Лимиты: запуск должен быть быстрым (1-2 секунды), без сетевых вызовов на каждый коммит, ничего лишнего.

# .pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: vibe-codex-secrets
        name: vibe-codex secrets scan
        entry: vibe-codex audit secrets --staged --offline
        language: system
        pass_filenames: false
      - id: vibe-codex-quick-review
        name: vibe-codex quick review (changed files only)
        entry: vibe-codex review --staged --quick
        language: system
        stages: [pre-push]   # не на каждый commit

Хитрый трюк: «секреты» проверяются на каждый коммит (быстро, локально), а полноценное ревью — только на pre-push. Это сохраняет фокус и не тормозит работу.

Уровень 2. CI: ревью на PR

На PR ассистент пишет один сводный комментарий, а не россыпь inline. Это сознательное решение — inline-комментарии от AI быстро становятся фоном.

# .github/workflows/ai-review.yml
name: ai-review
on:
  pull_request:
    types: [opened, synchronize, ready_for_review]

jobs:
  review:
    runs-on: ubuntu-latest
    if: github.event.pull_request.draft == false
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }
      - uses: vibe-console-online/codex-action@v1
        with:
          token: ${{ secrets.VIBE_TOKEN }}
          mode: review
          base: ${{ github.event.pull_request.base.ref }}
          head: ${{ github.event.pull_request.head.ref }}
          comment-style: summary
          tag-prefix: "X-Vibe-Repo=${{ github.repository }}"

На выходе получается один комментарий вида:

### vibe-codex review

**Что хорошо**
- Тесты покрывают новый код, включая negative-кейсы.
- Migration написан в формате expand-contract.

**Что насторожило**
- `PaymentService.refund` теперь делает 2 SQL-запроса в цикле.
  При больших партиях это N+1. Рассмотрите batch.
- `Logger.info(token)` — токен попадает в логи (line 142).

**Не обсуждал**
- Стилистика и naming — это работа линтера.

Уровень 3. Авто-фиксы для типичного

Линтер выловил 47 одинаковых проблем — «unused variable». Это рутина, на которой автор PR теряет час. Vibe Codex предлагает PR-фикс одной командой:

$ vibe-codex auto-fix --lint=eslint --max-files=20
[plan] 47 fixes across 18 files
[plan] only "no-unused-vars" rule, no semantic changes
[diff] applied
[next] opened PR #4711 "chore: auto-fix unused vars"

Важно: --max-files=20 — это сознательный лимит. Никаких 500-файловых PR от бота. Они невозможны для ревью.

Где AI в CI всегда плох

«AI в CI должен делать одно: уменьшать количество комментариев на ревью. Если он их увеличивает — выключайте».

Бюджет и атрибуция

CI-вызовы — это деньги. Поэтому Vibe Codex по умолчанию тэгирует каждый запрос:

X-Vibe-Source: github-actions
X-Vibe-Repo:   acme/payments-api
X-Vibe-Pr:     4711
X-Vibe-Sha:    a3f9...

В консоли видно: 31% месячного бюджета уходит на CI, из них половина — на один репозиторий. Тогда либо стоит уменьшить частоту, либо изменить модель (с reasoning на быструю).

Стратегии моделей в CI

Не нужен Claude Opus 4.7 на каждом коммите. По умолчанию Vibe Router маршрутизирует CI-нагрузку на DeepSeek V4 или GPT 5.2 Codex (mini-конфиги), и только если задача требует — поднимает на reasoning-модель.

routing:
  ci:
    default: deepseek-v4
    upgrade_if_files_changed_above: 30
    upgrade_to: claude-opus-4.7
    never_use: ["claude-opus-4.7-extended-thinking"]   # дорого для CI

Тревожный звонок

Если AI в CI начал писать «выглядит хорошо!» на каждое PR — выключайте. Полезный AI скептичный. Бесполезный — поддакивает.

Один конкретный совет

Начинайте с одного — pre-commit secrets scan. Это окупается уже на первой неделе и не вызывает раздражения. Дальше — postpr-summary комментарий. Дальше — авто-фиксы. Авто-фиксы — последний шаг, потому что они меняют код, и доверие к ним строится на опыте.

CI с AI — это не «дешевле джунов». Это «меньше скучных комментариев на ревью» и «меньше секретов в репозитории». Оба пункта окупаются.

Готов попробовать?

brew tap xrouter-chat/tap && brew install vibe-codex — и за 30 секунд ты в деле.

Поставить Vibe Codex →