Skip to main content

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

Требования к доступу к сети, устранение неполадок и поведение, специфичное для экосистемы, при автоматической подаче зависимостей.

Настройка доступа к сети для самостоятельных раннеров

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

Обязательные URL-адреса для всех экосистем

Эти URL-адреса необходимы для всех рабочих процессов автоматической отправки зависимостей:

  •         `https://github.com`—Требуется для доступа к GitHub и загрузки действий.
    
  •         `https://api.github.com`—Требуется для доступа к API GitHub.
    
  •         `https://*.githubusercontent.com`—Требуется для скачивания исходного кода действия и релизов (включая `raw.githubusercontent.com`, `github-releases.githubusercontent.com`, и `objects.githubusercontent.com`).
    

Специфичные для экосистемы URL

В зависимости от используемых вами экосистем, возможно, потребуется добавить дополнительные URL-адреса.

Вперед

  •         `https://go.dev`—Для скачивания инструментария Go.
    
  •         `https://golang.org`— Альтернативный домен для загрузок с Go.
    
  •         `https://proxy.golang.org`—Официальный прокси модуля Go для загрузки модулей Go во время обнаружения зависимостей.
    

Примечание.

Доступ к actions/go-versions репозиторию осуществляется через https://raw.githubusercontent.com, что уже предусмотрено общими требованиями.

Java (Maven и Gradle)

  •         `https://repo.maven.apache.org`—Репозиторий Maven Central для загрузки зависимостей.
    
  •         `https://api.adoptium.net`— Для скачивания дистрибутивов Adoptium/Temurin JDK (дистрибутив по умолчанию используется ).`actions/setup-java`
    

Если вы используете другой дистрибутив JDK, вам также может понадобиться:

  •         `https://aka.ms` и `https://download.microsoft.com`—Для Microsoft Build of OpenJDK (примечание: `aka.ms` также используется для .NET загрузок).
    
  •         `https://download.oracle.com`—Для Oracle JDK.
    
  •         `https://api.azul.com`—для Azul Zulu OpenJDK.
    

.NET (C#, F#, Visual Basic)

  •         `https://aka.ms` — укорачивающий URL Microsoft, который перенаправляет на .NET места загрузки.
    
  •         `https://builds.dotnet.microsoft.com` — Основная лента для загрузок SDK .NET и во время выполнения.
    
  •         `https://ci.dot.net` — Вторичный корм для .NET билдов.
    

Примечание.

Инструмент microsoft/component-detection, используемый при .NET автоподаче, скачивается с GitHub релизов, которые уже охвачены общими требованиями (https://github.com и https://*.githubusercontent.com).

Python

  •         `https://python.org` — Для загрузки Python интерпретаторов.
    

Примечание.

Репозиторий и релизы доступны через URL, actions/python-versions уже указанные в общих требованиях (microsoft/component-detection и https://*.githubusercontent.com).https://github.com

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

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

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

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

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

Дедупликация манифеста

Сведения о экосистеме пакетов

Проекты Maven

Для проектов Maven автоматическая отправка зависимостей запускается как open source форк Maven Dependency Tree Dependency Submission. Вилка позволяет GitHub оставаться в синхронизации с вышестоящим репозиторием, а также поддерживать некоторые изменения, применимые только к автоматической отправке. Источник вилки доступен в режиме advanced-security/maven-dependency-submission-action.

Если зависимости репозитория выглядят неточными, убедитесь, что метка времени последнего граф зависимостей сборки соответствует последнему изменению pom.xml файла. Метка времени отображается на таблице оповещений на вкладке данных репозитория variables.product.prodname_dependabot_alerts %} . Отправка фиксации, которая обновления pom.xml активирует новое выполнение действия отправки дерева зависимостей и принудительное перестроение граф зависимостей этого репозитория.

Проекты Gradle

Для проектов Gradle автоматическая отправка зависимостей выполняет форк действий open source Gradle из gradle/actions. Вилку можно использовать при действиях или действиях gradle-build-tools-actions. Результаты действия автоматической отправки можно просмотреть на вкладке "Действия** репозитория**". Каждый запуск будет помечен как "Автоматическая отправка зависимостей (Gradle)" и его выходные данные будут содержать полезные данные JSON, которые действие отправляется в API.

.NET-проекты

Действие auto submission .NET использует проект open source component-detection в качестве движка для обнаружения зависимостей. Поддерживает .NET 8.x, 9.x и 10.x. .NET автоотправка выполняется, если dependabot.yml репозитория определяет nuget как package-ecosystem или когда поддерживаемый файл манифеста находится в корневом каталоге репозитория. Поддерживаемые файлы манифеста включают .sln, , .csproj, packages.config``.vbproj, .vcxprojи .fsproj.

Python-проекты

Python использует проект open source component-detection в качестве базового движка генерации графов. Действие автоотправки для Python выполняется только если в корневом каталоге репозитория есть файл requirements.txt. Python автоотправка в настоящее время не поддерживает приватные пакеты; пакеты, упомянутые в requirements.txt, которые не являются публично доступными, приведут к провалу действия автоотправки.

Примечание.

Это действие использует actions/setup-python для установки Python. Вы должны включить . Файл python-version в вашем репозитории, чтобы указать версию Python для установки.