Precedent
Labs s.r.o.
← Zpět na hlavní stránku
Precedent Review · hlídač duplicitního kódu

Žá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.

P precedent-review bot commented
🔁 precedent: duplicate-code check
⚠️ 1 duplicate introduced by this pull request
#Changed in this pull requestRepeats existing codeSizeKind
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
How to fix
1. call crate::orders::total_with_tax, or extract a shared helper
src/invoices.rs · line 8
🔁 Duplicate code: exact copy (227 tokens, 100% overlap)
invoices::invoice_total repeats orders::total_with_tax (src/orders.rs:22-59, pub, crate e2e_repo).
Suggestion: call crate::orders::total_with_tax, or extract a shared helper.
Ukázka kontroly pull requestu: souhrnný komentář a řádkový komentář u duplicity. Zobrazený nález je skutečný.

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.

100 %

přesných kopií a kopií s přejmenovanými identifikátory nalezeno ve všech 13 repozitářích

85,7–100 %

téměř shodných kopií nalezeno, podle repozitáře

0

falešných nálezů u přesunutých funkcí, nedotčeného kódu a podobného kódu z jiných projektů

1,2 s

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.

Jazyky: Rust Python TypeScript JavaScript C# PowerShell

Jak to funguje

  1. 01

    Připojte

    Nainstalujte Precedent Review do svého repozitáře na GitHubu.

  2. 02

    Precedent Review pozná váš kód

    Zapamatuje si, co repozitář už obsahuje, takže existující kód nikdy nehlásí jako nový.

  3. 03

    Kontroluje každou změnu

    Při každém pushi do pull requestu porovná změny s kódem, který už existuje.

  4. 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

Zdarma
  • ✓ Kontrola pull requestů s denním limitem
  • ✓ Všechny jazyky a druhy klonů
Nainstalovat

Soukromé

Soukromé repozitáře

8 USD za uživatele / měsíc
  • ✓ Kontrola pull requestů v soukromých repozitářích
  • ✓ Brzy na GitHub Marketplace, do té doby po dohodě
Napište nám

Enterprise

Self-hosting, GitHub Enterprise Server, individuální podmínky

Na míru
  • ✓ Běh ve vaší infrastruktuře
  • ✓ Individuální smlouva a podpora
Napište nám

Č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.