# Устранение неполадок графа зависимостей

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

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

## Выполняет ли граф зависимостей поиск только зависимостей в манифестах и файлах блокировки?

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

Граф зависимостей не включает автоматически "свободные" зависимости. "Свободные" зависимости — это отдельные файлы, которые копируются из другого источника и возвращаются в репозиторий напрямую или в архиве (например, ZIP-файле или JAR-файле). На них не ссылаются в манифесте или файле блокировки диспетчера пакетов.

Однако вы можете использовать API отправки зависимостей их для добавления зависимостей в граф зависимостей проекта, даже если они не объявлены в манифесте или файле блокировки, например, зависимости, разрешаемые при создании проекта.
Зависимости, отправленные в проект с помощью API отправки зависимостей показывают, какой детектор использовался для их отправки и когда они были отправлены. Для получения дополнительной информации о API отправки зависимостей, см. [Использование API отправки зависимостей](/ru/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/use-dependency-submission-api).

**Проверка.** Отсутствует ли зависимость для компонента, который не указан в манифесте или файле блокировки репозитория?

## Определяет ли граф зависимостей те зависимости, которые указаны с помощью переменных?

Граф зависимостей анализирует проявления по мере их перемещения в GitHub. Таким образом, граф зависимостей не имеет доступа к среде сборки проекта и поэтому не может разрешать переменные, используемые в манифестах. Если переменные в манифесте используются для указания имени или более распространенной версии зависимости, то эта зависимость не будет автоматически включена в граф зависимостей.

Однако вы можете использовать API отправки зависимостей их для добавления зависимостей в граф зависимостей проекта, даже если они разрешаются только при создании проекта. Дополнительные сведения об этом API отправки зависимостейсм. в разделе [Использование API отправки зависимостей](/ru/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/use-dependency-submission-api).

**Проверка.** Объявлена ли отсутствующая зависимость в манифесте с использованием переменной для указания ее имени или версии?

## Существуют ли ограничения, влияющие на данные графа зависимостей?

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

Ограничения обработки влияют на граф зависимостей, отображаемый внутри GitHub , и также препятствуют Dependabot alerts его созданию.

Манифесты размером более 10 МБ игнорируются и не генерируются Dependabot alerts.

По умолчанию GitHub не обрабатывается более 150 манифестов на репозиторий.
Dependabot не генерирует Dependabot alerts для манифестов за пределами этого предела и Dependabot alerts может вести себя непредсказуемо, если этот предел превышен.

Файлы манифеста, хранящиеся в каталогах с именами, которые обычно используются для поставщиков зависимостей, не будут обрабатываться. Каталог, имя которого соответствует следующим регулярным выражениям, считается поставщиком каталогом зависимостей: <!-- markdownlint-disable MD011 -->

* <code>(3rd|\[Tt]hird)\[-\_]?\[Pp]arty/</code>
* <code>(^|/)vendors?/</code>
* <code>(^|/)\[Ee]xtern(als?)?/</code>
* <code>(^|/)\[Vv]+endor/</code>

  <!-- markdownlint-enable MD011 -->

Примеры:

* third-party/dependencies/dependency1
* vendors/dependency1
* /externals/vendor1/dependency1

## Мои зависимости не выглядят правильно, что я могу сделать?

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

Из вкладки Dependabot репозитория нажмите <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="settings" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg> вверх списка оповещений. Выберите **«Обновить Dependabot alerts** » из выпадающего меню. Это приведет к выполнению фоновой задачи для обработки манифестов репозитория, обнаружения новых или измененных зависимостей и обновления оповещений.

> \[!NOTE] Для обновления граф зависимостей репозитория необходимо иметь разрешение на управление оповещениями системы безопасности. Сведения о настройке этого доступа см. в autoTITLE[](/ru/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts). Чтобы ещё больше снизить риск злоупотреблений, опция **обновления Dependabot alerts** может запускаться только раз в час на каждый репозиторий.

**Нажатие «ОбновитьDependabot alerts**» сканирует только файлы манифеста. Если ваш граф зависимостей также содержит информацию о зависимостях во время сборки, поданную с API отправки зависимостейпомощью , повторное запуск действия или внешнего процесса, который генерирует и отправляет информацию о зависимостях, также инициирует перестройку графа зависимостей репозитория. Дополнительные сведения см. в API отправки зависимостейразделе [Использование API отправки зависимостей](/ru/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/use-dependency-submission-api).

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

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

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

* [Граф зависимостей](/ru/code-security/concepts/supply-chain-security/dependency-graph)
* [Управление параметрами безопасности и анализа для репозитория](/ru/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository)
* [Обнаружение уязвимых зависимостей](/ru/code-security/reference/supply-chain-security/troubleshoot-dependabot/vulnerability-detection)
* [Ошибки dependabot](/ru/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-errors)