Skip to main content

Manuelles Synchronisieren von Aktionen über GitHub.com

Für Benutzer*innen, die Zugriff auf Aktionen von GitHub.com benötigen, kannst du bestimmte Aktionen in deinem Unternehmen synchronisieren.

Hinweis: GitHub-gehostete Runner werden auf GitHub Enterprise Server derzeit nicht unterstützt. Weitere Informationen zur geplanten zukünftigen Unterstützung findest Du in der GitHub public roadmap.

GitHub Actions auf GitHub Enterprise Server sind für die Arbeit in Umgebungen ohne vollständigen Internetzugriff konzipiert. Standardmäßig können Workflows keine Aktionen aus GitHub.com und GitHub Marketplace verwenden.

Wenn du Zugriff auf Aktionen von GitHub.com aktivieren möchtest, besteht die empfohlene Vorgehensweise darin, automatischen Zugriff auf alle Aktionen zu aktivieren. Dazu verwendest du GitHub Connect, um GitHub Enterprise Server mit GitHub Enterprise Cloud zu integrieren. Weitere Informationen findest du unter Aktivieren des automatischen Zugriffs auf GitHub.com-Aktionen mithilfe von GitHub Connect.

Wenn du jedoch eine strengere Kontrolle darüber wünschst, welche Aktionen in deinem Unternehmen zulässig sind, kannst diesem Leitfaden folgen, um das Open-Source-actions-sync-Tool von GitHub dazu zu verwenden, einzelne Aktionsrepositorys von GitHub.com mit deinem Unternehmen zu synchronisieren.

Informationen zum actions-sync-Tool

Das actions-sync-Tool muss auf einem Computer ausgeführt werden, von dem auf die GitHub.com-API sowie auf die API deiner GitHub Enterprise Server-Instanz zugegriffen werden kann. Der Computer muss nicht gleichzeitig mit beiden APIs verbunden sein.

Wenn mit dem Computer auf beide Systeme gleichzeitig zugegriffen werden kann, kannst du die Synchronisierung mit einem einzelnen actions-sync sync-Befehl ausführen. Wenn du jeweils nur auf ein System zugreifen kannst, kannst du die Befehle actions-sync pull und push verwenden.

Mit dem actions-sync-Tool können nur Aktionen von GitHub.com heruntergeladen werden, die in öffentlichen Repositorys gespeichert sind.

Hinweis: Das actions-sync-Tool ist für die Verwendung auf Systemen vorgesehen, auf denen GitHub Connect nicht aktiviert ist. Wenn du das Tool auf einem System ausführst, auf dem GitHub Connect aktiviert ist, wird möglicherweise der Fehler The repository <repo_name> has been retired and cannot be reused angezeigt. Dies deutet darauf hin, dass ein Workflow die Aktion direkt auf GitHub.com verwendet hat und der Namespace auf your GitHub Enterprise Server instance deaktiviert ist. Weitere Informationen findest du unter Automatisches Deaktivieren von Namespaces für Aktionen, auf die über GitHub.com zugegriffen wird.

Voraussetzungen

  • Bevor du das actions-sync-Tool verwendest, musst du dich vergewissern, dass alle Zielorganisationen bereits in deinem Unternehmen vorhanden bist. Im folgenden Beispiel wird veranschaulicht, wie Aktionen mit einer Organisation namens synced-actions synchronisiert werden. Weitere Informationen findest du unter Erstellen einer neuen Organisation von Grund auf.

  • Du musst ein persönliches Zugriffstoken personal access token für dein Unternehmen erstellen, mit dem das Erstellen und Schreiben in Repositorys in den Zielorganisationen möglich ist. Weitere Informationen findest du unter Erstellen eines personal access token.

  • Wenn du die gebündelten Aktionen in der Organisation actions in your GitHub Enterprise Server instance synchronisieren möchtest, musst du Besitzer der Organisation actions sein.

    Hinweis: Standardmäßig sind nicht einmal Websiteadministratoren Besitzer der Organisation actions mit den gebündelten Aktionen.

    Websiteadministratoren können den Befehl ghe-org-admin-promote in der Verwaltungsshell verwenden, um einen Benutzer zum Besitzer der Organisation actions mit den gebündelten Aktionen hochzustufen. Weitere Informationen findest du unter Zugreifen auf die Verwaltungsshell (SSH) und 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"

    Im obigen Befehl werden die folgenden Argumente verwendet:

    • --cache-dir: Das Cacheverzeichnis auf dem Computer, auf dem der Befehl ausgeführt wird.

    • --destination-token: Ein personal access token für die Zielunternehmensinstanz.

    • --destination-url: Die URL der Zielunternehmensinstanz.

    • --repo-name: Das Aktionsrepository, das synchronisiert werden soll. Dieses nimmt das Format owner/repository:destination_owner/destination_repository an.

      • Im obigen Beispiel wird das Repository actions/stale mit dem Repository synced-actions/actions-stale in der Zielunternehmensinstanz synchronisiert. Du musst die Organisation namens synced-actions in deinem Unternehmen erstellen, bevor du den obigen Befehl ausführst.
      • Wenn du :destination_owner/destination_repository weglässt, wird vom Tool der ursprüngliche Besitzer- und Repositoryname für dein Unternehmen verwendet. Bevor du den Befehl ausführst, musst du eine neue Organisation in deinem Unternehmen erstellen, die dem Besitzernamen der Aktion entspricht. Verwende am besten eine zentrale Organisation, um die synchronisierten Aktionen in deinem Unternehmen zu speichern, da dies bedeutet, dass du nicht mehrere neue Organisationen erstellen musst, wenn du Aktionen von verschiedenen Besitzern synchronisierst.
      • Du kannst mehrere Aktionen synchronisieren, indem du den Parameter --repo-name durch --repo-name-list oder --repo-name-list-file ersetzt. Weitere Informationen findest du in der actions-sync-Infodatei.
  4. Nachdem das Aktionsrepository in deinem Unternehmen erstellt wurde, können Personen in deinem Unternehmen das Zielrepository verwenden, um in ihren Workflows auf die Aktion zu verweisen. Für die oben gezeigte Beispielaktion:

    uses: synced-actions/actions-stale@v1
    

    Weitere Informationen findest du unter Workflowsyntax für GitHub Actions.