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

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

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

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

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

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

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

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

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

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

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

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

Да, граф зависимостей имеет две следующие категории ограничений.

  1. Ограничения обработки

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

    Манифесты размером более 0,5 МБ обрабатываются только для корпоративных учетных записей. Для других учетных записей манифесты размером более 0,5 МБ игнорируются и не будут создавать Dependabot alerts.

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

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

    • (3rd|[Tt]hird)[-_]?[Pp]arty/

    • (^|/)vendors?/

    • (^|/)[Ee]xtern(als?)?/

    • (^|/)[Vv]+endor/

      Примеры:

    • сторонние/зависимости/зависимости1

    • vendors/dependency1

    • /externals/vendor1/dependency1

  2. Ограничения визуализации

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

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

Проверка. Отсутствует ли зависимость в файле манифеста размером более 0,5 МБ или в репозитории с большим количеством манифестов?

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