123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- # 对于大多数项目,此工作流文件无需更改;您只需将其提交到您的代码库即可。
- #
- # 您可能希望修改此文件以覆盖已分析的语言集,或提供自定义查询或构建逻辑。
- #
- # ******** 注意 ********
- # 我们已尝试检测您代码库中的语言。请检查
- # 下面定义的“语言”矩阵,以确认您拥有正确且受支持的 CodeQL 语言集。
- #
- name: "CodeQL Advanced"
- on:
- push:
- branches:
- - master
- - main
- pull_request:
- branches: [ "master" ]
- schedule:
- - cron: '32 11 * * 5'
- jobs:
- analyze:
- name: Analyze (${{ matrix.language }})
- # Runner 的大小会影响 CodeQL 分析时间。了解更多信息,请参阅:
- # - https://gh.io/recommended-hardware-resources-for-running-codeql
- # - https://gh.io/supported-runners-and-hardware-resources
- # - https://gh.io/using-larger-runners(仅限 GitHub.com)
- # 考虑使用更大的 Runner 或资源更丰富的机器,以尽可能缩短分析时间。
- runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
- permissions:
- # 所有工作流程都需要
- security-events: write
- # 需要获取内部或私有 CodeQL 包
- packages: read
- # 仅适用于私有存储库中的工作流程
- actions: read
- contents: read
- strategy:
- fail-fast: false
- matrix:
- include:
- - language: actions
- build-mode: none
- - language: go
- build-mode: autobuild
- # CodeQL 支持以下“language”关键字值:'actions'、'c-cpp'、'csharp'、'go'、'java-kotlin'、'javascript-typescript'、'python'、'ruby'、'swift'
- # 使用 `c-cpp` 分析用 C、C++ 或两者编写的代码
- # 使用 `java-kotlin` 分析用 Java、Kotlin 或两者编写的代码
- # 使用 `javascript-typescript` 分析用 JavaScript、TypeScript 或两者编写的代码
- # 要了解更多关于更改分析语言或自定义分析构建模式的信息,
- # 请参阅 https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning。
- # 如果您正在分析编译型语言,您可以修改该语言的“构建模式”来自定义代码库的分析方式,请参阅 https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- # 在运行 `github/codeql-action/init` 操作之前添加所有设置步骤。
- # 这包括安装编译器或运行时(`actions/setup-node`
- # 或其他)等步骤。这通常仅在手动构建时才需要。
- # - name: Setup runtime (example)
- # uses: actions/setup-example@v1
- # 初始化 CodeQL 工具以进行扫描。
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v3
- with:
- languages: ${{ matrix.language }}
- build-mode: ${{ matrix.build-mode }}
- # 如果您希望指定自定义查询,可以在此处或在配置文件中进行。
- # 默认情况下,此处列出的查询将覆盖配置文件中指定的任何查询。
- # 在此处的列表前添加“+”前缀,即可使用这些查询以及配置文件中的查询。
- # 有关 CodeQL 查询包的更多详细信息,请参阅:https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
- # 查询:security-extended、security-and-quality
- # 如果您正在分析的某种语言的分析步骤失败,
- # “我们无法自动构建您的代码”,请修改上面的矩阵
- # 将该语言的构建模式设置为“手动”。然后修改此步骤
- # 以构建您的代码。
- # ℹ️ 使用操作系统 shell 运行的命令行程序。
- # 📚 请参阅 https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- - if: matrix.build-mode == 'manual'
- shell: bash
- run: |
- echo 'If you are using a "manual" build mode for one or more of the' \
- 'languages you are analyzing, replace this with the commands to build' \
- 'your code, for example:'
- echo ' make bootstrap'
- echo ' make release'
- exit 1
- # 如果您正在分析的一种或多种语言使用了“手动”构建模式,请将其替换为构建代码的命令,例如:
- # make bootstrap
- # make release
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3
- with:
- category: "/language:${{matrix.language}}"
|