Co je kontrola kódu?

Dokončeno

Kontrola kódu používá CodeQL k analýze kódu v úložišti GitHub za účelem zjištění ohrožení zabezpečení a chyb kódování. Kontrola kódu je dostupná pro všechna veřejná úložiště a pro privátní úložiště vlastněná organizacemi, ve kterých je povolené GitHub Advanced Security. Pokud kontrola kódu najde v kódu potenciální ohrožení zabezpečení nebo chybu, GitHub zobrazí upozornění na kartě Zabezpečení úložiště. Jakmile opravíte kód, který výstrahu aktivoval, GitHub upozornění zavře.

Kontrolu kódu můžete použít k vyhledání, třídění a určení priorit oprav stávajících problémů v kódu. Kontrola kódu také brání vývojářům v zavádění nových problémů. Můžete naplánovat kontroly po určité dny a časy nebo aktivovat kontroly, když dojde k určité události v úložišti, jako je například nabízení.

V této lekci se dozvíte o CodeQL, třech možnostech nastavení skenování kódu a o tom, jak do úložiště přidat pracovní postup CodeQL.

O skenování kódu pomocí CodeQL

CodeQL je modul pro analýzu kódu Na GitHubu vyvinutý pro automatizaci kontrol zabezpečení. Kód můžete analyzovat pomocí CodeQL a zobrazit výsledky jako výstrahy kontroly kódu. Existují tři hlavní způsoby nastavení analýzy CodeQL pro kontrolu kódu:

  • Pomocí výchozího nastavení můžete rychle nakonfigurovat analýzu CodeQL pro kontrolu kódu v úložišti. Výchozí nastavení zpracovává výběr jazyků pro analýzu, spouštění sady dotazů a událostí, které aktivují kontrolu, s možností ruční konfigurace jazyků a sad dotazů. Tato možnost nastavení spustí kontrolu kódu jako akci GitHubu.
  • Pomocí rozšířeného nastavení můžete přidat pracovní postup CodeQL přímo do úložiště. Přidání pracovního postupu CodeQL přímo do úložiště vygeneruje přizpůsobitelný soubor pracovního postupu, který pomocí akce github/codeql-action spustí rozhraní příkazového řádku CodeQL jako akci GitHubu.
  • Spusťte rozhraní příkazového řádku CodeQL přímo v externím systému CI a nahrajte výsledky do GitHubu.

CodeQL zachází s kódem jako s daty, což umožňuje najít potenciální ohrožení zabezpečení v kódu s větší jistotou než tradiční statické analyzátory. Vygenerujete databázi CodeQL, která bude představovat základ kódu, a pak spustíte dotazy CodeQL na této databázi, abyste identifikovali problémy v základu kódu. Výsledky dotazu se zobrazují jako upozornění kontroly kódu v GitHubu při použití CodeQL s kontrolou kódu.

CodeQL podporuje kompilované i interpretované jazyky a může najít chyby zabezpečení a chyby v kódu napsaného v následujících podporovaných jazycích:

  • C nebo C++
  • jazyk C#
  • Go
  • Java/Kotlin
  • JavaScript/TypeScript
  • Python
  • Ruby
  • Swift

V další části se dozvíte, jak do úložiště přidat pracovní postup CodeQL. Naučíte se nastavit CodeQL pomocí externích nástrojů v lekci Povolit kontrolu kódu pomocí nástrojů třetích stran .

Povolení CodeQL v úložišti s výchozím nastavením

Pokud máte oprávnění k zápisu do úložiště, můžete pro toto úložiště nastavit nebo nakonfigurovat kontrolu kódu.

Pomocí následujícího postupu nastavte kontrolu kódu pomocí pracovního postupu CodeQL GitHub Actions:

  1. Na GitHub.com přejděte na hlavní stránku úložiště.

  2. Pod názvem úložiště vyberte Zabezpečení.

    Snímek obrazovky záložky Zabezpečení

  3. Vyberte Nastavit kontrolu kódu. Pokud tato možnost není dostupná, požádejte vlastníka organizace nebo správce úložiště, aby povolil GitHub Advanced Security.

    Snímek obrazovky tlačítka pro nastavení kontroly kódu

  4. V rozevíracím seznamu Nastavení vyberte Výchozí.

  5. Zkontrolujte výchozí možnosti. V případě potřeby vyberte tlačítko Upravit v levém dolním rohu nového okna a přizpůsobte tak, jak codeQL běží.

    on:pull_request Triggery on:push jsou výchozí pro kontrolu kódu, které jsou užitečné pro různé účely. Další informace o těchto triggerech najdete v lekci Konfigurace skenování kódu .

  6. Jakmile budete připraveni, vyberte Povolit CodeQL a zapněte detekci kódu.

    Ve výchozím pracovním postupu analýzy CodeQL je kontrola kódu nakonfigurovaná tak, aby analyzovala kód pokaždé, když nasdílíte změnu do všech chráněných větví nebo vytvoříte žádost o přijetí změn proti výchozí větvi. Po vytvoření nabízeného oznámení se kontrola kódu spustí automaticky.

V předchozí části jsme povolili kontrolu kódu pomocí výchozí instalace, která spouští kontroly kódu jako akci GitHubu, aniž by bylo nutné udržovat soubor pracovního postupu. Další možností je Upřesnit nastavení, které vygeneruje výchozí soubor pracovního postupu, který můžete upravit pro pokročilou konfiguraci a další kroky. Probereme použití pokročilého nastavení pro konfiguraci skenování kódu v pozdější lekci.

Spouštění kontroly kódu pomocí GitHub Actions ovlivňuje vaše minuty měsíční fakturace. Pokud chcete používat GitHub Actions nad rámec úložiště nebo minut zahrnutých ve vašem účtu, bude se vám účtovat další využití.

Informace o fakturaci akcí

Kontrola kódu používá GitHub Actions a každé spuštění pracovního postupu kontroly kódu zabírají minuty pro GitHub Actions. Využití GitHub Actions je bezplatné pro veřejná úložiště i pro spouštěče v místním prostředí. U privátních úložišť každý účet GitHubu obdrží určitý počet bezplatných minut a úložiště v závislosti na produktu použitém s účtem. Limity útraty řídí veškeré využití nad rámec zahrnutých částek. Pokud jste zákazníkem s měsíčním vyúčtováním, váš účet má výchozí limit útraty s nulovým americkým dolarem (USD), který brání dodatečnému využití minut nebo úložiště pro privátní úložiště nad rámec částek zahrnutých ve vašem účtu. Pokud platíte účet fakturou, bude mít váš účet neomezený výchozí limit útraty. Počet minut se každý měsíc resetuje, zatímco využití úložiště ne.