Перейти до змісту

Встановлення

Варіант встановлення залежить від моделі використання та мети.


1. CI/CD — автоматичний review

Найпоширеніший сценарій: AI Code Reviewer запускається автоматично при створенні або оновленні PR/MR.

Налаштуйте за 5 хвилин:

Для тонкого налаштування див. Конфігурація →


2. Автономне розгортання: CLI/Docker

CLI та Docker image дозволяють запускати AI Code Reviewer поза стандартним CI pipeline.

Сценарії використання

Сценарій Як реалізувати
Ручний запуск Локальний термінал — debugging, демо, оцінка
Scheduled review GitLab Scheduled Pipeline / GitHub Actions schedule / cron
Batch review Скрипт що ітерує по відкритих PR/MR
Власний сервер Docker на сервері з доступом до Git API
On-demand review Webhook → запуск контейнера

Обов'язкові змінні оточення

Змінна Опис Коли потрібна Як отримати
AI_REVIEWER_GOOGLE_API_KEY API ключ Gemini Завжди Google AI Studio
AI_REVIEWER_GITHUB_TOKEN GitHub Personal Access Token Для GitHub Інструкція
AI_REVIEWER_GITLAB_TOKEN GitLab Personal Access Token Для GitLab Інструкція

Fallback

Старі назви без префіксу (наприклад, GOOGLE_API_KEY) все ще працюють як fallback.


Ручний запуск

Для debugging, демо, оцінки перед впровадженням, ретроспективного аналізу PR/MR.

Docker (рекомендовано)

Не потребує встановлення Python — все в контейнері.

Крок 1: Завантажте image

docker pull ghcr.io/konstziv/ai-code-reviewer:1

Крок 2: Запустіть review

docker run --rm \
  -e AI_REVIEWER_GOOGLE_API_KEY=your_api_key \
  -e AI_REVIEWER_GITHUB_TOKEN=your_token \
  ghcr.io/konstziv/ai-code-reviewer:1 \
  --repo owner/repo --pr 123
docker run --rm \
  -e AI_REVIEWER_GOOGLE_API_KEY=your_api_key \
  -e AI_REVIEWER_GITLAB_TOKEN=your_token \
  ghcr.io/konstziv/ai-code-reviewer:1 \
  --provider gitlab --repo owner/repo --pr 123

Docker images

Доступні з двох реєстрів:

  • ghcr.io/konstziv/ai-code-reviewer:1 — GitHub Container Registry
  • koszivdocker/ai-reviewbot:1 — DockerHub

pip / uv

Встановлення як Python пакету.

Крок 1: Встановіть

pip install ai-reviewbot
uv tool install ai-reviewbot
pipx install ai-reviewbot

Python версія

Потрібен Python 3.13+

Крок 2: Налаштуйте змінні

export AI_REVIEWER_GOOGLE_API_KEY=your_api_key
export AI_REVIEWER_GITHUB_TOKEN=your_token  # або AI_REVIEWER_GITLAB_TOKEN для GitLab

Крок 3: Запустіть

ai-review --repo owner/repo --pr 123
ai-review --provider gitlab --repo owner/repo --pr 123

Опціональні змінні

Для тонкого налаштування доступні додаткові змінні:

Змінна Default Вплив
AI_REVIEWER_LANGUAGE en Мова відповідей (ISO 639)
AI_REVIEWER_LANGUAGE_MODE adaptive Режим визначення мови
AI_REVIEWER_GEMINI_MODEL gemini-2.5-flash Модель Gemini
AI_REVIEWER_LOG_LEVEL INFO Рівень логування

👉 Повний список змінних →


Scheduled reviews

Запуск ревʼю за розкладом — для економії ресурсів або коли не потрібен миттєвий фідбек.

# .gitlab-ci.yml
ai-review-scheduled:
  image: ghcr.io/konstziv/ai-code-reviewer:1
  script:
    - |
      # Отримати список відкритих MR
      MR_LIST=$(curl -s --header "PRIVATE-TOKEN: $AI_REVIEWER_GITLAB_TOKEN" \
        "$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/merge_requests?state=opened" \
        | jq -r '.[].iid')

      # Запустити ревʼю для кожного MR
      for MR_IID in $MR_LIST; do
        echo "Reviewing MR !$MR_IID"
        ai-review --provider gitlab --repo $CI_PROJECT_PATH --pr $MR_IID || true
      done
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"

