Skip to main content

Ошибки dependabot

          Dependabot Автоматически поддерживает ваши зависимости, поддерживая ваш код в безопасности и актуальности. Этот справочник помогает вам диагностировать и решать проблемы, чтобы автоматические обновления могли продолжаться.

Если Dependabot при обновлении зависимостей возникают ошибки, вы можете использовать эту ссылку для диагностики и исправления распространённых проблем.

Как просмотреть ошибки

Ошибки обновления безопасности

Когда Dependabot блокируется создание pull request для исправления Dependabot оповещения, он публикует сообщение об ошибке на оповещении. В Dependabot alerts просмотре отображается список оповещений, которые ещё не были разрешены. Чтобы получить доступ к просмотру оповещений, нажмите Dependabot alerts на Security вкладку репозитория. Если был создан запрос на включение внесенных изменений, который исправит уязвимую зависимость, оповещение содержит ссылку на этот запрос.

Снимок экрана: представление Dependabot alerts . Справа от одного оповещения ссылка на запрос на вытягивание под названием "#353", описывается оранжевым цветом.

Уведомление может не иметь ссылки на pull request по нескольким причинам:

  1.        Dependabot security updates не включены для репозитория.
    
  2. оповещение относится к косвенной или транзитивной зависимости, которая явно не определена в файле блокировки;
  3. Ошибка, заблокировавшая Dependabot создание pull-запроса.

Чтобы просмотреть детали об ошибке, нажмите на уведомление.

Ошибки обновления версий

Когда Dependabot блокируется создание pull-запроса для обновления зависимости в экосистеме, вы можете просмотреть список журналов заданий, чтобы узнать больше об ошибке.

Список журналов заданий доступен из граф зависимостей репозитория. В граф зависимостей щелкните вкладку Dependabot, а затем справа от файла затронутого манифеста щелкните "Последние задания обновления".

Чтобы просмотреть полные файлы журнала по конкретной работе, справа от интересующей вас записи нажмите « Просмотр журналов».

Снимок экрана: записи журнала заданий Dependabot для файла манифеста. Кнопка с именем "Просмотр журналов", выделена в темно-оранжевый контур.

Дополнительные сведения см. в разделе Просмотр журналов заданий Dependabot.

Ошибки разрешения зависимостей

Нельзя обновить DEPENDENCY до неуязвимой версии

          **Относится к:** Только обновления безопасности

          **Сообщение об ошибке:**`Dependabot cannot update DEPENDENCY to a non-vulnerable version`

          Dependabot невозможно создать pull request для обновления уязвимой зависимости до защищённой версии без нарушения других зависимостей в графе зависимостей этого репозитория.

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

          **Разрешение:** Например, будьте в курсе последних выпущенных версий, включив обновления версий. Это повышает вероятность того, что уязвимость в одной зависимости может быть устранена простым обновлением, которое не нарушит схему зависимостей. См [. раздел AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates).

Обновляет зависимости без оповещения

          **Относится к:** Только обновления безопасности

          **Сообщение об ошибке:**`Dependabot tries to update dependencies without an alert`

          Dependabot Обновляет явно определённые транзитивные зависимости, уязвимые для всех экосистем. Для NPM Dependabot возникает pull request, который также обновляет зависимость родителя, если это единственный способ исправить транзитивную зависимость.

Например, проект может иметь зависимость от A версии ~2.0.0, которая имеет транзитивную зависимость от B версии ~1.0.0, разрешенной в 1.0.1.

my project
|
--> A (2.0.0) [~2.0.0]
       |
       --> B (1.0.1) [~1.0.0]

Если уязвимость безопасности выйдет для B версий <2.0.0 и доступен 2.0.0Dependabot патч, то я попытаюсь обновитьсяB, но обнаружим, что это невозможно из-за A ограничений, позволяющих использовать только менее уязвимые версии. Чтобы исправить уязвимость, Dependabot буду искать обновления зависимостиA, которые позволяют использовать исправленную версию.B

          Dependabot Автоматически генерирует pull-запрос, который улучшает как заблокированные родительские, так и дочерние транзитивные зависимости.

