Skip to main content

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

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

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

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

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

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

  • https://github.com—Требуется для доступа GitHub и загрузки действий.
  • https://api.github.com—Требуется для GitHub доступа к API.
  • 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, который перенаправляет на .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. Для получения дополнительной информации см. раздел «Добавление крупное средство выполнения a в организацию».
  2. Предоставьте репозиторию доступ к средству выполнения. Для получения дополнительной информации см . раздел Разрешение репозиториям для доступа более крупные бегунык .
  3. В разделе "Граф зависимостей" щелкните раскрывающееся меню рядом с параметром "Автоматическая отправка зависимостей", а затем выберите "Включено" для помеченных средств выполнения.

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

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

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

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

Граф зависимостей отображает только один экземпляр каждого файла манифеста, используя следующие правила приоритета.

  1.        **Отправки** пользователей имеют наивысший приоритет, так как они обычно создаются во время сборки артефактов, у них есть самая полная информация.
    
    • Если есть несколько моментальных снимков вручную из разных детекторов, они сортируются по алфавиту по коррелятору и первому используемому.
    • Если есть два коррелятора с одинаковым детектором, разрешенные зависимости объединяются. Дополнительные сведения о корреляторах и детекторах см. в разделе Конечные точки REST API для отправки зависимостей.
  2.        **Автоматическая отправка** имеет второй приоритет, так как они также создаются во время сборки артефактов, но не отправляются пользователями.
    
  3.        **Результаты** статического анализа используются, если другие данные недоступны.
    

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

Проекты Maven

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

Если зависимости репозитория выглядят неточными, убедитесь, что метка времени последнего граф зависимостей сборки соответствует последнему изменению pom.xml файла. Временная метка видна в таблице оповещений во вкладке репозитория Dependabot . Отправка коммита, который обновляется pom.xml , запускает новый запуск действия Submission Tree Dependency и заставляет перестроить граф зависимостей репозитория.

Проекты Gradle

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

.NET-проекты

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

Python-проекты

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

Примечание.

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