Udostępnij za pośrednictwem


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.

  1. Inicjowanie języka CodeQL
  2. Autobuild (lub niestandardowe zadania kompilacji)
  3. 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ż