О автоматической отправке зависимостей
Note
Автоматическая отправка зависимостей в настоящее время поддерживается только для Maven.
Граф зависимостей анализирует файлы манифеста и блокировки в репозитории, чтобы помочь пользователям понять зависимости, от которые зависит репозиторий. Однако в некоторых экосистемах разрешение транзитивных зависимостей происходит во время сборки, и GitHub не может автоматически обнаруживать все зависимости на основе содержимого репозитория.
При включении автоматической отправки зависимостей для репозитория GitHub автоматически определяет транзитивные зависимости в репозитории и отправляет эти зависимости в GitHub с помощью API отправки зависимостей. Затем можно сообщить об этих зависимостях с помощью граф зависимостей.
При использовании автоматической отправки зависимостей количество данных GitHub Actions минут. Дополнительные сведения см. в разделе Сведения о выставлении счетов за GitHub Actions.
При необходимости можно настроить локальные модули выполнения или GitHub, размещенные более крупные бегуны для автоматической отправки зависимостей. Дополнительные сведения см. в статье "[Использование локально размещенных модулей выполнения для автоматической отправки зависимостей" и "Использование GitHub, размещенных в более крупных средах выполнения для автоматической отправки](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository#using-github-hosted-larger-runners-for-automatic-dependency-submission ) зависимостей".
Необходимые компоненты
Граф зависимостей должен быть включен для репозитория, чтобы включить автоматическую отправку зависимостей.
Для использования автоматической отправки зависимостей необходимо также включить GitHub Actions для репозитория. Дополнительные сведения см. в разделе Управление параметрами GitHub Actions для репозитория.
Включение автоматической отправки зависимостей
Администраторы репозитория могут включить или отключить автоматическую отправку зависимостей для репозитория, выполнив действия, описанные в этой процедуре.
Владельцы организации могут включить автоматическую отправку зависимостей для нескольких репозиториев с помощью конфигурации безопасности. Дополнительные сведения см. в разделе Создание настраиваемой конфигурации безопасности.
-
На GitHubперейдите на главную страницу репозитория.
-
Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".
-
В разделе "Безопасность" боковой панели щелкните Code security.
-
В разделе "Граф зависимостей" щелкните раскрывающееся меню рядом с пунктом "Автоматическая отправка зависимостей", а затем выберите "Включено".
После включения автоматической отправки зависимостей для репозитория GitHub будет:
- Отслеживайте изменения
pom.xml
файла в корне репозитория во всех ветвях репозитория. - Выполнение автоматической отправки зависимостей при каждом изменении.
Вы можете просмотреть сведения о автоматических рабочих процессах, выполняемых с помощью вкладки "Действия " репозитория.
Note
Автоматическая отправка будет выполняться при первой отправке pom.xml
в файл после включения параметра.
Использование локальных средств выполнения для автоматической отправки зависимостей
Для запуска заданий автоматической отправки зависимостей можно настроить автономные средства выполнения, а не с помощью инфраструктуры GitHub Actions.
- Подготовьте один или несколько локальных модулей выполнения на уровне репозитория или организации. Дополнительные сведения см. в разделе [AUTOTITLE и О самостоятельно размещенных средствах выполнения](/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners). Локальные модули запуска должны работать в Linux или macOS и должны быть установлены Docker.
- Назначьте метку каждому средству
dependency-submission
выполнения, которую требуется использовать автоматическую отправку зависимостей. Дополнительные сведения см. в разделе Использование меток с самостоятельно размещенными средствами выполнения. - В разделе "Безопасность" боковой панели щелкните Code security.
- В разделе "Граф зависимостей" щелкните раскрывающееся меню рядом с параметром "Автоматическая отправка зависимостей", а затем выберите "Включено" для помеченных средств выполнения.
После включения задания автоматической отправки зависимостей будут выполняться на локальных запусках, если только:
- Локальные бегуны недоступны.
- Группы runner не помечены меткой
dependency-submission
.
Note
При использовании локальных модулей выполнения необходимо добавить доступ к файлу параметров сервера Maven, чтобы рабочие процессы отправки зависимостей могли подключаться к частным реестрам. Зависимости от частных реестров будут включены в дерево зависимостей в следующем pom.xml
обновлении. Дополнительные сведения о файле параметров сервера Maven см . в разделе "Параметры безопасности и развертывания" в документации Maven.
Использование GitHub, размещенных более крупные бегуны для автоматической отправки зависимостей
GitHub Team или GitHub Enterprise Cloud пользователи могут использовать более крупные бегуны для выполнения заданий автоматической отправки зависимостей.
- Подготовьте более крупного бегуна на уровне организации с именем
dependency-submission
. Дополнительные сведения см. в разделе "Добавление данных крупное средство выполнения в организацию. - Предоставьте репозиторию доступ к средству выполнения. Дополнительные сведения см. в разделе "Разрешить репозиториям доступ к более крупные бегуны".
- В разделе "Граф зависимостей" щелкните раскрывающееся меню рядом с параметром "Автоматическая отправка зависимостей", а затем выберите "Включено" для помеченных средств выполнения.
Устранение неполадок автоматической отправки зависимостей
Автоматическая отправка зависимостей в настоящее время поддерживается только для Maven. Эта функция использует действие отправки дерева зависимостей Maven. Дополнительные сведения см. в документации по действию отправки дерева зависимостей Maven в GitHub Marketplace. Если в проекте используется нестандартная конфигурация Maven, она может неправильно создать зависимости и отправить их в граф зависимостей.
Автоматическая отправка зависимостей позволяет лучше всего кэшировать скачивание пакетов между запусками с помощью действия кэша для ускорения рабочих процессов. Для локальных средств выполнения может потребоваться управлять этим кэшем в собственной инфраструктуре. Для этого можно отключить встроенный кэширование, задав для переменной GH_DEPENDENCY_SUBMISSION_SKIP_CACHE
среды значение true
. Дополнительные сведения см. в разделе Хранение сведений в переменных.