# Настройка конфигурации действия проверки зависимостей

Узнайте, как добавить базовую настройку в конфигурацию действия проверки зависимостей.

## Introduction

Он Действие проверки зависимостей сканирует ваши pull requests на предмет изменений зависимостей и выдает ошибку, если у новых зависимостей есть известные уязвимости. После установки, если выполнение рабочего процесса помечается как обязательное, запросы на вытягивание, вводящие известные уязвимые пакеты, будут заблокированы для объединения.

В этом руководстве показано, как добавить три очень распространенные настройки: сбой сборки на основе уровня серьезности уязвимостей, лицензии зависимостей и области.

### Необходимые условия

В этом руководстве предполагается, что:

* Граф зависимостей включен для репозитория. Дополнительные сведения см. в разделе [Включение графа зависимостей](/ru/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/enable-dependency-graph#enabling-the-dependency-graph-for-a-repository).
* GitHub Actions включена для репозитория. Дополнительные сведения см. в разделе [Управление настройками GitHub Actions для репозитория](/ru/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository).

## Шаг 1. Добавление действия проверки зависимостей

На этом шаге мы добавим рабочий процесс проверки зависимостей в репозиторий.

1. На GitHubперейдите на главную страницу репозитория.
2. Под именем репозитория щелкните **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Actions**.

   ![Снимок экрана: вкладки для репозитория github/docs. Вкладка "Действия" выделена оранжевым контуром.](/assets/images/help/repository/actions-tab-global-nav-update.png)
3. В разделе «Начать с GitHub Actions» найдите категорию «Безопасность», затем нажмите **«Просмотреть всё**».
4. Найдите "Проверка зависимостей", а затем нажмите кнопку **"Настроить**". Кроме того, выполните поиск по запросу "Проверка зависимостей" с помощью строки поиска.
5. Это откроет файл рабочего процесса проверки GitHub Actions зависимости. `dependency-review.yml` Он должен содержать следующее:

   ```yaml copy
   name: 'Dependency review'
   on:
     pull_request:
       branches: [ "main" ]

   permissions:
     contents: read

   jobs:
     dependency-review:
       runs-on: ubuntu-latest
       steps:
         - name: 'Checkout repository'
           uses: actions/checkout@v6
         - name: 'Dependency Review'
           uses: actions/dependency-review-action@v4
   ```

## Шаг 2. Изменение серьезности

Вы можете заблокировать код, содержащий уязвимые зависимости, когда-либо слияться, установив Действие проверки зависимостей требуемое значение. Однако следует отметить, что блокировка уязвимостей с низким риском может оказаться слишком ограничивающей в некоторых обстоятельствах. На этом шаге мы изменим серьезность уязвимости, которая приведет к сбою сборки с параметром `fail-on-severity` .

1. `fail-on-severity` Добавьте параметр в конец `dependency-review.yml` файла:

   ```yaml copy
         - name: 'Dependency Review'
           uses: actions/dependency-review-action@v4
           with:
             fail-on-severity: moderate
   ```

## Шаг 3. Добавление лицензий для блокировки

Уязвимости не являются единственной причиной, по которой может потребоваться заблокировать зависимость. Если у вашей организации есть ограничения на то, какие лицензии можно использовать, можно использовать проверку зависимостей для применения этих политик с `deny-licenses` помощью параметра. На этом шаге мы добавим настройку, которая будет прерывать сборку, если запрос на вытягивание представляет зависимость, содержащую лицензию LGPL-2.0 или BSD-2-Clause.

1. `deny-licenses` Добавьте параметр в конец `dependency-review.yml` файла:

   ```yaml copy
         - name: 'Dependency Review'
           uses: actions/dependency-review-action@v4
           with:
             fail-on-severity: moderate
             deny-licenses: LGPL-2.0, BSD-2-Clause
   ```

## Шаг 4. Добавление областей

Наконец, мы будем использовать `fail-on-scopes` этот параметр, чтобы предотвратить слияние уязвимых зависимостей с определенными средами развертывания, в этом случае среда разработки.

1. `fail-on-scopes` Добавьте параметр в конец `dependency-review.yml` файла:

   ```yaml copy
         - name: 'Dependency Review'
           uses: actions/dependency-review-action@v4
           with:
             fail-on-severity: moderate
             deny-licenses: LGPL-2.0, BSD-2-Clause
             fail-on-scopes: development
   ```

## Шаг 5. Проверка конфигурации

Теперь `dependency-review.yml` файл должен выглядеть следующим образом:

```yaml copy

name: 'Dependency Review'
on: [pull_request]

permissions:
  contents: read

jobs:
  dependency-review:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout Repository'
        uses: actions/checkout@v6
      - name: Dependency Review
        uses: actions/dependency-review-action@v4
        with:
          fail-on-severity: moderate
          deny-licenses: LGPL-2.0, BSD-2-Clause
          fail-on-scopes: development
```

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

Дополнительные сведения обо всех возможных параметрах настройки см [. в документации по действию проверки зависимостей в README](https://github.com/actions/dependency-review-action/blob/main/README.md#configuration) .

## Лучшие практики

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

* Выберите списки блокировок по спискам разрешений. Более удобно компилировать список "действительно плохих" зависимостей, которые вы хотите заблокировать, чем создать включающий список всех библиотек, которые вы хотите разрешить.

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

* Выберите `fail-on-severity`. Сбой на основе серьезности уязвимости — это хороший способ сбалансировать потребность в безопасности с необходимостью создания низкой нагрузки для разработчиков.

## Дополнительные материалы

* [Настройка действия проверки зависимостей](/ru/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action)
* [Применение проверки зависимостей в организации](/ru/code-security/how-tos/secure-at-scale/configure-organization-security/configure-specific-tools/enforce-dependency-review)