Note
Auf GitHub gehostete Runner werden aktuell nicht auf GitHub Enterprise Server 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.
Es wird empfohlen, den automatischen Zugriff auf alle Aktionen mithilfe von GitHub Connect zu aktivieren, um GitHub Enterprise Server in GitHub Enterprise Cloud zu integrieren. Weitere Informationen findest du unter Aktivieren des automatischen Zugriffs auf GitHub.com-Aktionen mit GitHub Connect.
Wenn Sie jedoch eine strengere Kontrolle darüber wünschen, welche Aktionen in Ihrem Unternehmen zulässig sind, können Sie dieser Anleitung folgen, um mit dem Open-Source-Tool actions-sync
einzelne Aktionsrepositorys von GitHub.com mit Ihrem Unternehmen zu synchronisieren.
Beim Upgraden von GitHub Enterprise Server werden gebündelte Aktionen automatisch durch die Standardversionen im Upgradepaket ersetzt. Dabei handelt es sich unter Umständen nicht um die neueste verfügbare Version. Als bewährte Methode sollten Sie beim Aktualisieren von Aktionen mit actions-sync
nach einem GitHub Enterprise Server-Upgrade (Haupt- oder Nebenversion) actions-sync
stets erneut ausführen, damit die Aktionen auf dem neuesten Stand bleiben.
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.
Note
Das actions-sync
-Tool ist für die Verwendung in Systemen vorgesehen, in 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 Ihre GitHub Enterprise Server-Instance deaktiviert ist. Weitere Informationen findest du unter Aktivieren des automatischen Zugriffs auf GitHub.com-Aktionen mit GitHub Connect.
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 namenssynced-actions
synchronisiert werden. Weitere Informationen findest du unter Eine neue Organisation von Grund auf erstellen. -
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 Verwalten deiner persönlichen Zugriffstoken.
-
Wenn du die gebündelten Aktionen in der Organisation
actions
in Ihre GitHub Enterprise Server-Instance synchronisieren möchtest, musst du Besitzer der Organisationactions
sein.Note
Standardmäßig sind nicht einmal Siteadministratoren Besitzer der
actions
-Organisation mit den gebündelten Aktionen.Websiteadministratoren können den Befehl
ghe-org-admin-promote
in der Verwaltungsshell verwenden, um einen Benutzer zum Besitzer der Organisationactions
mit den gebündelten Aktionen hochzustufen. Informationen findest du unter Auf die Verwaltungsshell (SSH) zugreifen und Befehlszeilenprogramme.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. 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
-
Führen Sie den Befehl
actions-sync sync
aus:./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 Formatowner/repository:destination_owner/destination_repository
an.- Im obigen Beispiel wird das Repository
actions/stale
mit dem Repositorysynced-actions/actions-stale
in der Zielunternehmensinstanz synchronisiert. Du musst die Organisation namenssynced-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 finden Sie in der INFODATEI vonactions-sync
.
- Im obigen Beispiel wird das Repository
-
-
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.