À propos de la soumission automatique des dépendances
Note
La soumission automatique des dépendances n’est actuellement prise en charge que pour Maven.
Le graphe des dépendances analyse le manifeste et verrouille les fichiers dans un dépôt afin d’aider les utilisateurs à comprendre les dépendances dont dépend le dépôt. Toutefois, dans certains écosystèmes, la résolution des dépendances transitives se produit au moment de la génération, et les données GitHub ne peuvent pas détecter automatiquement toutes les dépendances en fonction du contenu du dépôt seul.
Lorsque vous activez la soumission automatique de dépendances pour un dépôt, GitHub identifie automatiquement les dépendances transitives dans le dépôt et envoie ces dépendances à GitHub avec API de soumission de dépendances. Vous pouvez ensuite signaler ces dépendances à l’aide du graphe des dépendances.
L’utilisation des soumissions de dépendances automatiques compte dans vos minutes GitHub Actions. Pour plus d’informations, consultez « À propos de la facturation de GitHub Actions ».
Si vous le souhaitez, vous pouvez choisir de configurer des exécuteurs auto-hébergés ou des exécuteurs plus grands hébergés par GitHub pour la soumission automatique de dépendances. Pour plus d’informations, consultez « Utilisation des exécuteurs auto-hébergés pour la soumission automatique des dépendances » et « Utilisation des exécuteurs de plus grande taille hébergés par GitHub pour la soumission automatique des dépendances ».
Prérequis
Le graphe des dépendances doit être activé pour que le dépôt vous permette d’activer la soumission automatique des dépendances.
Vous devez également activer GitHub Actions pour le dépôt afin d’utiliser l’envoi automatique de dépendances. Pour plus d’informations, consultez « Gestion des paramètres de GitHub Actions pour un dépôt ».
Activation de la soumission automatique des dépendances
Les administrateurs de dépôt peuvent activer ou désactiver la soumission automatique des dépendances pour un dépôt en suivant les étapes décrites dans cette procédure.
Les propriétaires d’organisation peuvent activer la soumission automatique des dépendances pour plusieurs dépôts à l’aide d’une configuration de sécurité. Pour plus d’informations, consultez « Création d’une configuration de sécurité personnalisée ».
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.
-
Dans la section « Sécurité » de la barre latérale, cliquez sur Sécurité du code.
-
Sous « Graphe des dépendances », cliquez sur le menu déroulant en regard de « Soumission automatique des dépendances », puis sélectionnez Activé.
Une fois que vous avez activé l’envoi automatique de dépendances pour un dépôt, GitHub effectue les actions suivantes :
- Surveillez les modifications apportées au fichier
pom.xml
à la racine du dépôt sur toutes les branches du dépôt. - Effectuez une soumission automatique des dépendances à chaque modification.
Vous pouvez afficher des détails sur les flux de travail automatiques exécutés en affichant l’onglet Actions de votre dépôt.
Note
La soumission automatique se produit lors de la première transmission (push) vers le fichier pom.xml
une fois l’option activée.
Utilisation d’exécuteurs auto-hébergés pour la soumission automatique des dépendances
Vous pouvez configurer des exécuteurs auto-hébergés pour exécuter des travaux de soumission de dépendances automatiques, au lieu d’utiliser l’infrastructure GitHub Actions.
- Provisionnez un ou plusieurs exécuteurs auto-hébergés au niveau du dépôt ou de l’organisation. Pour plus d’informations, consultez « À propos des exécuteurs auto-hébergés » et « Ajout d’exécuteurs auto-hébergés ». Les exécuteurs auto-hébergés doivent s’exécuter sur Linux ou macOS, et doivent avoir Docker installé.
- Attribuez une étiquette
dependency-submission
à chaque exécuteur que vous souhaitez utiliser pour l’envoi automatique des dépendances. Pour plus d’informations, consultez « Utilisation d’étiquettes avec des exécuteurs auto-hébergés ». - Dans la section « Sécurité » de la barre latérale, cliquez sur Sécurité du code.
- Sous « Graphe des dépendances », cliquez sur le menu déroulant en regard de « Soumission automatique des dépendances », puis sélectionnez Activé pour les exécuteurs étiquetés.
Une fois activés, les travaux automatiques de soumission des dépendances s’exécutent sur les exécuteurs auto-hébergés, sauf si :
- Les exécuteurs auto-hébergés ne sont pas disponibles.
- Aucun groupe d’exécuteurs n’est marqué avec une étiquette
dependency-submission
.
Note
Lorsque vous utilisez des exécuteurs auto-hébergés, vous devez ajouter l’accès au fichier de paramètres du serveur Maven afin de permettre aux flux de travail de soumission des dépendances de se connecter aux registres privés. Les dépendances des registres privés seront incluses dans l’arborescence des dépendances dans la prochaine mise à jour de pom.xml
. Pour plus d’informations sur le fichier de paramètres du serveur Maven, consultez Paramètres de sécurité et de déploiement dans la documentation Maven.
Utilisation d’exécuteurs plus grands hébergés par GitHub pour la soumission automatique de dépendances
Les utilisateurs de GitHub Team ou GitHub Enterprise Cloud peuvent utiliser des exécuteurs plus grands pour exécuter des travaux de soumissions de dépendances automatiques.
- Provisionnez un exécuteur de plus grande taille au niveau de l’organisation avec le nom
dependency-submission
. Pour plus d’informations, consultez « Ajout d’un exécuteur plus grand à une organisation ». - Donnez à votre dépôt l’accès à l’exécuteur. Pour plus d’informations, consultez « Autoriser des référentiels à accéder à des exécuteurs plus grands ».
- Sous « Graphe des dépendances », cliquez sur le menu déroulant en regard de « Soumission automatique des dépendances », puis sélectionnez Activé pour les exécuteurs étiquetés.
Résolution des problèmes liés à la soumission automatique des dépendances
La soumission automatique des dépendances n’est actuellement prise en charge que pour Maven. La fonctionnalité utilise l’action Soumission de dépendances Maven Dependency Tree. Pour plus d’informations, consultez la documentation relative à l’action Soumission de dépendances Maven Dependency Tree dans la GitHub Marketplace. Si votre projet utilise une configuration Maven non standard, il peut ne pas générer correctement les dépendances et les soumettre au graphe des dépendances.
La soumission automatique de dépendances permet de mettre en cache les téléchargements de packages entre les exécutions à l’aide de l’action cache pour accélérer les flux de travail. Pour les runners auto-hébergés, il se peut que vous souhaitiez 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 ».