AdvancedSecurity-Codeql-Init@1 - 高级安全初始化 CodeQL v1 任务

初始化 CodeQL 数据库,以准备生成。

必须为要扫描的存储库启用 Azure DevOps 的 GitHub 高级安全性

语法

# 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).

输入

enableAutomaticCodeQLInstall - 启用自动 CodeQL 检测和安装
boolean。 默认值:false

选择此选项会将任务设置为在代理上自动检查 CodeQL。 如果未正确配置 CodeQL 或最新版本,则任务将自动安装最新版本。


languages - 语言来分析
string。 允许的值:csharpcppgojavajavascriptpythonrubyswift

要分析的编程语言。 多种语言可以用逗号分隔。

- 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

可以在任务中在此处设置语言,也可以在名为 advancedsecurity.codeql.language的管道变量中指定语言。 如果同时设置了这两个值,则任务中指定的值优先。


querysuite - CodeQL 查询套件用于分析。
string。 允许的值:Select a query suite...code-scanningsecurity-extendedsecurity-experimentalsecurity-and-quality。 默认值:Select a query suite...

用于分析的查询套件,即规则集。 可以在任务中在此处指定值,也可以在名为 advancedsecurity.codeql.querysuite的管道变量中指定该值。 如果同时设置了这两个值,则任务中指定的值优先。 默认值为 Select a query suite...,指示必须在 advancedsecurity.codeql.querysuite 变量中指定查询套件。


buildtype - 选择生成模式(手动与无)
string。 允许的值:ManualNone。 默认值:Manual

如果要在运行 CodeQL 分析之前手动生成项目,请指定 Manual。 如果要在不生成项目的情况下运行 CodeQL 分析,请指定 None

有关不同生成模式的详细信息,包括比较每个生成模式的优点,请参阅 CodeQL 代码扫描编译语言。 若要使用 autobuild,请将 AdvancedSecurity-CodeQL-Autobuild@1 任务添加到管道。 有关详细信息,请参阅 代码扫描生成模式自定义


ram - 用于控制 MB RAM 使用率的选项
string

设置查询计算器应允许使用的 RAM 总数。

可以在任务中在此处指定 ram,也可以在名为 advancedsecurity.codeql.ram的管道变量中指定它。 如果同时设置了这两个值,则任务中指定的值优先。


threads - 使用此多个线程来评估查询
string

可以传递 0 以在计算机上每个核心使用一个线程,或者 -N 使 N 核心未使用(但仍使用至少一个线程除外)。

可以在任务中在此处指定 threads,也可以在名为 advancedsecurity.codeql.threads的管道变量中指定它。 如果同时设置了这两个值,则任务中指定的值优先。


codeqlpathstoignore - 设置代码QL 分析 中要排除的路径列表
string

可以提供用逗号分隔的多个路径。 路径必须相对于运行 CodeQL 的 sourcesfolder,后者默认为 Build.SourcesDirectory 管道环境变量。 例如,若要忽略 $(Build.SourcesDirectory)/donotscan 目录,请设置 codeqlpathstoignore: donotscan 而不是 codeqlpathstoignore: $(Build.SourcesDirectory)/donotscan

重要

仅当在解释语言(Python、Ruby 和 JavaScript/TypeScript)上运行 CodeQL 任务或分析已编译语言而不生成代码(目前支持 C# 和 Java)时,codeqlpathstoignore 设置才适用。


codeqlpathstoinclude - 设置要包含在 CodeQL 分析 的其他路径的列表
string

可以提供用逗号分隔的多个路径。 路径必须相对于运行 CodeQL 的 sourcesfolder,后者默认为 Build.SourcesDirectory 管道环境变量。 例如,若要包含 $(Build.SourcesDirectory)/app 目录,请设置 codeqlpathstoinclude: app 而不是 codeqlpathstoinclude: $(Build.SourcesDirectory)/app

重要

仅当在解释语言(Python、Ruby 和 JavaScript/TypeScript)上运行 CodeQL 任务或分析已编译语言而不生成代码(目前支持 C# 和 Java)时,codeqlpathstoinclude 设置才适用。


sourcesfolder - 设置包含要分析的源的文件夹
string

如果未提供此值,则使用管道基础结构的默认源文件夹(由 Build.SourcesDirectory 变量提供)。


loglevel - 设置 CodeQL 分析 的日志级别
string。 允许的值:0(警告)、1(详细)、2(调试)、_(默认值))。 默认值:_

指定日志记录级别。

可以在任务中在此处指定 loglevel,也可以在名为 advancedsecurity.codeql.loglevel的管道变量中指定它。 如果两者都已设置,则任务中指定的值优先,除非指定任务中 _ 的默认值 loglevel。 如果指定了 _,则使用 advancedsecurity.codeql.loglevel 中的值(如果可用)。


configfilepath - 使用它在 codeql 中启用自定义查询分析(路径必须是绝对路径)。
string

如果未提供路径,则 codeql 分析将继续执行默认查询。


codeqltoolsdirectory - 设置自定义 CodeQL 工具目录(路径必须为绝对路径)
string

如果未提供路径,将使用 $agent_toolsdirectory 的默认值。


任务控制选项

除任务输入之外,所有任务都具有控制选项。 有关详细信息,请参阅 控件选项和常见任务属性

输出变量

没有。

言论

必须为要扫描的存储库启用 Azure DevOps 的 GitHub 高级安全性

重要

Azure Repos Git 存储库仅支持此任务。

管道必须按以下顺序调用任务。

  1. 初始化 CodeQL
  2. 自动生成(或自定义生成任务)
  3. 执行 CodeQL 分析

AutoBuild 任务是可选的,可以替换为自定义生成任务。 必须运行 AutoBuild 或自定义生成任务,才能分析项目。

要求

要求 描述
管道类型 YAML,经典版本,经典版本
运行时间 代理,DeploymentGroup
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 所有支持的代理版本。
任务类别

另请参阅

  • 针对 GitHub 高级安全性 代码扫描