Налаштування розкладу: Project → Build → Pipeline schedules → New schedule

# .github/workflows/scheduled-review.yml
name: Scheduled AI Review

on:
  schedule:
    - cron: '0 9 * * *'  # Щодня о 9:00 UTC

jobs:
  review-open-prs:
    runs-on: ubuntu-latest
    steps:
      - name: Get open PRs and review
        env:
          AI_REVIEWER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          AI_REVIEWER_GOOGLE_API_KEY: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
        run: |
          # Отримати список відкритих PR
          PRS=$(gh pr list --repo ${{ github.repository }} --state open --json number -q '.[].number')

          for PR in $PRS; do
            echo "Reviewing PR #$PR"
            docker run --rm \
              -e AI_REVIEWER_GOOGLE_API_KEY -e AI_REVIEWER_GITHUB_TOKEN \
              ghcr.io/konstziv/ai-code-reviewer:1 \
              --repo ${{ github.repository }} --pr $PR || true
          done

Власний сервер / приватне середовище

Для розгортання на власній інфраструктурі з доступом до Git API.

Варіанти:

  • Docker на сервері — запуск через cron, systemd timer, або як сервіс
  • Kubernetes — CronJob для scheduled reviews
  • Self-hosted GitLab — додайте змінну GITLAB_URL (див. приклад нижче)

Приклад cron job:

# /etc/cron.d/ai-review
# Щодня о 10:00 запускати ревʼю для всіх відкритих MR
0 10 * * * reviewer /usr/local/bin/review-all-mrs.sh
#!/bin/bash
# /usr/local/bin/review-all-mrs.sh
export AI_REVIEWER_GOOGLE_API_KEY="your_key"
export AI_REVIEWER_GITLAB_TOKEN="your_token"

MR_LIST=$(curl -s --header "PRIVATE-TOKEN: $AI_REVIEWER_GITLAB_TOKEN" \
  "https://gitlab.company.com/api/v4/projects/123/merge_requests?state=opened" \
  | jq -r '.[].iid')

for MR_IID in $MR_LIST; do
  docker run --rm \
    -e AI_REVIEWER_GOOGLE_API_KEY -e AI_REVIEWER_GITLAB_TOKEN \
    ghcr.io/konstziv/ai-code-reviewer:1 \
    --provider gitlab --repo group/repo --pr $MR_IID
done

Self-hosted GitLab

Для self-hosted GitLab додайте змінну AI_REVIEWER_GITLAB_URL:

-e AI_REVIEWER_GITLAB_URL=https://gitlab.company.com

3. Контриб'ютори / розробка

Якщо ви маєте час і натхнення допомогти в розвитку пакета, або бажаєте використати його як основу для власних розробок — ми щиро вітаємо і заохочуємо до таких дій!

Встановлення для розробки

# Клонувати репозиторій
git clone https://github.com/KonstZiv/ai-code-reviewer.git
cd ai-code-reviewer

# Встановити залежності (використовуємо uv)
uv sync

# Перевірити
uv run ai-review --help

# Запустити тести
uv run pytest

# Запустити перевірки якості
uv run ruff check .
uv run mypy .

uv

Ми використовуємо uv для керування залежностями.

Встановити: curl -LsSf https://astral.sh/uv/install.sh | sh

Структура проєкту

ai-code-reviewer/
├── src/ai_reviewer/      # Вихідний код
│   ├── core/             # Моделі, конфіг, форматування
│   ├── integrations/     # GitHub, GitLab, Gemini
│   └── utils/            # Утиліти
├── tests/                # Тести
├── docs/                 # Документація
└── examples/             # Приклади CI конфігурацій

👉 Як зробити внесок →


Вимоги

Системні вимоги

Компонент Вимога
Python 3.13+ (для pip install)
Docker 20.10+ (для Docker)
OS Linux, macOS, Windows
RAM 256MB+
Мережа Доступ до generativelanguage.googleapis.com

API ключі

Ключ Обов'язковий Як отримати
Google Gemini API Так Google AI Studio
GitHub PAT Для GitHub Інструкція
GitLab PAT Для GitLab Інструкція

Ліміти Gemini API

Free tier

Google Gemini має безкоштовний tier:

Ліміт Значення
Requests per minute 15 RPM
Tokens per day 1M
Requests per day 1500

Для більшості проєктів цього достатньо.


Наступний крок

👉 Швидкий старт →