|
@@ -0,0 +1,101 @@
|
|
|
+# 对于大多数项目,此工作流文件无需更改;您只需将其提交到您的代码库即可。
|
|
|
+#
|
|
|
+# 您可能希望修改此文件以覆盖已分析的语言集,或提供自定义查询或构建逻辑。
|
|
|
+#
|
|
|
+# ******** 注意 ********
|
|
|
+# 我们已尝试检测您代码库中的语言。请检查
|
|
|
+# 下面定义的“语言”矩阵,以确认您拥有正确且受支持的 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}}"
|