Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Настройка проверки зависимостей

Вы можете использовать проверку зависимостей для перехвата уязвимостей перед их добавлением в проект.

Сведения о проверке зависимостей

Проверка зависимостей помогает разобраться в изменениях зависимостей и понять их влияние на безопасность в каждом запросе на вытягивание. Она обеспечивает понятную визуализацию изменений зависимостей с широкими возможностями различия на вкладке "Измененные файлы" запроса на вытягивание. Функция проверки зависимостей позволяет получить следующую информацию:

  • Добавленные, удаленные и обновленные зависимости, а также даты их выпуска.
  • Количество проектов, в которых используются эти компоненты.
  • Данные об уязвимостях для этих зависимостей.

Дополнительные сведения см. в разделе "Сведения о проверке зависимостей" и "Просмотр изменений зависимостей в запросе на включение внесенных изменений".

Сведения о настройке проверки зависимостей

Проверка зависимостей доступна во всех общедоступных репозиториях во всех продуктах, и ее нельзя отключить. Проверка зависимостей доступна в частных репозиториях, принадлежащих организациям, которые используют облако GitHub Enterprise и имеют лицензию на GitHub Advanced Security. Дополнительные сведения см. в документации по GitHub Enterprise Cloud.

Сведения о настройке Действие проверки зависимостей

Действие проверки зависимостей проверяет запросы на вытягивание на наличие изменений зависимостей и выдает ошибку, если какие-либо новые зависимости имеют известные уязвимости. Для этого действие использует конечную точку API, которая сравнивает зависимости между двумя редакциями и сообщает о любых различиях.

Дополнительные сведения об этом действии и конечной точке API см. в документации по dependency-review-action и разделе Проверка зависимостей в документации по API.

Доступны следующие параметры конфигурации.

ПараметрОбязательноИспользование
fail-on-severityНеобязательноОпределяет пороговое значение для уровня серьезности (low, moderate, high, critical).
Действие завершится сбоем для любых запросов на вытягивание, которые добавляют уязвимости указанного уровня серьезности или выше.

Важно. Параметры allow-licenses и deny-licenses являются взаимоисключающими.

Настройка Действие проверки зависимостей

Существует два метода настройки Действие проверки зависимостей:

  • Встраивание параметров конфигурации в файл рабочего процесса.
  • Ссылка на файл конфигурации в файле рабочего процесса.

Обратите внимание, что во всех примерах для действия (v3) используется короткий номер версии вместо номера выпуска semver (например, v3.0.8). Это гарантирует использование последней дополнительной версии действия.

Использование встроенной конфигурации для настройки Действие проверки зависимостей

  1. Добавьте новый рабочий процесс YAML в папку .github/workflows .

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
       runs-on: ubuntu-latest
         steps:
           - name: 'Checkout Repository'
             uses: actions/checkout@v3
           - name: Dependency Review
             uses: actions/dependency-review-action@v3
  2. Укажите нужные параметры.

    В этом примере файла Действие проверки зависимостей показано, как можно использовать доступные параметры конфигурации.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
      runs-on: ubuntu-latest
        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
    
            # You can only include one of these two options: `allow-licenses` and `deny-licenses`
            # ([String]). Only allow these licenses (optional)
            # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses 
            allow-licenses: GPL-3.0, BSD-3-Clause, MIT
            # ([String]). Block the pull request on these licenses (optional)
            # Possible values: Any  `spdx_id` value(s) from https://docs.github.com/en/rest/licenses 
            deny-licenses: LGPL-2.0, BSD-2-Clause
    
            # ([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
    
            # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional)
            # Possible values: "development", "runtime", "unknown"
            fail-on-scopes: development, runtime
    

Использование файла конфигурации для настройки Действие проверки зависимостей

  1. Добавьте новый рабочий процесс YAML в папку .github/workflows и используйте config-file , чтобы указать, что используется файл конфигурации.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
     contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        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
    
      # You can only include one of these two options: `allow-licenses` and `deny-licenses`
      # ([String]). Only allow these licenses (optional)
      # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses 
      allow-licenses: 
        - GPL-3.0
        - BSD-3-Clause
        - MIT
       # ([String]). Block the pull request on these licenses (optional)
       # Possible values: Any  `spdx_id` value(s) from https://docs.github.com/en/rest/licenses 
      deny-licenses: 
        - LGPL-2.0
        - BSD-2-Clause
    
       # ([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
    
       # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional)
       # Possible values: "development", "runtime", "unknown"
      fail-on-scopes: 
        - development 
        - runtime
    

    Дополнительные сведения о параметрах конфигурации см. в разделе dependency-review-action.