Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

配置依赖项审查

可以使用依赖项评审来捕获漏洞,以避免将其添加到项目中。

关于依赖项评审

依赖项审查帮助您了解依赖项变化以及这些变化在每个拉取请求中的安全影响。 它提供了一个易于理解的依赖项变化可视化效果,多差异显示在拉取请求的“更改的文件”选项卡上。 依赖项审查告知您:

  • 哪些依赖项连同发行日期一起添加、删除或更新。
  • 有多少项目使用这些组件。
  • 这些依赖项的漏洞数据。

有关详细信息,请参阅“关于依赖项审查”和“审查拉取请求中的依赖项更改”。

关于配置依赖项审查

为 your GitHub Enterprise Server instance 启用依赖项关系图并且为组织或存储库启用 Advanced Security 时,依赖项审查可用。 有关详细信息,请参阅“为企业启用 GitHub Advanced Security”。

检查是否已启用依赖项关系图

  1. 在 your GitHub Enterprise Server instance 上,导航到存储库的主页。 1. 在存储库名称下,单击 “设置”。 “存储库设置”按钮

  2. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  3. 在“配置安全性和分析功能”下,检查是否启用了依赖项关系图。

  4. 如果已启用依赖项关系图,请单击“GitHub Advanced Security”旁边的“启用”以启用 Advanced Security,其中包含了依赖项审查。 如果企业没有可用的 Advanced Security 许可证,“启用”按钮会禁用。 “代码安全性和分析”功能的屏幕截图

关于配置 dependency review action

dependency review action 扫描拉取请求中的依赖项更改,如果有任何新的依赖项存在已知漏洞,则会引发错误。 API 终结点支持此操作,该终结点比较两个修订之间的依赖关系,并报告任何差异。

有关操作和 API 终结点的详细信息,请参阅 dependency-review-action 文档和 API 文档中的“依赖项评审”。

可用配置选项如下。

选项必选使用情况
fail-on-severity可选定义严重性级别(lowmoderatehighcritical)的阈值。
对于引入指定严重性级别或更高级别的漏洞的任何拉取请求,该操作都将失败。

配置 dependency review action

可通过两种方法配置 dependency review action:

  • 在工作流文件中内联配置选项。
  • 在工作流文件中引用配置文件。

请注意,所有示例使用操作 (v3) 的短版本号,而不是 semver 版本号(例如,v3.0.8)。 这可确保使用操作的最新次要版本。

使用内联配置来设置 dependency review action

  1. 将新的 YAML 工作流添加到 .github/workflows 文件夹。

    对于 runs-on,默认标签为 self-hosted。 可以将默认标签替换为任何运行器的标签。

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
       runs-on: self-hosted
         steps:
           - name: 'Checkout Repository'
             uses: actions/checkout@v3
           - name: Dependency Review
             uses: actions/dependency-review-action@v3
  2. 指定您的设置。

    此 dependency review action 示例文件说明了如何使用可用的配置选项。

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
      runs-on: self-hosted
        steps:
          - name: 'Checkout Repository'
            uses: actions/checkout@v3
          - name: Dependency Review
            uses: actions/dependency-review-action@v3
            with:
            # Possible values: "critical", "high", "moderate", "low" 
            fail-on-severity: critical
    
            # ([String]). Skip these GitHub Advisory Database IDs during detection (optional)
            # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories  
            allow-ghsas: GHSA-abcd-1234-5679, GHSA-efgh-1234-5679
    

使用配置文件来设置 dependency review action

  1. 将新的 YAML 工作流添加到 .github/workflows 文件夹,并使用 config-file 指定正在使用配置文件。

    对于 runs-on,默认标签为 self-hosted。 可以将默认标签替换为任何运行器的标签。

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
     contents: read
    
    jobs:
      dependency-review:
        runs-on: self-hosted
        steps:
          - name: 'Checkout Repository'
            uses: actions/checkout@v3
          - name: Dependency Review
            uses: actions/dependency-review-action@v3
            with:
             # ([String]). Representing a path to a configuration file local to the repository or in an external repository.
             # Possible values: An absolute path to a local file or an external file.
             config-file: './.github/dependency-review-config.yml'   
             # Syntax for an external file: OWNER/REPOSITORY/FILENAME@BRANCH
             config-file: 'github/octorepo/dependency-review-config.yml@main'
    
             # ([Token]) Use if your configuration file resides in a private external repository.
             # Possible values: Any GitHub token with read access to the private external repository.  
             external-repo-token: 'ghp_123456789abcde'
  2. 在指定路径中创建配置文件。

    此 YAML 示例文件说明了如何使用可用的配置选项。

    YAML
      # Possible values: "critical", "high", "moderate", "low" 
      fail-on-severity: critical
    
       # ([String]). Skip these GitHub Advisory Database IDs during detection (optional)
       # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories  
      allow-ghsas: 
        - GHSA-abcd-1234-5679 
        - GHSA-efgh-1234-5679
    

    有关配置选项的更多详细信息,请参阅 dependency-review-action