Skip to main content

Envoi automatique des dépendances

Exigences d’accès réseau, résolution des problèmes et comportement spécifique à l’écosystème pour la soumission automatique de dépendances.

Configurer l’accès réseau pour les exécuteurs auto-hébergés

Si vos exécuteurs auto-hébergés fonctionnent derrière un pare-feu avec un accès Internet sortant restreint, vous devez ajouter certaines URL à la liste d'autorisation pour la soumission automatique des dépendances. Les URL requises dépendent des écosystèmes utilisés par vos référentiels.

URL requises pour tous les écosystèmes

Ces URL sont requises pour tous les flux de travail de soumission de dépendances automatiques :

  •         `https://github.com`— Obligatoire pour accéder à GitHub et télécharger des actions.
    
  •         `https://api.github.com`—Obligatoire pour l'accès à l'API de GitHub.
    
  •         `https://*.githubusercontent.com`— Requis pour télécharger le code source et les versions d’action (y compris `raw.githubusercontent.com`, `github-releases.githubusercontent.com`et `objects.githubusercontent.com`).
    

URL spécifiques à l’écosystème

Selon les écosystèmes que vous utilisez, vous devrez peut-être autoriser des URL supplémentaires à lister.

Allez

  •         `https://go.dev`— Pour télécharger la chaîne d’outils Go.
    
  •         `https://golang.org`— Autre domaine pour les téléchargements Go.
    
  •         `https://proxy.golang.org`— Proxy de module Go officiel pour le téléchargement des modules Go lors de la détection des dépendances.
    

Remarque

Le actions/go-versions référentiel est accessible via https://raw.githubusercontent.com, qui est déjà couvert dans les exigences générales.

Java (Maven et Gradle)

  •         `https://repo.maven.apache.org`— Référentiel Maven Central pour le téléchargement des dépendances.
    
  •         `https://api.adoptium.net`— Pour télécharger les distributions JDK Adoptium/Temurin (distribution par défaut utilisée par `actions/setup-java`).
    

Si vous utilisez une autre distribution JDK, vous pouvez également avoir besoin des éléments suivants :

  •         `https://aka.ms` et `https://download.microsoft.com` : pour Microsoft Build of OpenJDK (remarque : `aka.ms` est également utilisé pour les téléchargements .NET).
    
  •         `https://download.oracle.com`— Pour le JDK Oracle.
    
  •         `https://api.azul.com`— Pour Azul Zulu OpenJDK.
    

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

  •         `https://aka.ms`—raccourcisseur d’URL Microsoft qui redirige vers les emplacements de téléchargement de .NET.
    
  •         `https://builds.dotnet.microsoft.com` : flux principal pour les téléchargements du SDK et du Runtime .NET.
    
  •         `https://ci.dot.net` : flux secondaire pour les builds .NET.
    

Remarque

L'outil microsoft/component-detection utilisé par .NET autosoumission est téléchargé à partir des versions de GitHub, déjà couvert par les exigences générales (https://github.com et https://*.githubusercontent.com).

Python

  •         `https://python.org` : pour télécharger des interpréteurs Python.
    

Remarque

Le référentiel actions/python-versions et les publications microsoft/component-detection sont accessibles via des URL déjà couvertes par les conditions générales https://*.githubusercontent.com et https://github.com.

Utilisez GitHub-hosted exécuteurs plus grands pour la soumission automatique de dépendances

Les utilisateurs GitHub Team ou GitHub Enterprise Cloud peuvent exécuter des tâches d’envoi automatique des dépendances à l’aide d’exécuteurs plus grands.

  1. Approvisionnez un exécuteur plus grand au niveau de l’organisation avec le nom dependency-submission. Pour en savoir plus, consultez Ajout d’un exécuteur plus grand à une organisation.
  2. Donnez à votre dépôt l’accès à l’exécuteur. Pour en savoir plus, consultez Octroi à des dépôts de l’accès à des exécuteurs plus grands.
  3. Sous « Graphique des dépendances », cliquez sur le menu déroulant en regard d’« Envoi automatique des dépendances », puis sélectionnez Activé pour les exécuteurs étiquetés.

Résoudre les problèmes de soumission automatique des dépendances

L’envoi automatique de dépendances s’efforce de mettre en cache les téléchargements de packages entre les exécutions à l’aide de l’action Mettre en cache pour accélérer les flux de travail. Pour les exécuteurs auto-hébergés, vous pouvez gérer ce cache au sein de votre propre infrastructure. Pour ce faire, vous pouvez désactiver la mise en cache intégrée en définissant une variable d’environnement de GH_DEPENDENCY_SUBMISSION_SKIP_CACHE sur true. Pour plus d’informations, consultez « Stocker des informations dans des variables ».

Déduplication du manifeste

Informations spécifiques à l’écosystème de packages

Projets Maven

Pour les projets Maven, l'envoi automatique de dépendances exécute un fork open source de la soumission de dépendances de l'arborescence des dépendances Maven . La duplication (fork) permet à GitHub de rester synchronisé avec le dépôt en amont tout en conservant certaines modifications qui s’appliquent uniquement à l’envoi automatique. La source de la duplication (fork) est disponible à l’adresse advanced-security/maven-dependency-submission-action.

Si les dépendances de votre dépôt semblent inexactes, vérifiez que le timestamp de la génération la plus récente du graphique des dépendances correspond à la modification la plus récente de votre fichier pom.xml. Le timestamp est visible dans la table des alertes dans l’onglet Dependabot alerts du dépôt. L’envoi d’une validation qui met à jour pom.xml déclenche une nouvelle exécution de l’action Envoi de l’arborescence des dépendances et force une régénération du graphique des dépendances de ce dépôt.

Projets Gradle

Pour les projets Gradle, la soumission automatique de dépendances exécute un fork des actions open source de Gradle à partir de gradle/actions. La duplication (fork) est disponible à l’adresse actions/gradle-build-tools-actions. Vous pouvez afficher les résultats de l’action d’envoi automatique sous l’onglet Actions de votre dépôt. Chaque exécution est étiquetée « Envoi automatique des dépendances (Gradle) » et sa sortie contient la charge utile JSON que l’action a envoyée à l’API.

projets .NET

L’action de soumission automatique .NET utilise le projet open source component-detection comme moteur pour sa détection de dépendances. Il prend en charge .NET 8.x, 9.x et 10.x. .NET autosoumission s'exécute si le dependabot.yml définit nuget comme package-ecosystem ou lorsqu'il existe un fichier manifeste pris en charge dans le répertoire racine du référentiel. Les fichiers manifeste pris en charge incluent .sln, .csproj, packages.config, .vbproj, .vcxproj et .fsproj.

projets Python

Python utilise le projet open source component-detection comme moteur de génération de graphique sous-jacent. L’action de soumission automatique pour Python s’exécute uniquement s’il existe un fichier requirements.txt dans le répertoire racine du référentiel. Python la soumission automatique ne prend actuellement pas en charge les packages privés ; les packages référencés dans requirements.txt qui ne sont pas disponibles publiquement entraînent l’échec de l’action de soumission automatique.

Remarque

Cette action utilise actions/setup-python pour installer Python. Vous devez inclure un . python fichier de version dans votre référentiel pour spécifier la version Python à installer.