Встановлення¶
Варіант встановлення залежить від моделі використання та мети.
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
Крок 2: Запустіть review
Docker images
Доступні з двох реєстрів:
ghcr.io/konstziv/ai-code-reviewer:1— GitHub Container Registrykoszivdocker/ai-reviewbot:1— DockerHub
pip / uv¶
Встановлення як Python пакету.
Крок 1: Встановіть
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: Запустіть
Опціональні змінні¶
Для тонкого налаштування доступні додаткові змінні:
| Змінна | 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:
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 |
Для більшості проєктів цього достатньо.