Skip to main content

Ошибки dependabot

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Например, проект может иметь зависимость от 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.0, то Dependabot попытается обновить B, но это окажется невозможным из-за установленного A ограничения, позволяющего использовать только более ранние, уязвимые версии. Чтобы устранить уязвимость, Dependabot будет проверять наличие обновлений для зависимости A, которые позволят использовать исправленную версию B.

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

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

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

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

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

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

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

Дополнительные сведения о командах комментариев 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 запроса Dependabot](#triggering-a-dependabot-pull-request-manually).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          **Решение для обновлений безопасности:** Уменьшите вероятность тайм-аутов, поддерживая зависимости в актуальном состоянии, например, включая обновления версий. Дополнительные сведения см. в разделе [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 будет игнорировать группу и создавать отдельный запрос на вытягивание для каждой зависимости.
    
           **Разрешение:** Убедитесь, что настройки конфигурации не взаимно отменяются, и обновляйте их соответствующим образом в вашем конфигурационном файле. Чтобы отладить проблему, посмотрите логи. Для получения информации о доступе к журналам манифеста см. [раздел «Как просмотреть ошибки](#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 файла для запросов на вытягивание сгруппированных обновлений системы безопасности. Правила групп, настроенные 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 создает отдельный запрос на вытягивание для обновления зависимости.
  3. Если зависимость по-прежнему не удается обновить, может возникнуть проблема с самой зависимостью или с Dependabot для этой конкретной экосистемы.

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

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

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

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

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

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

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

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

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

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

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

Если сбои 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 не поддерживает зависимости private GitHub для всех менеджеров пакетов. См [. раздел AUTOTITLE](/code-security/dependabot/ecosystems-supported-by-dependabot/supported-ecosystems-and-repositories).

Активация запроса на включение внесенных изменений в Dependabot вручную

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

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

          **Для обновлений версий:** На вкладке **Insights** для репозитория нажмите **Graph** зависимостей, а затем вкладку **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)