Brzi početak¶
Pokrenite AI Code Reviewer za 5 minuta na GitHub-u ili GitLab-u.
Korak 1: Izaberite LLM provajdera i preuzmite API ključ¶
AI Reviewer podržava više LLM provajdera. Izaberite jednog (ili koristite oba za fallback):
- Idite na Google AI Studio
- Prijavite se sa Google nalogom
- Kliknite "Get API key" → "Create API key"
- Kopirajte ključ (počinje sa
AIza...)
Besplatni nivo
Gemini API ima besplatni nivo: 15 zahtjeva po minuti, dovoljno za većinu timova od 4-8 programera.
- Idite na Mistral Console
- Registrujte se ili se prijavite
- Idite na API Keys → Create new key
- Kopirajte ključ (počinje sa
sk-...)
Besplatni nivo
Mistral nudi besplatni nivo za eksperimentisanje. Nakon registracije, dobijate besplatne API kredite za isprobavanje svih modela. Provjerite Mistral Pricing za aktuelna ograničenja.
Besplatni Codestral
Codestral (model specijalizovan za kod) ima vlastiti besplatni nivo sa odvojenim endpoint-om i ključem:
- Idite na codestral.mistral.ai
- Generišite Codestral API ključ
- Postavite
AI_REVIEWER_MISTRAL_API_URL=https://codestral.mistral.ai - Postavite
AI_REVIEWER_MISTRAL_MODEL=codestral-latest
Ovaj ključ radi samo sa codestral-latest na Codestral endpoint-u.
Preuzmite oba ključa koristeći gornja uputstva. Ovo vam daje:
- Mistral kao primarni model (npr.
mistral-large-latest) - Google Gemini kao automatski fallback ako Mistral nije dostupan
Ovo je najpouzdanija konfiguracija za produkcijsku upotrebu.
Sačuvajte ključ
API ključevi se prikazuju samo jednom. Sačuvajte ih na bezbjednom mjestu.
Korak 2: Dodajte tajne u repozitorijum¶
Putanja: Repository → Settings → Secrets and variables → Actions → New repository secret
| Name | Value |
|---|---|
AI_REVIEWER_GOOGLE_API_KEY |
Vaš Gemini ključ (AIza...) |
| Name | Value |
|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Vaš Mistral ključ (sk-...) |
| Name | Value |
|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Vaš Mistral ključ (sk-...) |
AI_REVIEWER_GOOGLE_API_KEY |
Vaš Gemini ključ (AIza...) |
Kliknite "Add secret" za svaki.
Detaljna uputstva sa snimcima ekrana
- Otvorite vaš repozitorijum na GitHub-u
- Kliknite Settings (zupčanik u gornjem meniju)
- U lijevom meniju pronađite Secrets and variables → Actions
- Kliknite zeleno dugme New repository secret
- Unesite ime i zalijepite ključ
- Kliknite Add secret
- Ponovite za svaku tajnu
Za GitLab trebate kreirati GitLab token za postavljanje komentara.
Korak 2a: Kreirajte GitLab token¶
Putanja: Korisnički avatar → Edit profile → Access Tokens
| Polje | Vrijednost |
|---|---|
| Token name | ai-reviewer |
| Expiration date | Izaberite datum (maks. 1 godina) |
| Scopes | api |
Kliknite "Create personal access token" → Kopirajte token (prikazuje se samo jednom!)
Komentari će se pojavljivati pod vašim korisničkim imenom
Personal Access Token je vezan za vaš nalog. Svi komentari revizije biće objavljeni u vaše ime.
Potrebna Maintainer prava
Za kreiranje Project Access Token-a potrebna je uloga Maintainer ili Owner u projektu.
Putanja: Project → Settings → Access Tokens
| Polje | Vrijednost |
|---|---|
| Token name | ai-reviewer |
| Expiration date | Izaberite datum (maks. 1 godina) |
| Role | Developer |
| Scopes | api |
Kliknite "Create project access token" → Kopirajte token (prikazuje se samo jednom!)
Korak 2b: Dodajte varijable u CI/CD¶
Putanja: Project → Settings → CI/CD → Variables
| Key | Value | Flags |
|---|---|---|
AI_REVIEWER_GOOGLE_API_KEY |
Vaš Gemini ključ | |
AI_REVIEWER_GITLAB_TOKEN |
Token iz koraka 2a |
| Key | Value | Flags |
|---|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Vaš Mistral ključ | |
AI_REVIEWER_GITLAB_TOKEN |
Token iz koraka 2a |
| Key | Value | Flags |
|---|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Vaš Mistral ključ | |
AI_REVIEWER_GOOGLE_API_KEY |
Vaš Gemini ključ | |
AI_REVIEWER_GITLAB_TOKEN |
Token iz koraka 2a |
Odznačite «Protected»!
Podrazumijevano, GitLab označava nove varijable kao Protected. Protected varijable su dostupne samo u zaštićenim granama (npr. main), ali MR pipeline-i se pokreću na nezaštićenim izvornim granama — varijabla će biti prazna i dobićete 401 Unauthorized.
CI_JOB_TOKEN ne radi
GitLab-ov automatski CI_JOB_TOKEN ne može postavljati komentare na Merge Request-e.
Morate kreirati Personal Access Token (ili Project Access Token na Premium+).
Korak 3: Dodajte AI Review u CI¶
Kreirajte fajl .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 ključ
Koristite ključ sa codestral.mistral.ai, ne obični Mistral API ključ.
O GITHUB_TOKEN
secrets.GITHUB_TOKEN je automatski token koji GitHub kreira za svako pokretanje workflow-a. Ne treba ga dodavati u tajne ručno — već je dostupan.
Kreirajte ili ažurirajte .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 varijable AI_REVIEWER_GOOGLE_API_KEY i AI_REVIEWER_GITLAB_TOKEN iz Koraka 2b se nasljeđuju automatski.
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 varijable AI_REVIEWER_MISTRAL_API_KEY i AI_REVIEWER_GITLAB_TOKEN iz Koraka 2b se nasljeđuju automatski.
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
Sve tri CI/CD varijable (AI_REVIEWER_MISTRAL_API_KEY, AI_REVIEWER_GOOGLE_API_KEY, AI_REVIEWER_GITLAB_TOKEN) iz Koraka 2b se nasljeđuju automatski.
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 varijable AI_REVIEWER_MISTRAL_API_KEY (koristite Codestral ključ) i AI_REVIEWER_GITLAB_TOKEN iz Koraka 2b su automatski dostupne.
Korak 4: Provjerite rezultat¶
Sada će se AI Review pokretati automatski pri:
| Platforma | Događaj |
|---|---|
| GitHub | Kreiranje PR-a, novi komiti u PR-u, ponovno otvaranje PR-a |
| GitLab | Kreiranje MR-a, novi komiti u MR-u |
Šta ćete vidjeti¶
Nakon završetka CI job-a, u PR/MR će se pojaviti:
- Inline komentari — povezani sa specifičnim linijama koda
- Dugme "Apply suggestion" — za brzu primjenu ispravki (GitHub)
- Summary komentar — opšti pregled sa metrikama
Svaki komentar sadrži:
/
/
Oznaku ozbiljnosti
- Opis problema
- Prijedlog ispravke
- Sklopivi odjeljak "Zašto je ovo važno?"
Footer prikazuje koji model i provajder je korišćen:
Model: Google / gemini-2.5-flash | Tokens: 1,234 | Latency: 2.3s | Est. cost: $0.0012
Rješavanje problema¶
Revizija se ne pojavljuje?¶
Provjerite listu:
- Da li je API ključ dodat kao tajna? (
AI_REVIEWER_GOOGLE_API_KEYiliAI_REVIEWER_MISTRAL_API_KEY) - Da li je
llm_providerispravno podešen ako koristite Mistral? (podrazumijevano jegoogle) -
github_tokeneksplicitno proslijeđen? (za GitHub) - Za GitLab: da li je
AI_REVIEWER_GITLAB_TOKENpodešen na Personal Access Token? - CI job završen uspješno? (provjerite logove)
- Za GitHub: ima li
permissions: pull-requests: write? - Za fork PR-ove: tajne nijesu dostupne — ovo je očekivano ponašanje
Rate limit?¶
- Gemini besplatni nivo: 15 zahtjeva po minuti
- Mistral besplatni nivo: provjerite Mistral Pricing za aktuelna ograničenja
Sačekajte minut i pokušajte ponovo, ili konfigurišite fallback provajder.
Šta dalje?¶
| Zadatak | Dokument |
|---|---|
| Konfigurišite jezik odgovora | Konfiguracija |
| Napredna podešavanja LLM provajdera | Konfiguracija → LLM |
| Prebacivanje modela bez promjene koda | GitHub → Konfiguracija putem Variables |
| Napredna podešavanja GitHub | GitHub vodič |
| Napredna podešavanja GitLab | GitLab vodič |
| Primjeri workflow-a | Primjeri |