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.

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

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

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

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

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

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

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

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

Администраторы репозиториев могут включать или отключать граф зависимостей для частных репозиториев.

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

  1. На GitHub.com перейдите на главную страницу репозитория. 1. Нажмите Параметры под именем репозитория. Кнопка параметров репозитория

  2. В разделе "Безопасность" боковой панели щелкните Безопасность и анализ кода.

  3. Прочтите сообщение о предоставлении доступа только для чтения GitHub Enterprise Cloud к данным репозитория для включения графа зависимостей, а затем рядом с пунктом "Граф зависимостей" нажмите кнопку Включить. Кнопка "Включить" для графа зависимостей. Вы можете отключить граф зависимостей в любое время, нажав кнопку Отключить рядом с пунктом "Граф зависимостей" на странице параметров для "Безопасность и анализ кода".

  4. Если функция GitHub Advanced Security не включена, нажмите рядом с ней кнопку Включить. Снимок экрана: функция расширенной безопасности GitHub с выделенной кнопкой "Включить"

Сведения о настройке dependency review action

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

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

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

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

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

Настройка dependency review action

Существует два метода настройки dependency review action:

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

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

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

  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. Укажите нужные параметры.

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

    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-licences`
            # ([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

  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-licences`
      # ([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.