Žádný duplicitní
kód.
AI agenti málokdy vědí, co už repozitář obsahuje, a tak to napíšou znovu. Precedent Review zkontroluje každý pull request na GitHubu, ukáže na kód, který už existuje, a navrhne konkrétní opravu.
Zdarma pro veřejné repozitáře. Na GitHubu ji najdete jako aplikaci Precedent Review.
| # | Changed in this pull request | Repeats existing code | Size | Kind |
|---|---|---|---|---|
| 1 | src/invoices.rs:8-45 invoices::invoice_total |
src/orders.rs:22-59 orders::total_with_tax (pub, crate e2e_repo) |
227 tokens · 100% | exact copy |
crate::orders::total_with_tax, or extract a shared helperinvoices::invoice_total repeats orders::total_with_tax (src/orders.rs:22-59, pub, crate e2e_repo).crate::orders::total_with_tax, or extract a shared helper.Tři funkce, které dělají totéž
Z parse_date se stane parse_timestamp a z něj to_datetime: tři funkce na jednu práci a tři místa, kde opravovat příští chybu. Code review některé zachytí, zbytek v kódu zůstane.
Co dostane pull request
Jeden souhrnný komentář
Vypíše všechny duplicity v souborech, kterých se pull request dotkl. Při každém pushi se aktualizuje na místě, místo aby se komentáře hromadily.
Komentáře přímo u kódu
Každá duplicita, kterou pull request přidal, dostane jeden řádkový komentář s odkazem na existující kód a návrhem opravy. Jen jednou, ne při každém pushi.
Kontrola, která hlídá merge
Kontrola neprojde, dokud pull request přidává duplicitu. Duplicity, které už v dotčených souborech byly, jsou vypsané zvlášť a kontrolu nikdy neshodí.
Proč Precedent Review
Počítají se jen nové duplicity
Kód, který v repozitáři už byl, nikdy nehlásí jako nový. Každou kopii, kterou pull request přidal, nahlásí jednou.
Rychlý i na velkých repozitářích
Celé django, 19,5 MB Pythonu, zaindexuje od nuly za 1,2 s. Kontrola změněného kódu na 18 MB Rustu trvá 14 ms (p95).
Víc než přesné kopie
Kopie s přejmenovanými proměnnými, téměř shodné kopie s upravenými příkazy i úseky kódu vložené do jiných funkcí. Pozná je i po přejmenování a úpravách.
Řekne, co dělat
Každý nález uvádí soubor, řádky a symbol existujícího kódu, míru shody a další krok: zavolat ho, zpřístupnit a zavolat, přesunout do výchozí metody traitu, nebo vytáhnout společnou funkci.
Méně šumu
Volitelný sémantický filtr vyřadí podobně vypadající boilerplate, který ve skutečnosti nedělá totéž. Záměrnou duplicitu umlčí jeden komentář v kódu.
Deterministický, ne generativní
Stejný kód dostane vždy stejnou odpověď. Precedent Review nálezy nevymýšlí: každý ukazuje na konkrétní existující kód a míru shody.
Změřeno, ne slíbeno
Do 13 open-source repozitářů v Rustu, Pythonu, TypeScriptu a C# – od serde po django a jellyfin – jsme vložili klony každého druhu a jádro precedent je muselo najít.
přesných kopií a kopií s přejmenovanými identifikátory nalezeno ve všech 13 repozitářích
téměř shodných kopií nalezeno, podle repozitáře
falešných nálezů u přesunutých funkcí, nedotčeného kódu a podobného kódu z jiných projektů
zaindexování celého django od nuly, 19,5 MB kódu v Pythonu
Release build na notebooku s Intel i7-10850H. Každé číslo pochází ze souboru s výsledky v repozitáři jádra precedent.
Jak to funguje
-
01
Připojte
Nainstalujte Precedent Review do svého repozitáře na GitHubu.
-
02
Precedent Review pozná váš kód
Zapamatuje si, co repozitář už obsahuje, takže existující kód nikdy nehlásí jako nový.
-
03
Kontroluje každou změnu
Při každém pushi do pull requestu porovná změny s kódem, který už existuje.
-
04
Dostanete opravu, ne jen varování
Každý nález ukáže na existující kód a řekne, jak ho znovu použít. Podobně vypadající boilerplate odfiltruje.
Ceník
Bezplatný plán pro veřejné repozitáře je k dispozici už teď. Placený plán se bude účtovat přes GitHub Marketplace, jakmile tam bude zveřejněný; do té doby kontrolujeme soukromé repozitáře na základě individuální dohody.
Open source
Veřejné repozitáře
- ✓ Kontrola pull requestů s denním limitem
- ✓ Všechny jazyky a druhy klonů
Soukromé
Soukromé repozitáře
- ✓ Kontrola pull requestů v soukromých repozitářích
- ✓ Brzy na GitHub Marketplace, do té doby po dohodě
Enterprise
Self-hosting, GitHub Enterprise Server, individuální podmínky
- ✓ Běh ve vaší infrastruktuře
- ✓ Individuální smlouva a podpora
Časté otázky
Kam putuje můj kód?▾
Jádro precedent samo na síť nevolá: přečte repozitář, který kontroluje, a výsledek zapíše do pull requestu. Jen když si zapnete volitelný sémantický filtr, posílá dvojice úseků kódu u nejvýše hodnocených nálezů na endpoint, který si zvolíte, přes ověřené HTTPS. Hostovaná GitHub App Precedent Review stahuje repozitář jen na dobu jedné kontroly v Google Cloud v EU (Belgie), kód neukládá a žádný model AI ho nevidí. Podrobnosti jsou v zásadách ochrany osobních údajů.
Shodí můj pull request staré duplicity?▾
Ne. Kontrolu shodí jen duplicity, které pull request přidal. Ty, které už v dotčených souborech byly, jsou vypsané zvlášť jako existující.
Jak ponechat záměrnou duplicitu?▾
Na řádek nad ni přidejte // precedent:ignore (Rust, TypeScript, JavaScript, C#) nebo # precedent:ignore (Python, PowerShell).
Které jazyky podporuje?▾
Rust, Python, TypeScript včetně TSX, JavaScript, C# a PowerShell.
Přestaňte psát věci dvakrát
Nainstalujte si Precedent Review zdarma na veřejné repozitáře. Kvůli soukromým repozitářům, týmu nebo provozu ve vaší infrastruktuře nám napište.