Skip to main content

Настройка автоматической отправки зависимостей для репозитория

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

Кто может использовать эту функцию?

Владельцы репозитория, владелец организации, руководители безопасности и пользователи с ролью администратора

О автоматической отправке зависимостей

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 для репозитория.

Включение автоматической отправки зависимостей

Администраторы репозитория могут включить или отключить автоматическую отправку зависимостей для репозитория, выполнив действия, описанные в этой процедуре.

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

  1. На GitHubперейдите на главную страницу репозитория.

  2. Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

  3. В разделе "Безопасность" боковой панели щелкните Code security.

  4. В разделе "Граф зависимостей" щелкните раскрывающееся меню рядом с пунктом "Автоматическая отправка зависимостей", а затем выберите "Включено".

После включения автоматической отправки зависимостей для репозитория GitHub будет:

  • Отслеживайте изменения pom.xml файла в корне репозитория во всех ветвях репозитория.
  • Выполнение автоматической отправки зависимостей при каждом изменении.

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

Note

Автоматическая отправка будет выполняться при первой отправке pom.xml в файл после включения параметра.

Использование локальных средств выполнения для автоматической отправки зависимостей

Для запуска заданий автоматической отправки зависимостей можно настроить автономные средства выполнения, а не с помощью инфраструктуры GitHub Actions.

  1. Подготовьте один или несколько локальных модулей выполнения на уровне репозитория или организации. Дополнительные сведения см. в разделе [AUTOTITLE и О самостоятельно размещенных средствах выполнения](/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners). Локальные модули запуска должны работать в Linux или macOS и должны быть установлены Docker.
  2. Назначьте метку каждому средству dependency-submission выполнения, которую требуется использовать автоматическую отправку зависимостей. Дополнительные сведения см. в разделе Использование меток с самостоятельно размещенными средствами выполнения.
  3. В разделе "Безопасность" боковой панели щелкните Code security.
  4. В разделе "Граф зависимостей" щелкните раскрывающееся меню рядом с параметром "Автоматическая отправка зависимостей", а затем выберите "Включено" для помеченных средств выполнения.

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

  • Локальные бегуны недоступны.
  • Группы runner не помечены меткой dependency-submission .

Note

При использовании локальных модулей выполнения необходимо добавить доступ к файлу параметров сервера Maven, чтобы рабочие процессы отправки зависимостей могли подключаться к частным реестрам. Зависимости от частных реестров будут включены в дерево зависимостей в следующем pom.xml обновлении. Дополнительные сведения о файле параметров сервера Maven см . в разделе "Параметры безопасности и развертывания" в документации Maven.

Использование GitHub, размещенных более крупные бегуны для автоматической отправки зависимостей

GitHub Team или GitHub Enterprise Cloud пользователи могут использовать более крупные бегуны для выполнения заданий автоматической отправки зависимостей.

  1. Подготовьте более крупного бегуна на уровне организации с именем dependency-submission. Дополнительные сведения см. в разделе "Добавление данных крупное средство выполнения в организацию.
  2. Предоставьте репозиторию доступ к средству выполнения. Дополнительные сведения см. в разделе "Разрешить репозиториям доступ к более крупные бегуны".
  3. В разделе "Граф зависимостей" щелкните раскрывающееся меню рядом с параметром "Автоматическая отправка зависимостей", а затем выберите "Включено" для помеченных средств выполнения.

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

Автоматическая отправка зависимостей в настоящее время поддерживается только для Maven. Эта функция использует действие отправки дерева зависимостей Maven. Дополнительные сведения см. в документации по действию отправки дерева зависимостей Maven в GitHub Marketplace. Если в проекте используется нестандартная конфигурация Maven, она может неправильно создать зависимости и отправить их в граф зависимостей.

Автоматическая отправка зависимостей позволяет лучше всего кэшировать скачивание пакетов между запусками с помощью действия кэша для ускорения рабочих процессов. Для локальных средств выполнения может потребоваться управлять этим кэшем в собственной инфраструктуре. Для этого можно отключить встроенный кэширование, задав для переменной GH_DEPENDENCY_SUBMISSION_SKIP_CACHE среды значение true. Дополнительные сведения см. в разделе Хранение сведений в переменных.

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