Czy AI ma prawo odezwać się na PR-ze
Jest 15 czerwca. W kwietniu 2023 recenzowałem sugestie Copilota w buforze: szary tekst, Tab, notes z czterdziestu jeden pozycji. Dziś pytanie jest inne. Czy model ma prawo zostawić komentarz na pull requeście, zanim ja kliknę merge, i czy ten komentarz jest jobem w pipeline, czy nadal jest czatem, który otwieram, kiedy chcę.
Moja teza na czerwiec 2024 jest wąska. “AI review” w moim QA to job albo karta na PR: podsumowanie Copilot Enterprise, bot typu CodeRabbit albo PR-Agent w Actions. To nie jest ghost text z tamtego kwietnia. Model komentuje diff. Człowiek zostaje required reviewer i jedynym merge.
Stan warsztatu. Runner to Playwright 1.44.1 z 23 maja. Copilot Chat w IDE jest GA od 29 grudnia i w kwietniu pisałem o parze przy specu, nie o recenzencie PR. Copilot Workspace mam od 29 kwietnia jako technical preview na waitliście i nie jest recenzentem w CI. Copilot Enterprise jest GA od 27 lutego: 39 dolarów za użytkownika, nie te same 10 dolarów co indywidualny Copilot.
Czego tu nie będzie. Nie będzie zdania, że produkt “Copilot code review” jest GA. Nie będzie Autofix jako GA. Nie będzie Claude 3.5. Będzie syntetyczny workflow i trzy skreślenia na komentarzu do speca.
Co jest na github.com bez bota trzeciego
27 lutego Copilot Enterprise wszedł w ogólną dostępność z rzeczami, których w kwietniu 2023 nie miałem: ustrukturyzowane podsumowanie PR i czat o diffie na github.com. Oba są on-demand. Żadne nie jest required check na main. Indywidualna subskrypcja za 10 dolarów tego nie daje i mieszanie tych dwóch cenników w jedno “Copilot recenzuje PR” jest nieprawdziwe.
Podsumowanie czytam jak spis treści, nie jak review. Czat o diffie zadaję, kiedy sam nie ogarniam trzech plików speca naraz, w tym samym duchu co @workspace w marcu. Nadal ja decyduję, czy asercja coś sprawdza.
Job w Actions: boty, które już są
Pipeline oznacza token, workflow i komentarz pod diffem, nie okno w VS Code.
CodeRabbit z Product Hunt 10 lipca 2023 komentuje PR jako SaaS. CodiumAI PR-Agent jest OSS od komunikatu 24 lipca 2023 i wchodzi jako GitHub Action albo komenda /review i /describe. Oba zostawiają ślad na PR-ze, który widzi cały zespół. Ghost text widzi tylko ten, kto ma otwarty bufor.
Syntetyczny job, bez tokena i bez nazwy orga, wygląda u mnie tak:
# .github/workflows/pr-agent.yml
name: pr-agent
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read
steps:
- uses: Codium-ai/pr-agent@main
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}To jest “w CI” w jedynym sensie, który mnie interesuje: komentarz powstaje bez mojego kliknięcia w sidebar. Nie jest required. Nie merguje.
Autofix to nie review testów
Od 20 marca publiczna beta code scanning autofix podpowiada poprawkę CodeQL na PR (JS, TS, Java, Python). To jest sąsiad listopadowych podstaw bezpieczeństwa, nie recenzent asercji Playwright. Autofix nie jest GA. GA jest datą z przyszłości względem 15 czerwca i nie będę jej używał. Beta nie ocenia, czy expect(page.getByRole('alert')) w ogóle coś sprawdza.
Jak wpinam, żeby nie skłamać gate
AI dostaje prawo do komentarza albo etykiety. Required zostają testy i review człowieka, tak jak w strategii CI i przy równoległym CI.
Trzy skreślenia z syntetycznego komentarza do speca logowania, nie z PR klienta.
Skreślenie pierwsze: “brak testów”. Bot nie zobaczył login.spec.ts, bo diff był w POM. Napisał, że zmiana nie ma pokrycia. Pokrycie było w pliku obok.
Skreślenie drugie: “dodaj waitForTimeout”. Ten sam odruch, który skreślam w IDE od roku. Sleep nie jest recenzją.
Skreślenie trzecie: “wymagaj Copilot review przed merge”. Tego statusu checka nie ma. Wymaganie go na main byłoby kłamstwem o produkcie. Required zostaje człowiek.
GPT-4o od 13 maja wolno jako model API za botem. Nie jest nowością czerwca i nie jest powodem, żeby bot dostał bramkę.
Podsumowanie
Review w CI to nowy kanał. Ownership merge zostaje ludzki. Workspace nie recenzuje PR.
Trzy zdania na rok. Enterprise daje podsumowanie i czat o diffie, on-demand, nie jako required job. PR-Agent i CodeRabbit zostawiają komentarz z Actions; trzy z mojego demo trzeba było skreślić. Autofix jest betą CodeQL, nie recenzją testów i nie GA.
Czego z tego nie wynika. Nie wynika, że nigdy nie włączę required checka na bota. Nie wynika, że wracam tylko do Tab. Nie wynika, że Copilot code review jako produkt już wyszedł.
Warunek: dwa przebiegi bota na tym samym specu nie wymyślają braku testów przy pliku obok i nie proponują sleepa. Do tego czasu komentarz jest sygnałem, merge podpisuję ja.

