{"meta":{"title":"Сведения о проверке зависимостей","intro":"Проверка зависимостей позволяет перехватывать небезопасные зависимости до того, как они попадут в среду выполнения, и получать сведения о лицензиях, зависимых элементах и сроке существования зависимостей.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/concepts","title":"Concepts"},{"href":"/ru/code-security/concepts/supply-chain-security","title":"Безопасность цепочки поставок"},{"href":"/ru/code-security/concepts/supply-chain-security/about-dependency-review","title":"Просмотр зависимостей"}],"documentType":"article"},"body":"# Сведения о проверке зависимостей\n\nПроверка зависимостей позволяет перехватывать небезопасные зависимости до того, как они попадут в среду выполнения, и получать сведения о лицензиях, зависимых элементах и сроке существования зависимостей.\n\n## Сведения о проверке зависимостей\n\nПроверка зависимостей помогает разобраться в изменениях зависимостей и понять их влияние на безопасность в каждом запросе на вытягивание. Она обеспечивает легко понятную визуализацию изменений зависимостей с широкими возможностями на вкладке \"Измененные файлы\" запроса на вытягивание. Функция проверки зависимостей позволяет получить следующую информацию:\n\n* Какие зависимости были добавлены, удалены или обновлены вместе с датами выпуска\n* Сколько проектов использует эти компоненты\n* Данные уязвимости для этих зависимостей\n\nДля запросов на вытягивание, содержащих изменения в манифестах пакета или файлах блокировки, можно отобразить проверку зависимостей, чтобы узнать, что изменилось. Проверка зависимостей содержит сведения об изменениях косвенных зависимостей в файлах блокировки и сообщает, имеются ли известные уязвимости в каких-либо добавленных или обновленных зависимостях.\n\n> \\[!NOTE]\n> \"Действие проверки зависимостей\" ссылается на конкретное действие, которое может сообщать о различиях в запросе на вытягивание в контексте GitHub Actions и добавляет механизмы принудительного применения в рабочий процесс GitHub Actions . Дополнительные сведения см. в разделе [Действие проверки зависимостей](#about-the-dependency-review-action) далее в этой статье.\n\nИногда может потребоваться просто обновить версию одной зависимости в манифесте и создать запрос на вытягивание. Однако если обновленная версия этой прямой зависимости также имеет обновленные зависимости, запрос на вытягивание может иметь больше изменений, чем ожидалось. Проверка зависимостей для каждого файла манифеста и блокировки позволяет легко узнать, что изменилось, и содержат ли какие-либо из новых версий зависимостей известные уязвимости.\n\nПросмотрев проверки зависимостей в запросе на вытягивание и изменив все зависимости, помеченные как уязвимые, можно избежать добавления уязвимостей в проект. Дополнительные сведения о том, как работает проверка зависимостей, см. в разделе [Проверка изменений зависимостей в запросе на вытягивание](/ru/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request).\n\nDependabot alerts обнаружит уязвимости, которые уже имеются в ваших зависимостях, но гораздо лучше избежать потенциальных проблем, чем позднее тратить время на их устранение. Дополнительные сведения о Dependabot alertsсм. в разделе [Сведения об оповещениях Dependabot](/ru/code-security/dependabot/dependabot-alerts/about-dependabot-alerts#dependabot-alerts-for-vulnerable-dependencies).\n\nПроверка зависимостей поддерживает те же языки и экосистемы управления пакетами, что и граф зависимостей. Дополнительные сведения см. в разделе [Поддерживаемые экосистемы пакетов графа зависимостей](/ru/code-security/supply-chain-security/understanding-your-software-supply-chain/dependency-graph-supported-package-ecosystems#supported-package-ecosystems).\n\nДополнительные сведения о функциях цепочки поставок, доступных на GitHub, см. в разделе [Сведения о безопасности цепочки поставок](/ru/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security).\n\n## Включение проверки зависимостей\n\nФункция проверки зависимостей становится доступной при включении графа зависимостей. Дополнительные сведения см. в статье \\[Включение граф зависимостей\".\n\n## О Действие проверки зависимостей\n\n\"Действие проверки зависимостей\" ссылается на конкретное действие, которое может сообщать о различиях в запросе на вытягивание в контексте GitHub Actions. См. раздел [`dependency-review-action`](https://github.com/actions/dependency-review-action). Вы можете использовать переменные данных Действие проверки зависимостей в репозитории для принудительного применения проверок зависимостей в запросах на вытягивание. Это действие проверяет наличие уязвимых версий зависимостей, представленных изменениями версии пакета в запросах на вытягивание, и предупреждает о связанных с ними уязвимостях системы безопасности. Это позволяет лучше отслеживать изменения в запросе на вытягивание и предотвращать добавление уязвимостей в репозиторий.\n\n![Снимок экрана: запуск рабочего процесса, использующий действие проверки зависимостей.](/assets/images/help/graphs/dependency-review-action.png)\n\nПо умолчанию проверка Действие проверки зависимостей завершится ошибкой, если она обнаруживает уязвимые пакеты. Ошибка проверки блокирует объединение запроса на вытягивание, если владелец репозитория потребовал обязательную проверку зависимостей. Дополнительные сведения см. в разделе [Сведения о защищенных ветвях](/ru/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-status-checks-before-merging).\n\nДействие доступно для всех public repositories, а также частных репозиториев, имеющих GitHub Code Security or GitHub Advanced Security включено.\n\nВладельцы организации могут развертывать проверку зависимостей в масштабе, применяя использование Действие проверки зависимостей в репозиториях в организации. Это включает использование наборов правил репозитория, для которых вы задали Действие проверки зависимостей в качестве обязательного рабочего процесса, что означает, что запросы на вытягивание можно объединить только после передачи всех необходимых проверок. Дополнительные сведения см. в разделе [Применение проверки зависимостей в организации](/ru/code-security/supply-chain-security/understanding-your-software-supply-chain/enforcing-dependency-review-across-an-organization).\n\nДействие использует REST API проверки зависимостей, чтобы получить диффы изменений зависимостей между базовой фиксацией и фиксацией головы. Api проверки зависимостей можно использовать для получения диффа изменений зависимостей, включая данные уязвимости между любыми двумя фиксациями в репозитории. Дополнительные сведения см. в разделе [Конечные точки REST API для проверки зависимостей](/ru/rest/dependency-graph/dependency-review). Действие также учитывает зависимости, отправленные через API отправки зависимостей. Дополнительные сведения о API отправки зависимостейсм. в разделе [Использование API отправки зависимостей](/ru/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api).\n\n> \\[!NOTE]\n> API проверки зависимостей и API отправки зависимостей работают вместе. Это означает, что API проверки зависимостей будет включать зависимости, отправленные через API отправки зависимостей.\n\nВы можете настроить переменные данных Действие проверки зависимостей в соответствии с вашими потребностями. Например, можно указать уровень серьезности, при котором действие будет завершаться сбоем, или задать список разрешенных или запрещенных лицензий. Дополнительные сведения см. в разделе [Настройка действия проверки зависимостей](/ru/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-the-dependency-review-action).\n\n## Рекомендации по использованию API проверки зависимостей и API отправки зависимостей вместе\n\nAPI проверки зависимостей и Действие проверки зависимостей работают, сравнивая изменения зависимостей в запросе на вытягивание с состоянием зависимостей в головной фиксации целевой ветви.\n\nЕсли репозиторий зависит только от статически определенных зависимостей в одной из поддерживаемых экосистем GitHub, API проверки зависимостей и Действие проверки зависимостей работают согласованно.\n\nОднако может потребоваться, чтобы зависимости проверялись во время сборки, а затем загружались в API отправки зависимостей. В этом случае следует следовать рекомендациям, чтобы убедиться, что при выполнении процессов для API проверки зависимостей и API отправки зависимостей, так как это может привести к отсутствием данных.\n\nРекомендации, которые необходимо предпринять, зависят от того, используете ли вы GitHub Actions для доступа к API отправки зависимостей и API проверки зависимостей или используете ли вы прямой доступ к API.\n\n### Использование GitHub Actions для доступа к API отправки зависимостей и API проверки зависимостей\n\nЕсли вы используете GitHub Actions для доступа к API отправки зависимостей или API проверки зависимостей:\n\n* Убедитесь, что все действия отправки зависимостей выполняются в том же рабочем процессе GitHub Actions в качестве Действие проверки зависимостей. Это даст вам контроль над порядком выполнения, и это гарантирует, что проверка зависимостей всегда будет работать.\n* Если вы решили запустить переменные данных Действие проверки зависимостей отдельно, необходимо:\n  * Задайте для параметра `retry-on-snapshot-warnings` значение `true`.\n  * Установите `retry-on-snapshot-warnings-timeout` значение слегка превышающее обычное время выполнения (в секундах) действия отправки зависимостей.\n\n### Использование прямого доступа к данным API отправки зависимостей и API проверки зависимостей\n\nЕсли вы не используете GitHub Actions, а код использует прямой доступ к API отправки зависимостей и API проверки зависимостей:\n\n* Сначала выполните код, который вызывает API отправки зависимостей, а затем запустите код, вызывающий API проверки зависимостей после этого.\n* Если вы решили запустить код для API отправки зависимостей и API проверки зависимостей параллельно, необходимо реализовать логику повторных попыток и отметить следующее:\n  * Когда отсутствуют моментальные снимки для любой стороны сравнения, вы увидите объяснение этого в `x-github-dependency-graph-snapshot-warnings` заголовке (как строка в кодировке Base64). Таким образом, если заголовок не пуст, рекомендуется повторить попытку.\n  * Реализуйте логику повторных попыток с экспоненциальными повторными попытками.\n  * Реализуйте разумное количество повторных попыток, чтобы учитывать типичную среду выполнения кода отправки зависимостей.\n\n## Дополнительные материалы\n\n* [Настройка конфигурации действия проверки зависимостей](/ru/code-security/supply-chain-security/understanding-your-software-supply-chain/customizing-your-dependency-review-action-configuration)"}