AdvancedSecurity-Codeql-Init@1 — zadanie Inicjowanie zaawansowanego zabezpieczeń CodeQL w wersji 1
Inicjuje bazę danych CodeQL w ramach przygotowań do utworzenia.
Musisz mieć usługa GitHub Advanced Security dla usługi Azure DevOps włączona dla skanowanego repozytorium.
Składnia
# Advanced Security Initialize CodeQL v1
# Initializes the CodeQL database in preparation for building.
- task: AdvancedSecurity-Codeql-Init@1
inputs:
#enableAutomaticCodeQLInstall: false # boolean. Enable automatic CodeQL detection and installation. Default: false.
#languages: # 'csharp' | 'cpp' | 'go' | 'java' | 'javascript' | 'python' | 'ruby' | 'swift'. Languages to analyze.
#querysuite: 'Select a query suite...' # 'Select a query suite...' | 'code-scanning' | 'security-extended' | 'security-experimental' | 'security-and-quality'. CodeQL Query Suite to use for analysis. Default: Select a query suite....
#buildtype: 'Manual' # 'Manual' | 'None'. Select build mode (manual vs none). Default: Manual.
# Advanced
#ram: # string. Options to control RAM usage in MB.
#threads: # string. Use this many threads to evaluate queries.
#codeqlpathstoignore: # string. Set a list of paths to exclude in the CodeQL analysis.
#codeqlpathstoinclude: # string. Set a list of additional paths to include in the CodeQL analysis.
#sourcesfolder: # string. Sets the folder that contains the sources to be analyzed.
#loglevel: '_' # '0' | '1' | '2' | '_'. Set the log level for the CodeQL analysis. Default: _.
#configfilepath: # string. Use this to enable custom query analysis in codeql (path must be absolute).
#codeqltoolsdirectory: # string. Set a custom CodeQL tools directory (path must be absolute).
Wejścia
enableAutomaticCodeQLInstall
-
Włączanie automatycznego wykrywania i instalowania koduQL
boolean
. Wartość domyślna: false
.
Wybranie tej opcji spowoduje ustawienie zadania w celu automatycznego sprawdzenia koduQL na agencie. Jeśli kodQL nie jest poprawnie skonfigurowany lub w najnowszej wersji, zadanie automatycznie zainstaluje najnowszą wersję.
języki languages
- do analizowania
string
. Dozwolone wartości: csharp
, cpp
, go
, java
, javascript
, python
, ruby
, swift
.
Język programowania do analizy. Wiele języków można rozdzielić przecinkami.
- task: AdvancedSecurity-Codeql-Init@1
inputs:
languages: 'cpp, java, python'
# This languages value is valid, the Pipelines editor
# doesn't recognize all combinations and only validates
# correctly when a single language is specified
Język można ustawić tutaj w zadaniu lub określić język w zmiennej potoku o nazwie advancedsecurity.codeql.language
. Jeśli oba są ustawione, wartość określona w zadaniu ma pierwszeństwo.
querysuite
-
CodeQL Query Suite do użycia na potrzeby analizy.
string
. Dozwolone wartości: Select a query suite...
, code-scanning
, security-extended
, security-experimental
, security-and-quality
. Wartość domyślna: Select a query suite...
.
Zestaw zapytań, tj. zestaw reguł używany do analizy. Możesz określić wartość w tym miejscu w zadaniu lub określić ją w zmiennej potoku o nazwie advancedsecurity.codeql.querysuite
. Jeśli oba są ustawione, wartość określona w zadaniu ma pierwszeństwo. Wartość domyślna to Select a query suite...
, która wskazuje, że pakiet zapytań musi być określony w zmiennej advancedsecurity.codeql.querysuite
.
buildtype
-
Wybierz tryb kompilacji (ręczny vs brak)
string
. Dozwolone wartości: Manual
, None
. Wartość domyślna: Manual
.
Określ Manual
, jeśli chcesz ręcznie skompilować projekt przed uruchomieniem analizy CodeQL. Określ None
, jeśli chcesz uruchomić analizę CodeQL bez kompilowania projektu.
Aby uzyskać więcej informacji na temat różnych trybów kompilacji, w tym porównania korzyści z poszczególnych trybów kompilacji, zobacz skanowanie kodu CodeQL dla skompilowanych języków. Aby użyć autobuild
, dodaj do potoku zadanie AdvancedSecurity-CodeQL-Autobuild@1. Aby uzyskać więcej informacji, zobacz Dostosowywanie trybu kompilacji w trybie skanowania kodu.
opcje ram
- do kontrolowania użycia pamięci RAM w mb
string
.
Ustaw łączną ilość pamięci RAM, z których może korzystać ewaluator zapytań.
W tym miejscu można określić ram
lub określić ją w zmiennej potoku o nazwie advancedsecurity.codeql.ram
. Jeśli oba są ustawione, wartość określona w zadaniu ma pierwszeństwo.
threads
-
Użyj tych wielu wątków do oceny zapytań
string
.
Możesz przekazać 0, aby użyć jednego wątku na rdzeń na maszynie lub -N pozostawić nieużywane rdzenie N (z wyjątkiem nadal używać co najmniej jednego wątku).
W tym miejscu można określić threads
lub określić ją w zmiennej potoku o nazwie advancedsecurity.codeql.threads
. Jeśli oba są ustawione, wartość określona w zadaniu ma pierwszeństwo.
codeqlpathstoignore
-
Ustaw listę ścieżek do wykluczenia w analizy CodeQL
string
.
Można podać wiele ścieżek rozdzielonych przecinkami. Ścieżki muszą być względem sourcesfolder
, w którym jest uruchomiona funkcja CodeQL, która jest domyślnie zmienna środowiskowa potoku Build.SourcesDirectory
. Aby na przykład zignorować katalog $(Build.SourcesDirectory)/donotscan
, ustaw codeqlpathstoignore: donotscan
, a nie codeqlpathstoignore: $(Build.SourcesDirectory)/donotscan
.
Ważny
Ustawienie codeqlpathstoignore
ma zastosowanie tylko wtedy, gdy uruchamiasz zadania CodeQL w interpretowanym języku (Python, Ruby i JavaScript/TypeScript) lub podczas analizowania skompilowanego języka bez kompilowania kodu (obecnie obsługiwanego dla języków C# i Java).
codeqlpathstoinclude
-
Ustaw listę dodatkowych ścieżek do uwzględnienia w analizy CodeQL
string
.
Można podać wiele ścieżek rozdzielonych przecinkami. Ścieżki muszą być względem sourcesfolder
, w którym jest uruchomiona funkcja CodeQL, która jest domyślnie zmienna środowiskowa potoku Build.SourcesDirectory
. Aby na przykład uwzględnić katalog $(Build.SourcesDirectory)/app
, ustaw codeqlpathstoinclude: app
, a nie codeqlpathstoinclude: $(Build.SourcesDirectory)/app
.
Ważny
Ustawienie codeqlpathstoinclude
ma zastosowanie tylko wtedy, gdy uruchamiasz zadania CodeQL w interpretowanym języku (Python, Ruby i JavaScript/TypeScript) lub podczas analizowania skompilowanego języka bez kompilowania kodu (obecnie obsługiwanego dla języków C# i Java).
sourcesfolder
-
Ustawia folder zawierający źródła do przeanalizowania
string
.
Jeśli ta wartość nie zostanie podana, zostanie użyty domyślny folder źródeł infrastruktury potoku (udostępniany przez zmienną Build.SourcesDirectory
).
loglevel
-
Ustaw poziom dziennika dla analizy CodeQL
string
. Dozwolone wartości: 0
(ostrzeżenie), 1
(pełne), 2
(debugowanie), _
(domyślne (ostrzeżenie)). Wartość domyślna: _
.
Określ poziom rejestrowania.
W tym miejscu można określić loglevel
lub określić ją w zmiennej potoku o nazwie advancedsecurity.codeql.loglevel
. Jeśli oba są ustawione, wartość określona w zadaniu ma pierwszeństwo, chyba że zostanie określona wartość domyślna _
dla loglevel
w zadaniu. Jeśli określono _
, wartość z advancedsecurity.codeql.loglevel
jest używana, jeśli jest dostępna.
configfilepath
-
Użyj tej funkcji, aby włączyć niestandardową analizę zapytań w kodzieql (ścieżka musi być bezwzględna).
string
.
Jeśli ścieżka nie zostanie podana, analiza codeql będzie kontynuowana z zapytaniami domyślnymi.
codeqltoolsdirectory
-
ustaw niestandardowy katalog narzędzi CodeQL (ścieżka musi być bezwzględna)
string
.
Jeśli ścieżka nie zostanie podana, zostanie użyta wartość domyślna $agent_toolsdirectory
.
Opcje sterowania zadaniami
Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.
Zmienne wyjściowe
Żaden.
Uwagi
Musisz mieć usługa GitHub Advanced Security dla usługi Azure DevOps włączona dla skanowanego repozytorium.
Ważny
To zadanie jest obsługiwane tylko w przypadku repozytoriów Git usługi Azure Repos.
Potok musi wywoływać zadania w następującej kolejności.
- Inicjowanie języka CodeQL
- Autobuild (lub niestandardowe zadania kompilacji)
- Wykonywanie analizy koduQL
Zadanie AutoBuild jest opcjonalne i może zostać zastąpione niestandardowymi zadaniami kompilacji. Aby projekt był analizowany, należy uruchomić zadanie autobuild lub niestandardowe zadania kompilacji.
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja, wersja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Żaden |
możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
ograniczenia poleceń | Jakikolwiek |
zmienne ustawiane | Jakikolwiek |
Wersja agenta | Wszystkie obsługiwane wersje agentów. |
Kategoria zadań | Budować |
Zobacz też
- skanowanie kodu w usłudze GitHub Advanced Security