Skip to main content

Autorisation d’une prébuild à accéder à d’autres dépôts

Vous pouvez autoriser votre prébuild à accéder à d’autres référentiels GitHub pour qu’il puisse être construit correctement.

Qui peut utiliser cette fonctionnalité ?

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

Les paramètres au niveau du dépôt de GitHub Codespaces sont disponibles pour tous les dépôts appartenant à des comptes personnels.

Pour les dépôts appartenant à des organisations, les paramètres au niveau du dépôt de GitHub Codespaces sont disponibles pour les organisations sur les plans GitHub Team et GitHub Enterprise. Pour accéder aux paramètres, l’organisation ou son entreprise parente doit avoir ajouté un mode de paiement et défini une limite de dépense pour GitHub Codespaces. Pour plus d’informations, consultez « Choisir qui possède et achète les codespaces dans votre organisation » et « plans de GitHub ».

Par défaut, le GitHub Actions flux de travail d’une configuration de prébuild ne peut accéder qu’à son propre contenu de référentiel. Votre projet peut utiliser des ressources supplémentaires, situées ailleurs, pour créer l’environnement de développement.

Autoriser l’accès en lecture avant compilation aux ressources externes

Vous pouvez configurer l’accès en lecture à d’autres GitHub référentiels, avec le même propriétaire de référentiel, en spécifiant des autorisations dans le devcontainer.json fichier utilisé par votre configuration de prébuild. Pour plus d’informations, consultez « Gestion de l’accès à d’autres dépôts dans votre codespace ».

Remarque

  • Vous ne pouvez accorder qu'une autorisation d'accès en lecture de cette manière, et le propriétaire du référentiel cible doit être le même que celui du référentiel pour lequel vous créez une préversion. Par exemple, si vous créez une configuration de préversion de octo-org/octocatrepository, vous pourrez accorder des autorisations de lecture à d'autres référentiels tels que octo-org/octodemo, si cela est spécifié dans le fichier devcontainer.json, à condition que vous disposiez vous-même des autorisations.
  • Vous ne pouvez pas utiliser des caractères génériques pour spécifier des référentiels. Vous devez définir des autorisations pour chaque référentiel auquel vous souhaitez accorder l'accès.

Lorsque vous créez ou modifiez une configuration de prébuild pour un fichier devcontainer.json qui configure l’accès en lecture à d’autres dépôts avec le même propriétaire de dépôt, vous êtes invité à accorder ces autorisations lorsque vous cliquez sur Créer ou Mettre à jour. Pour plus d’informations, consultez « Configuration des prébuilds ».

Autoriser l’accès en écriture avant compilation aux ressources externes

Si votre projet nécessite un accès en écriture aux ressources ou si les ressources externes résident dans un référentiel avec un propriétaire différent du référentiel pour lequel vous créez une configuration de prébuild, vous pouvez utiliser un personal access token pour accorder cet accès.

Vous devrez créer un nouveau compte personnel, puis utiliser ce compte pour créer un personal access token (classic) avec les autorisations appropriées.

  1. Créez un compte personnel sur GitHub.

    Avertissement

    Bien que vous puissiez générer le personal access token (classic) à l’aide de votre compte personnel existant, nous vous recommandons vivement de créer un nouveau compte qui a accès uniquement aux référentiels cibles nécessaires à votre scénario. En effet, l’autorisation repository du jeton d’accès octroie un accès à tous les dépôts auxquels le compte a accès. Pour plus d’informations, consultez « Création d’un compte sur GitHub » et « Informations de référence sur l’utilisation sécurisée ».

  2. Octroyez au nouveau compte un accès en lecture aux dépôts nécessaires. Pour plus d’informations, consultez « Gestion de l’accès d’une personne à un dépôt d’organisation ».

  3. Une fois connecté au nouveau compte, créez personal access token (classic) avec la portée repo. Si nécessaire, si la préconstruction doit télécharger des paquets depuis GitHubContainer registry, sélectionnez également la portée read:packages. Pour plus d’informations, consultez « Gestion de vos jetons d’accès personnels ».

    Capture d’écran des options de configuration « Sélectionner les étendues » pour un personal access token (classic), avec les étendues « référentiel » et « read:packages » sélectionnées.

    Si la préconstruction utilise un package provenant de GitHubContainer registry, vous devrez soit accorder au nouveau compte l’accès à ce package, soit configurer le package pour qu’il hérite des autorisations d’accès du dépôt que vous êtes en train de préconstruire. Pour plus d’informations, consultez « Configuration du contrôle d’accès et de la visibilité d’un package ».

  4. Cliquez sur Configurer SSO et autorisez l’utilisation du jeton avec une authentification unique (SSO) SAML afin que ce dernier puisse accéder aux référentiels appartenant à des organisations pour lesquelles l’authentification unique est activée. Pour plus d’informations, consultez « Autorisation d’un jeton d’accès personnel à utiliser avec l’authentification unique ».

    Capture d’écran de la page « Personal access tokens (classic) ». Le bouton « Configurer l’authentification unique » pour un PAT est mis en surbrillance avec un contour orange foncé.

  5. Copiez la chaîne du jeton. Vous l’affecterez à un Codespaces secret de dépôt.

  6. Reconnectez-vous au compte qui dispose d’un accès administrateur au dépôt.

  7. Dans le dépôt pour lequel vous souhaitez créer des prébuilds GitHub Codespaces, créez un nouveau secret de dépôt Codespaces appelé CODESPACES_PREBUILD_TOKEN, en lui attribuant la valeur du jeton que vous avez créé et copié. Pour plus d’informations, consultez « Gestion des secrets d’environnement de développement pour votre référentiel ou votre organisation ».

Le personal access token sera utilisé pour toutes les précompilations ultérieures créées pour votre référentiel. Contrairement aux autres secrets du dépôt Codespaces, le secret CODESPACES_PREBUILD_TOKEN est utilisé uniquement pour la préconstruction et ne sera pas disponible dans les codespaces créés à partir de votre dépôt.

Pour aller plus loin