Skanowanie kodu i kodQL
W zależności od tego, które narzędzie ma być używane do analizy i sposobu generowania alertów, istnieje kilka różnych opcji konfigurowania skanowania kodu w repozytorium. Oto trzy główne sposoby:
- Użyj domyślnej konfiguracji, aby szybko skonfigurować analizę CodeQL na potrzeby skanowania kodu w repozytorium. Domyślna konfiguracja automatycznie wybiera języki do analizowania, zestawu zapytań do uruchamiania i zdarzeń wyzwalających skanowania. Jeśli wolisz, możesz ręcznie wybrać zestaw zapytań do uruchamiania i języków do analizy. Po włączeniu języka CodeQL funkcja GitHub Actions będzie wykonywać uruchomienia przepływu pracy w celu skanowania kodu. Aby uzyskać więcej informacji, zobacz "Konfigurowanie domyślnej konfiguracji skanowania kodu".
- Użyj zaawansowanej konfiguracji, aby dodać przepływ pracy CodeQL do repozytorium. Spowoduje to wygenerowanie dostosowywalnego pliku przepływu pracy, który używa akcji github/codeql-action do uruchomienia interfejsu wiersza polecenia CodeQL. Aby uzyskać więcej informacji, zobacz "Konfigurowanie zaawansowanej konfiguracji na potrzeby skanowania kodu".
- Uruchom interfejs wiersza polecenia CodeQL bezpośrednio w zewnętrznym systemie ciągłej integracji i przekaż wyniki do usługi GitHub. Aby uzyskać więcej informacji, zapoznaj się z artykułem "Używanie skanowania kodu z istniejącym systemem CI". [2]
Wcześniej dowiedzieliśmy się o rozpoczęciu pracy z domyślną konfiguracją i konfiguracją. Teraz dowiesz się, jak skonfigurować skanowanie kodu przy użyciu konfiguracji zaawansowanej, a także jak przeprowadzić zbiorczą konfigurację przepływu pracy skanowania kodu dla wielu repozytoriów.
Skanowanie kodu za pomocą funkcji GitHub Actions i CodeQL
Aby skonfigurować skanowanie kodu przy użyciu konfiguracji zaawansowanej, wykonaj następujące czynności:
- Przejdź do karty Ustawienia repozytorium.
- W panelu po lewej stronie przejdź do sekcji Zabezpieczenia i analiza kodu, kliknij menu rozwijane konfiguracji i wybierz opcję Zaawansowane. Może być konieczne włączenie usługi GitHub Advanced Security przed włączeniem skanowania kodu.
- Nastąpi przekierowanie do nowej strony z wygenerowanym plikiem przepływu pracy. Ten plik jest domyślnie nazwany
codeql.ymli jest konfigurowalnym plikiem przepływu pracy, który musi zostać zatwierdzony w repozytorium, aby rozpocząć uruchamianie skanowania kodu. - Aby dostosować sposób skanowania kodu w kodzie, edytuj przepływ pracy. Ogólnie rzecz biorąc, można zatwierdzić przepływ pracy analizy CodeQL bez wprowadzania w nim żadnych zmian.
- Użyj przycisku Zatwierdź zmiany... w prawym górnym rogu, a następnie wpisz komunikat zatwierdzenia w wyskakującym oknie.
- Wybierz, czy chcesz zatwierdzić bezpośrednio gałąź domyślną, czy utworzyć nową gałąź i uruchomić żądanie ściągnięcia.
- Kliknij pozycję Zatwierdź zmiany.
W domyślnym przepływie pracy analizy codeQL skanowanie kodu jest skonfigurowane do analizowania kodu za każdym razem, gdy wypchniesz zmianę do gałęzi domyślnej lub dowolnych chronionych gałęzi lub zgłoś żądanie ściągnięcia względem gałęzi domyślnej. W rezultacie skanowanie kodu rozpocznie się teraz.
Wyzwalacze on:pull_request i on:push do skanowania kodu są przydatne w różnych celach.
Zbiorcza konfiguracja skanowania kodu
Skanowanie kodu można skonfigurować w wielu repozytoriach jednocześnie przy użyciu skryptu. Jeśli chcesz użyć skryptu do zgłaszania pull requestów, które dodają przepływ pracy GitHub Actions do wielu repozytoriów, zapoznaj się z repozytorium jhutchings1/Create-ActionsPRs[3] aby zobaczyć przykład przy użyciu PowerShell lub nickliffen/ghas-enablement[4] przy użyciu NodeJS.