Швидкий старт¶
Запустіть AI Code Reviewer за 5 хвилин на GitHub або GitLab.
Крок 1: Оберіть LLM-провайдера та отримайте API ключ¶
AI Reviewer підтримує декілька LLM-провайдерів. Оберіть один (або використовуйте обидва для fallback):
- Перейдіть на Google AI Studio
- Увійдіть з Google акаунтом
- Натисніть "Get API key" → "Create API key"
- Скопіюйте ключ (він починається з
AIza...)
Безкоштовний рівень
Gemini API має безкоштовний рівень: 15 запитів на хвилину, достатньо для більшості команд з 4-8 розробників.
- Перейдіть на Mistral Console
- Зареєструйтесь або увійдіть
- Перейдіть до API Keys → Create new key
- Скопіюйте ключ (він починається з
sk-...)
Безкоштовний рівень
Mistral пропонує безкоштовний рівень для експериментів. Після реєстрації ви отримуєте безкоштовні API-кредити для випробування всіх моделей. Актуальні ліміти: Mistral Pricing.
Безкоштовний Codestral
Codestral (модель для коду) має власний безкоштовний рівень з окремим endpoint і ключем:
- Перейдіть на codestral.mistral.ai
- Згенеруйте Codestral API ключ
- Встановіть
AI_REVIEWER_MISTRAL_API_URL=https://codestral.mistral.ai - Встановіть
AI_REVIEWER_MISTRAL_MODEL=codestral-latest
Цей ключ працює тільки з codestral-latest на Codestral endpoint.
Отримайте обидва ключі за інструкціями вище. Це дає вам:
- Mistral як основну модель (напр.
mistral-large-latest) - Google Gemini як автоматичний fallback, якщо Mistral недоступний
Це найнадійніша конфігурація для production.
Збережіть ключ
API ключі показуються лише один раз. Збережіть їх у безпечному місці.
Крок 2: Додайте секрети у репозиторій¶
Шлях: Repository → Settings → Secrets and variables → Actions → New repository secret
| Name | Value |
|---|---|
AI_REVIEWER_GOOGLE_API_KEY |
Ваш Gemini ключ (AIza...) |
| Name | Value |
|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Ваш Mistral ключ (sk-...) |
| Name | Value |
|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Ваш Mistral ключ (sk-...) |
AI_REVIEWER_GOOGLE_API_KEY |
Ваш Gemini ключ (AIza...) |
Натисніть "Add secret" для кожного.
Детальна інструкція з скріншотами
- Відкрийте ваш репозиторій на GitHub
- Натисніть Settings (шестерня у верхньому меню)
- У лівому меню знайдіть Secrets and variables → Actions
- Натисніть зелену кнопку New repository secret
- Введіть ім'я та вставте ваш ключ
- Натисніть Add secret
- Повторіть для кожного секрету
Для GitLab також потрібен GitLab токен для публікації коментарів.
Крок 2a: Створіть GitLab токен¶
Шлях: Аватар користувача → Edit profile → Access Tokens
| Поле | Значення |
|---|---|
| Token name | ai-reviewer |
| Expiration date | Оберіть дату (макс. 1 рік) |
| Scopes | api |
Натисніть "Create personal access token" → Скопіюйте токен (показується лише раз!)
Коментарі будуть від вашого імені
Personal Access Token прив'язаний до вашого облікового запису. Всі коментарі ревʼю будуть опубліковані від вашого імені.
Потрібні права Maintainer
Для створення Project Access Token потрібна роль Maintainer або Owner у проєкті.
Шлях: Project → Settings → Access Tokens
| Поле | Значення |
|---|---|
| Token name | ai-reviewer |
| Expiration date | Оберіть дату (макс. 1 рік) |
| Role | Developer |
| Scopes | api |
Натисніть "Create project access token" → Скопіюйте токен (показується лише раз!)
Крок 2b: Додайте змінні в CI/CD¶
Шлях: Project → Settings → CI/CD → Variables
| Key | Value | Flags |
|---|---|---|
AI_REVIEWER_GOOGLE_API_KEY |
Ваш Gemini ключ | |
AI_REVIEWER_GITLAB_TOKEN |
Токен з кроку 2a |
| Key | Value | Flags |
|---|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Ваш Mistral ключ | |
AI_REVIEWER_GITLAB_TOKEN |
Токен з кроку 2a |
| Key | Value | Flags |
|---|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Ваш Mistral ключ | |
AI_REVIEWER_GOOGLE_API_KEY |
Ваш Gemini ключ | |
AI_REVIEWER_GITLAB_TOKEN |
Токен з кроку 2a |
Зніміть «Protected»!
За замовчуванням GitLab позначає нові змінні як Protected. Protected змінні доступні лише в захищених гілках (наприклад, main), але MR pipeline запускається на незахищених source гілках — змінна буде порожньою і ви отримаєте 401 Unauthorized.
CI_JOB_TOKEN не працює
Автоматичний CI_JOB_TOKEN від GitLab не може постити коментарі до Merge Requests.
Ви повинні створити Personal Access Token (або Project Access Token на Premium+).
Крок 3: Додайте AI Review у CI¶
Створіть файл .github/workflows/ai-review.yml:
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ai-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
permissions:
contents: read
pull-requests: write
steps:
- uses: KonstZiv/ai-code-reviewer@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
google_api_key: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ai-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
permissions:
contents: read
pull-requests: write
steps:
- uses: KonstZiv/ai-code-reviewer@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
mistral_api_key: ${{ secrets.AI_REVIEWER_MISTRAL_API_KEY }}
llm_provider: mistral
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ai-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
permissions:
contents: read
pull-requests: write
steps:
- uses: KonstZiv/ai-code-reviewer@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
mistral_api_key: ${{ secrets.AI_REVIEWER_MISTRAL_API_KEY }}
google_api_key: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
llm_provider: mistral
llm_fallback_provider: google
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ai-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
permissions:
contents: read
pull-requests: write
steps:
- uses: KonstZiv/ai-code-reviewer@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
mistral_api_key: ${{ secrets.AI_REVIEWER_MISTRAL_API_KEY }}
llm_provider: mistral
mistral_model: codestral-latest
mistral_api_url: https://codestral.mistral.ai
Ключ Codestral
Використовуйте ключ з codestral.mistral.ai, а не звичайний Mistral API ключ.
Про GITHUB_TOKEN
secrets.GITHUB_TOKEN — це автоматичний токен, який GitHub створює для кожного workflow run. Його не потрібно додавати в secrets вручну — він вже доступний.
Створіть або оновіть .gitlab-ci.yml:
stages:
- review
ai-review:
image: ghcr.io/konstziv/ai-code-reviewer:1
stage: review
script:
- ai-review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
allow_failure: true
CI/CD змінні AI_REVIEWER_GOOGLE_API_KEY та AI_REVIEWER_GITLAB_TOKEN з кроку 2b наслідуються автоматично.
stages:
- review
ai-review:
image: ghcr.io/konstziv/ai-code-reviewer:1
stage: review
variables:
AI_REVIEWER_LLM_PROVIDER: mistral
script:
- ai-review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
allow_failure: true
CI/CD змінні AI_REVIEWER_MISTRAL_API_KEY та AI_REVIEWER_GITLAB_TOKEN з кроку 2b наслідуються автоматично.
stages:
- review
ai-review:
image: ghcr.io/konstziv/ai-code-reviewer:1
stage: review
variables:
AI_REVIEWER_LLM_PROVIDER: mistral
AI_REVIEWER_LLM_FALLBACK_PROVIDER: google
script:
- ai-review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
allow_failure: true
Всі три CI/CD змінні (AI_REVIEWER_MISTRAL_API_KEY, AI_REVIEWER_GOOGLE_API_KEY, AI_REVIEWER_GITLAB_TOKEN) з кроку 2b наслідуються автоматично.
stages:
- review
ai-review:
image: ghcr.io/konstziv/ai-code-reviewer:1
stage: review
variables:
AI_REVIEWER_LLM_PROVIDER: mistral
AI_REVIEWER_MISTRAL_MODEL: codestral-latest
AI_REVIEWER_MISTRAL_API_URL: https://codestral.mistral.ai
script:
- ai-review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
allow_failure: true
CI/CD змінні AI_REVIEWER_MISTRAL_API_KEY (використовуйте ключ Codestral) та AI_REVIEWER_GITLAB_TOKEN з Кроку 2b доступні автоматично.
Крок 4: Перевірте результат¶
Тепер AI Review буде запускатись автоматично при:
| Платформа | Подія |
|---|---|
| GitHub | Створення PR, нові коміти в PR, reopening PR |
| GitLab | Створення MR, нові коміти в MR |
Що ви побачите¶
Після завершення CI job, в PR/MR з'являться:
- Inline коментарі — прив'язані до конкретних рядків коду
- Кнопка "Apply suggestion" — для швидкого застосування виправлень (GitHub)
- Summary коментар — загальний огляд з метриками
Кожен коментар містить:
/
/
Severity badge
- Опис проблеми
- Пропозицію виправлення
- Collapsible секцію "Чому це важливо?"
У підвалі коментаря вказано, яку модель і провайдера було використано:
Model: Google / gemini-2.5-flash | Tokens: 1,234 | Latency: 2.3s | Est. cost: $0.0012
Troubleshooting¶
Review не з'являється?¶
Перевірте чеклист:
- API ключ додано як секрет? (
AI_REVIEWER_GOOGLE_API_KEYабоAI_REVIEWER_MISTRAL_API_KEY) -
llm_providerвстановлено правильно, якщо використовується Mistral? (за замовчуваннямgoogle) -
github_tokenпередано явно? (для GitHub) - Для GitLab:
AI_REVIEWER_GITLAB_TOKENвстановлено як Personal Access Token? - CI job завершився успішно? (перевірте логи)
- Для GitHub: є
permissions: pull-requests: write? - Для fork PRs: секрети недоступні — це очікувана поведінка
Rate limit?¶
- Gemini free tier: 15 запитів на хвилину
- Mistral free tier: актуальні ліміти на Mistral Pricing
Зачекайте хвилину та спробуйте знову, або налаштуйте fallback-провайдера.
Що далі?¶
| Задача | Документ |
|---|---|
| Налаштувати мову відповідей | Конфігурація |
| Розширені налаштування LLM-провайдерів | Конфігурація → LLM |
| Перемикання моделей без зміни коду | GitHub → Конфігурація через Variables |
| Розширені налаштування GitHub | GitHub Guide |
| Розширені налаштування GitLab | GitLab Guide |
| Приклади workflows | Приклади |