Remarque : Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.
GitHub Actions sur GitHub Enterprise Server est conçu pour fonctionner dans des environnements n’ayant pas un accès à Internet complet. Par défaut, les workflows ne peuvent pas utiliser les actions de GitHub.com et de GitHub Marketplace.
L’approche recommandée d’activation de l’accès aux actions à partir de GitHub.com consiste à activer l’accès automatique à toutes les actions. Pour cela, utilisez GitHub Connect pour intégrer GitHub Enterprise Server à GitHub Enterprise Cloud. Pour plus d’informations, consultez « Activer l’accès automatique aux actions GitHub.com à l’aide de GitHub Connect ».
Toutefois, si vous souhaitez un contrôle plus strict sur les actions autorisées dans votre entreprise, vous pouvez suivre ce guide pour utiliser l’outil open source actions-sync
de GitHub pour synchroniser des référentiels d’actions individuels de GitHub.com avec votre entreprise.
À propos de l’outil actions-sync
L’outil actions-sync
doit être exécuté sur une machine qui peut accéder à l’API GitHub.com et à l’API de votre instance GitHub Enterprise Server. La machine n’a pas besoin d’être connectée aux deux en même temps.
Si votre machine a accès aux deux systèmes en même temps, vous pouvez effectuer la synchronisation avec une seule commande actions-sync sync
. Si vous ne pouvez accéder qu’à un seul système à la fois, vous pouvez utiliser les commandes actions-sync pull
et push
.
L’outil actions-sync
ne peut télécharger que des actions sur GitHub.com stockées dans des référentiels publics.
Remarque : L’outil actions-sync
est destiné à être utilisé dans les systèmes où GitHub Connect n’est pas activé. Si vous exécutez l’outil sur un système avec GitHub Connect activé, vous pourriez voir l’erreur The repository <repo_name> has been retired and cannot be reused
. Cela indique qu’un workflow a utilisé cette action directement sur GitHub.com et que l’espace de noms est supprimé sur votre instance GitHub Enterprise Server. Pour plus d’informations, consultez « Activer l’accès automatique aux actions GitHub.com à l’aide de GitHub Connect ».
Prérequis
-
Avant d’utiliser l’outil
actions-sync
, vous devez vous assurer que toutes les organisations de destination existent déjà dans votre entreprise. L’exemple suivant montre comment synchroniser des actions avec une organisation nomméesynced-actions
. Pour plus d’informations, consultez « Création d’une organisation à partir de zéro ». -
Vous devez créer un personal access token dans votre entreprise, qui peut créer et écrire sur les dépôts des organisations de destination. Pour plus d’informations, consultez « Gestion de vos jetons d'accès personnels ».
-
Si vous souhaitez synchroniser les actions groupées dans l’organisation
actions
sur votre instance GitHub Enterprise Server, vous devez être propriétaire de l’organisationactions
.Remarque : Par défaut, même les administrateurs de site ne sont pas propriétaires de l’organisation groupée
actions
.Les administrateurs de site peuvent utiliser la commande
ghe-org-admin-promote
dans l’interpréteur de commandes d’administration pour promouvoir un utilisateur comme propriétaire de l’organisation groupéeactions
. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) » et « Utilitaires de ligne de commande ».ghe-org-admin-promote -u USERNAME -o actions
Example: Using the actions-sync
tool
This example demonstrates using the actions-sync
tool to sync an individual action from GitHub.com to an enterprise instance.
Note: This example uses the actions-sync sync
command, which requires concurrent access to both the GitHub.com API and your enterprise instance's API from your machine. If you can only access one system at a time, you can use the actions-sync pull
and push
commands. For more information, see the actions-sync
README.
-
Download and extract the latest
actions-sync
release for your machine's operating system. -
Create a directory to store cache files for the tool.
-
In your terminal, change to the
bin
directory within the release directory you just extracted. For example:cd PATH/TO/gh_DATETIME_OS_ARCHITECTURE/bin
-
Exécutez la commande
actions-sync sync
:./actions-sync sync \ --cache-dir "cache" \ --destination-token "aabbccddeeffgg" \ --destination-url "https://my-ghes-instance" \ --repo-name "actions/stale:synced-actions/actions-stale"
La commande ci-dessus utilise les arguments suivants :
-
--cache-dir
: répertoire de cache sur la machine exécutant la commande. -
--destination-token
: personal access token pour l’instance d’entreprise de destination. -
--destination-url
: URL de l’instance d’entreprise de destination. -
--repo-name
: référentiel d’actions à synchroniser. Prend le formatowner/repository:destination_owner/destination_repository
.- L’exemple ci-dessus synchronise le référentiel
actions/stale
vers le référentielsynced-actions/actions-stale
sur l’instance d’entreprise de destination. Vous devez créer l’organisation nomméesynced-actions
dans votre entreprise avant d’exécuter la commande ci-dessus. - Si vous omettez
:destination_owner/destination_repository
, l’outil utilise le nom du propriétaire et du référentiel d’origine pour votre entreprise. Avant d’exécuter la commande, vous devez créer une organisation dans votre entreprise qui correspond au nom du propriétaire de l’action. Envisagez d’utiliser une organisation centrale pour stocker les actions synchronisées dans votre entreprise, car cela signifie que vous n’aurez pas besoin de créer plusieurs organisations si vous synchronisez des actions de différents propriétaires. - Vous pouvez synchroniser plusieurs actions en remplaçant le paramètre
--repo-name
par--repo-name-list
ou--repo-name-list-file
. Pour plus d’informations, consultez le README deactions-sync
.
- L’exemple ci-dessus synchronise le référentiel
-
-
Une fois le référentiel d’actions créé dans votre entreprise, les personnes de votre entreprise peuvent utiliser le référentiel de destination pour référencer l’action dans leurs workflows. Pour l’exemple d’action présenté ci-dessus :
uses: synced-actions/actions-stale@v1
Pour plus d’informations, consultez « Workflow syntax for GitHub Actions ».