Skip to main content

Gewähren von Zugriff auf andere Repositorys durch einen Pebuild

Du kannst deinem Prebuild den Zugriff auf andere GitHub-Repositorys gestatten, damit er erfolgreich erstellt werden kann.

Wer kann dieses Feature verwenden?

People with admin access to a repository can configure prebuilds for the repository.

Einstellungen auf Repositoryebene für GitHub Codespaces sind für alle Repositorys verfügbar, die persönlichen Konten gehören.

Für Repositorys im Besitz von Organisationen sind Einstellungen auf Repositoryebene für GitHub Codespaces für Organisationen in GitHub Team und GitHub Enterprise-Plänen verfügbar. Um auf die Einstellungen zugreifen zu können, muss die Organisation oder ihr Stammunternehmen eine Zahlungsmethode hinzugefügt und ein Ausgabenlimit für GitHub Codespaces festgelegt haben. Weitere Informationen findest du unter Auswählen der Besitzerinnen und Zahlerinnen von Codespaces in deiner Organisation und unter GitHub-Pläne.

Der GitHub Actions-Workflow für eine Prebuildkonfiguration kann standardmäßig nur auf Inhalte im eigenen Repository zugreifen. Dein Projekt verwendet für die Erstellung der Entwicklungsumgebung möglicherweise zusätzliche Ressourcen, die sich an anderer Stelle befinden.

Gewähren von Lesezugriff auf externe Ressourcen durch einen Prebuild

Du kannst Lesezugriff auf andere GitHub-Repositorys mit dem bzw. der gleichen Repositorybesitzer*in konfigurieren, indem du Berechtigungen in der von der Prebuildkonfiguration verwendeten devcontainer.json-Datei angibst. Weitere Informationen findest du unter Verwalten des Zugriffs auf andere Repositorys innerhalb deines Codespace.

Hinweise:

  • Du kannst nur Leseberechtigungen auf diese Weise autorisieren, und der bzw. die Besitzerin des Zielrepositorys müssen dem bzw. der Besitzerin des Repositorys entsprechen, für das du einen Prebuild erstellst. Wenn du z. B. eine Prebuildkonfiguration für das octo-org/octocatrepository erstellst, kannst du Leseberechtigungen für andere Repositorys (wie asocto-org/octodemo) erteilen, wenn dies in der Datei devcontainer.json angegeben ist und du selbst über diese Berechtigungen verfügst.
  • Sie können keine Platzhalter zum Angeben von Repositorys verwenden. Sie müssen Berechtigungen für jedes Repository definieren, für das Sie Zugriff gewähren möchten.

Beim Erstellen oder Bearbeiten einer Prebuildkonfiguration für eine devcontainer.json-Datei, die Lesezugriff auf andere Repositorys mit dem bzw. der gleichen Repositorybesitzer*in einrichtet, wirst du aufgefordert, diese Berechtigungen zu erteilen, wenn du auf Erstellen oder Aktualisieren klickst. Weitere Informationen findest du unter Konfigurieren von Prebuilds.

Gewähren von Schreibzugriff auf externe Ressourcen durch einen Prebuild

Wenn dein Projekt Schreibzugriff auf Ressourcen benötigt, oder wenn sich die externen Ressourcen in einem Repository mit einem anderen Besitzer befinden als das Repository, für das du eine Prebuildkonfiguration erstellst, kannst du ein personal access token verwenden, um diesen Zugriff zu gewähren.

Du musst ein neues persönliches Konto erstellen und mit diesem Konto ein personal access token (classic) mit den geeigneten Bereichen generieren.

  1. Erstelle auf GitHub ein neues persönliches Konto.

    Warnung: Auch wenn du das personal access token (classic) mit deinem bestehenden persönlichen Konto generieren kannst, wird dringend empfohlen, ein neues Konto zu erstellen, das nur auf die Zielrepositorys zugreifen kann, die für dein Szenario benötigt werden. Dies wird empfohlen, da die repository-Berechtigung des Zugriffstokens den Zugriff auf alle Repositorys ermöglicht, auf die das Konto zugreifen kann. Weitere Informationen findest du unter Erstellen eines Kontos auf GitHub und unter Sicherheitshärtung für GitHub Actions.

  2. Erteile dem neuen Konto Lesezugriff auf die benötigten Repositorys. Weitere Informationen findest du unter Den Zugriff einer Person auf ein Repository einer Organisation verwalten.

  3. Erstelle ein personal access token (classic) mit dem Bereich repo, nachdem du dich bei dem neuen Konto angemeldet hast. Wähle optional den read:packages-Geltungsbereich aus, wenn der Prebuild die Pakete aus der GitHub Container registry herunterladen muss. Weitere Informationen findest du unter Verwalten deiner persönlichen Zugriffstoken.

    Screenshot der Konfigurationsoptionen „Bereiche auswählen“ für ein personal access token (classic), mit ausgewählten Bereichen „repo“ und „read:packages“.

    Wenn der Prebuild ein Paket aus der GitHub Container registry nutzt, musst du dem neuen Konto entweder den Zugriff auf das Paket gewähren oder das Paket so konfigurieren, dass es die Zugriffsberechtigungen des Repositorys erbt, das gerade vorab erstellt wird. Weitere Informationen findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.

  4. Klicke auf SSO konfigurieren, und autorisiere das Token für die Verwendung mit SAML-SSO (Single Sign-On, einmaliges Anmelden), damit es auf Repositorys zugreifen kann, die sich im Besitz von Organisationen mit aktiviertem SSO befinden. Weitere Informationen findest du unter Ein persönliches Zugriffstoken für die Verwendung mit SAML Single Sign-On autorisieren.

    Screenshot der Seite „Personal access tokens (classic)“. Die Schaltfläche „SSO konfigurieren“ für ein PAT ist dunkelorange umrandet.

  5. Kopiere die Tokenzeichenfolge. Weise diese einem Codespaces-Repositorygeheimnis zu.

  6. Melde dich wieder bei dem Konto an, das über den Administratorzugriff auf das Repository verfügt.

  7. Erstelle im Repository, für das du GitHub Codespaces-Prebuilds erstellen möchtest, ein neues Codespaces-Repositorygeheimnis namens CODESPACES_PREBUILD_TOKEN, und gib ihm den Wert des von dir erstellen und kopierten Tokens. Weitere Informationen findest du unter Verwalten von Entwicklungsumgebungs-Geheimnissen für Ihr Repository oder Ihre Organisation.

Das personal access token wird für alle nachfolgenden Prebuilds verwendet, die für dein Repository erstellt werden. Im Gegensatz zu anderen Codespaces-Repository-Geheimnissen wird das CODESPACES_PREBUILD_TOKEN-Geheimnis nur für das Prebuilding verwendet und kann nicht in Codespaces verwendet werden, die aus deinem Repository erstellt wurden.

Weiterführende Themen