Par défaut, le workflow GitHub Actions d’une configuration de prébuild peut uniquement accéder au contenu de son propre dépôt. Votre projet peut utiliser des ressources supplémentaires, situées ailleurs, pour créer l’environnement de développement.
Autorisation d’une prébuild à accéder en lecture à des ressources externes
Vous pouvez configurer l’accès en lecture à d’autres dépôts GitHub avec le même propriétaire de dépôt, en spécifiant des autorisations dans le fichier devcontainer.json
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 pouvez accorder uniquement des autorisations en lecture de cette façon, et le propriétaire du dépôt cible doit être le même que le propriétaire du dépôt pour lequel vous créez une prébuild. Par exemple, si vous créez une configuration de prébuild pour le référentiel octo-org/octocat
, vous pouvez accorder des autorisations en lecture pour d’autres référentiels octo-org/octodemo
si cela est spécifié dans le fichier devcontainer.json
et que vous disposez vous-même des autorisations.
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 ».
Autorisation d’une prébuild à accéder en écriture à des ressources externes
Si votre projet a besoin d’un accès en écriture sur les ressources ou si les ressources externes résident dans un dépôt avec un propriétaire autre que celui du dépôt pour lequel vous créez une configuration de prébuild, vous pouvez utiliser un personal access token pour accorder cet accès.
Vous devez créer un compte personnel et utiliser ce compte pour créer un personal access token (classic) avec les étendues appropriées.
-
Créez un compte personnel sur GitHub.
Avertissement : Même si vous pouvez générer le personal access token (classic) en utilisant votre compte personnel existant, nous vous recommandons vivement de créer un autre compte doté uniquement d’un accès aux dépôts cibles nécessaires pour 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 « Inscription à un nouveau compte GitHub » et « Durcissement de la sécurité pour GitHub Actions ». -
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 ».
-
En étant connecté au nouveau compte, créez un personal access token (classic) avec l’étendue
repo
. Éventuellement, si la prébuild a besoin de télécharger des packages à partir de GitHub Container registry, sélectionnez aussi l’étendueread:packages
. Pour plus d’informations, consultez « Création d’un jeton d’accès personnel ».Si la prébuild utilise un package issu de GitHub Container registry, vous avez besoin soit d’octroyer au nouveau compte un accès au package, soit de configurer le package de sorte à ce qu’il hérite des autorisations d’accès du dépôt dont vous créez la prébuild. Pour plus d’informations, consultez « Configuration du contrôle d’accès et de la visibilité d’un package ».
-
Copiez la chaîne du jeton. Vous allez l’attribuer à un secret de dépôt Codespaces.
-
Reconnectez-vous au compte qui dispose d’un accès administrateur au dépôt.
-
Dans le dépôt pour lequel vous voulez créer des prébuilds GitHub Codespaces, créez un secret de dépôt Codespaces appelé
CODESPACES_PREBUILD_TOKEN
, en lui donnant la valeur du jeton que vous avez créé et copié. Pour plus d’informations, consultez « Gestion des secrets chiffrés de votre dépôt et de votre organisation pour GitHub Codespaces ».
Le personal access token est utilisé pour toutes les prébuilds ultérieures créées pour votre dépôt. Contrairement à d’autres secrets de dépôt Codespaces, le secret CODESPACES_PREBUILD_TOKEN
est utilisé uniquement pour créer la prébuild. Il n’est pas disponible pour être utilisé dans des codespaces créés à partir de votre dépôt.