Нельзя закрыть запрос на повторение, которое уже было применено

          **Сообщение об ошибке:**`Dependabot fails to close a open pull request for an update that has already been applied on the default branch`

          Dependabot закроет pull запросы на обновления зависимостей, как только обнаружит, что эти обновления закреплены в стандартной ветке. Однако в редких случаях запрос на вытягивание может оставаться открытым.

          **Разрешение:** Если вы заметили, что вручную зафиксировали обновление зависимости, и pull-запрос для этого же обновления всё ещё открыт, вы можете использовать одну из следующих команд в комментарии к pull-запросу:

* @dependabot recreate, или * @dependabot rebase.

Любой из комментариев срабатывает Dependabot , чтобы проверить, нельзя ли апгрейдить зависимость или уязвима. Если Dependabot обнаружит, что pull request больше не нужен, он закроется в данном конкретном случае.

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

Не могу обновиться до нужной версии, так как уже открыт pull request на последнюю версию

          **Относится к:** Только обновления безопасности

          **Сообщение об ошибке:**`Dependabot cannot update to the required version as there is already an open pull request for the latest version`

          Dependabot не создаёт pull request для обновления уязвимой зависимости до защищённой версии, потому что уже существует открытый pull request для обновления этой зависимости. Эта ошибка возникает при обнаружении уязвимости в одной зависимости, когда уже существует открытый запрос на включение внесенных изменений для обновления этой зависимости до последней версии.

          **Разрешение:** Вы можете просмотреть открытый pull request и объединить его, как только убедитесь, что изменение безопасно, или закрыть этот pull request и запустить новый pull request на обновление безопасности. См. [Запуск Dependabot pull request вручную](#triggering-a-dependabot-pull-request-manually).

Обновление безопасности не требуется

          **Относится к:** Только обновления безопасности

          **Сообщение об ошибке:**`No security update is needed as DEPENDENCY is no longer vulnerable`

          Dependabot не могу закрыть pull request для обновления зависимости, которая не является или больше не является уязвимой. Вы можете увидеть эту ошибку, когда данные графа зависимостей устарели, или когда граф зависимостей не Dependabot согласен, уязвима ли конкретная версия зависимости.

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

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

Если вы сможете подтвердить, что версия с зависимостями больше не уязвима, можно закрыть Dependabot pull request.

Ошибки pull request-запросов

Достигнут лимит по запросу на вытягивание

          **Сообщение об ошибке:**`Dependabot cannot open any more pull requests`

Существует ограничение на количество открытых pull-запросов Dependabot . По достижении этого лимита новые запросы на включение внесенных изменений не открываются и возникает эта ошибка.

          **Ограничения:**
  • Pull request-запросы на обновления безопасности: 10
  • Pull request-запросы на обновление версий: 5 (можно настраивать с open-pull-requests-limitпомощью )

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

          **Разрешение:** Объедините или закройте некоторые из существующих pull-запросов и запускайте новый pull request вручную. см. [Запуск Dependabot pull request вручную](#triggering-a-dependabot-pull-request-manually).

Тайм-аут и ошибки в производительности

Обновление истекло

          **Сообщение об ошибке:**`Dependabot timed out during its update`

          Dependabot Это занимало больше времени, чем было разрешено максимально, чтобы оценить обновление и подготовить pull request. Эта ошибка обычно встречается только для больших репозиториев с множеством файлов манифестов, например npm или проектов yarn monorepo с сотнями файлов _package.json_. Обновления экосистемы Composer также требуют больше времени для оценки и срок ожидания для них может истекать.

          **Решение для обновлений версий:** Укажите наиболее важные зависимости для обновления с помощью `allow` параметра или, альтернативно, используйте `ignore` этот параметр для исключения некоторых зависимостей из обновлений. Обновление конфигурации может позволить Dependabot пересмотреть обновление версии и сгенерировать pull-запрос в доступное время.

          **Решение для обновлений безопасности:** Уменьшите вероятность тайм-аутов, поддерживая зависимости в актуальном состоянии, например, включая обновления версий. Дополнительные сведения см. в разделе [AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates).

Ошибки группировки

Не удалось сгруппировать зависимости (обновления версий)

          **Относится к:** Только обновления версий

          **Сообщение об ошибке:**`Dependabot fails to group a set of dependencies into a single pull request for Dependabot version updates`

Параметры groups конфигурации в dependabot.yml файле могут применяться к обновлениям версий и обновлениям системы безопасности. applies-to Используйте ключ, чтобы указать, где применяются (обновления версий или обновления системы безопасности) набор правил группировки.

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

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

          **Общая причина — пустые группы:** Возможно, вы непреднамеренно создали пустые группы. Это происходит, например, при установке `dependency-type` ключа `allow` для общего задания.
YAML
allow:
  dependency-type: production
  # this restricts the entire job to production dependencies
  groups:
      development-dependencies:
        dependency-type: "development"
        # this group will always be empty

В этом примере Dependabot будет:

  1. Просмотрите список зависимостей и ограничьте задание только зависимостями, используемыми production только.
  2. Попробуйте создать группу, которая development-dependencies является подмножеством этого сокращенного списка.
  3. Убедитесь, что development-dependencies группа пуста, так как все development зависимости были удалены на шаге 1.
  4.        **Отдельно обновите** все зависимости, которые не находятся в группе. Поскольку группа зависимостей в продакшене пуста, Dependabot группа игнорируется и создаёт отдельный pull request для каждой зависимости.
    
           **Разрешение:** Убедитесь, что настройки конфигурации не взаимно отменяются, и обновляйте их соответствующим образом в вашем конфигурационном файле. Чтобы отладить проблему, посмотрите логи. Для получения информации о доступе к журналам манифеста см. [раздел «Как просмотреть ошибки](#how-to-view-errors)».
    

Для получения дополнительной информации о том, как настроить группы для Dependabot version updates, см. Справочник по параметрам зависимостей.

Не удалось сгруппировать зависимости (обновления безопасности)

          **Относится к:** Только обновления безопасности

          **Сообщение об ошибке:**`Dependabot fails to group a set of dependencies into a single pull request for Dependabot security updates`

Параметры groups конфигурации в dependabot.yml файле могут применяться к обновлениям версий и обновлениям системы безопасности. applies-to Используйте ключ, чтобы указать, где применяются (обновления версий или обновления системы безопасности) набор правил группировки. Проверьте, настроена ли группирование для применения к обновлениям системы безопасности. applies-to Если ключ отсутствует в наборе правил группировки в конфигурации, все правила группы по умолчанию применяются только к обновлениям версий.

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

          **Рекомендации по группированию обновлений безопасности:**

* DependabotБудут группировать зависимости из одной экосистемы пакетов, расположенные в разных каталогах, когда правила группировки задаются для конфигураций, использующих этот directories ключ. * Dependabot Будут применяться другие релевантные опции настройки из dependabot.yml файла для pull запросов на групповые обновления безопасности. Правила групп, настроенные dependabot.yml в файле, переопределяют параметры пользовательского интерфейса для включения или отключения сгруппированных обновлений безопасности на уровне организации или репозитория. * Dependabot не будет группировать зависимости из разных экосистем пакетов вместе. * Dependabot Не буду группировать обновления безопасности с обновлениями версий.

Дополнительные сведения см. в разделе [AUTOTITLE и Сведения об обновлениях для системы безопасности Dependabot](/code-security/dependabot/dependabot-security-updates/customizing-dependabot-security-prs).

Не удалось обновить зависимость в групповом pull request

          **Сообщение об ошибке:**`Dependabot fails to update one of the dependencies in a grouped pull request`

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

Обновления версий

          **Относится к:** Только обновления версий

          Dependabot Покажем неудачное обновление в ваших логах, а также в резюме вакансии в конце ваших логов.

          **Резолюция:**
  1. Используйте @dependabot recreate комментарий к pull request, чтобы снова собрать группу. См . раздел AUTOTITLE.
  2. Если зависимость всё равно не обновляется, используйте exclude-patterns конфигурацию так, чтобы зависимость была исключена из группы. Dependabot Затем вызовет отдельный pull запрос для обновления зависимости.
  3. Если зависимость всё равно не обновляется, возможно, возникает проблема с самой зависимостью или Dependabot в конкретной экосистеме.

Если вы хотите игнорировать обновления для зависимости, необходимо выполнить одно из следующих действий.

Обновления системы безопасности

          **Относится к:** Только обновления безопасности

Если сгруппированный pull request на обновления безопасности не работает или не может быть объединен, откройте pull requests вручную, чтобы увеличить версии ломающихся изменений. Когда вы вручную обновляете пакет, включённый в сгруппированный pull-запрос, Dependabot он перебазируется так, чтобы он не включал вручную обновлённый пакет.

Если вы хотите игнорировать обновления для зависимости, необходимо выполнить одно из следующих действий.

Непрерывная интеграция не работает при сгруппированном pull request

          **Относится к:** Только обновления версий

          **Сообщение об ошибке:**`Continuous integration (CI) fails on my grouped pull request`

          **Резолюция:**

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

Если вы хотите игнорировать обновления для зависимости, необходимо выполнить одно из следующих действий.

Если вы продолжаете видеть сбои CI, удалите групповую конфигурацию, чтобы Dependabot она возвращалась к подъёму индивидуальных pull запросов для каждой зависимости. Затем проверьте и убедитесь, что обновление работает корректно для каждого отдельного pull request.

Ошибки аутентификации и реестра

Нельзя разрешить или получить доступ к зависимым

          **Сообщение об ошибке:**`Dependabot can't resolve your LANGUAGE dependency files`

          **Тип ошибки API:**`git_dependencies_not_reachable`

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

Ошибки реестра частных пакетов

          Dependabot может возникнуть одна из следующих ошибок, если не может получить доступ к приватному реестру пакетов:
Сообщение об ошибкеТип ошибки API
"Dependabot не удаётся получить зависимость в частном реестре посылок"private_source_not_reachable
"Dependabot невозможно аутентифицироваться в частный реестр посылок"private_source_authentication_failure
"Dependabot время истекло, пока ждали приватный реестр посылок"private_source_timed_out
"Dependabot не удалось проверить сертификат для частного реестра посылок"private_source_certificate_failure
          **Разрешение:** Убедитесь, что все указанные зависимости размещены в доступных местах.

          **Только обновления версий:**При обновлении системы безопасности или версий некоторые экосистемы должны иметь возможность разрешить все зависимости от источника, чтобы убедиться, что обновления успешно выполнены. Если файлы манифеста или блокировки содержат какие-либо частные зависимости, Dependabot должен иметь доступ к расположению, в котором размещаются эти зависимости. Владельцы организации могут предоставлять Dependabot доступ к частным репозиториям, содержащим зависимости для проекта, в той же организации. Дополнительные сведения см. в разделе [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization#allowing-dependabot-to-access-private-or-internal-dependencies). Вы можете настроить доступ к частным реестрам в файле конфигурации репозитория `dependabot.yml` . Дополнительные сведения см. в разделе [AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot). Кроме того, Dependabot не поддерживает приватные GitHub зависимости для всех менеджеров пакетов. См [. раздел AUTOTITLE](/code-security/dependabot/ecosystems-supported-by-dependabot/supported-ecosystems-and-repositories).

Запуск Dependabot pull request вручную

Если вы разблокируете Dependabot, вы можете вручную запустить новую попытку создания pull request.

          **Для обновлений безопасности:** Покажите Dependabot уведомление, которое показывает исправленную ошибку, и нажмите **«Создать Dependabot обновление безопасности**».

          **Для обновлений версий:** На вкладке **Insights** для репозитория нажмите **на граф зависимостей**, затем нажмите на **Dependabot** вкладку. **Нажмите «Последний раз проверено _НЕКОТОРОЕ_ время назад** », чтобы увидеть файл журнала, который Dependabot был сгенерирован во время последней проверки обновлений версии. Щелкните ссылку **Проверка обновлений**.

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

  •         [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/troubleshooting-the-dependency-graph)
    
  •         [AUTOTITLE](/code-security/reference/supply-chain-security/troubleshoot-dependabot/vulnerable-dependency-detection)