Skip to main content

Synchronisation manuelle des actions à partir de GitHub.com

Pour les utilisateurs qui ont besoin d’accéder aux actions de GitHub.com, vous pouvez synchroniser des actions spécifiques avec votre entreprise.

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 « Activation de 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 your GitHub Enterprise Server instance. Pour plus d’informations, consultez « Mise hors service automatique des espaces de noms pour les actions accessibles sur GitHub.com ».

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ée synced-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 « Création d’un personal access token ».

  • Si vous souhaitez synchroniser les actions groupées dans l’organisation actions sur your GitHub Enterprise Server instance, vous devez être propriétaire de l’organisation actions.

    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ée actions. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) » et « ghe-org-admin-promote ».

    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.

  1. Download and extract the latest actions-sync release for your machine's operating system.

  2. Create a directory to store cache files for the tool.

  3. Run the actions-sync sync command:

    ./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 format owner/repository:destination_owner/destination_repository.

      • L’exemple ci-dessus synchronise le référentiel actions/stale vers le référentiel synced-actions/actions-stale sur l’instance d’entreprise de destination. Vous devez créer l’organisation nommée synced-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 de actions-sync.
  4. 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 « Syntaxe de workflow pour GitHub Actions ».