Vue d’ensemble
Par défaut, votre codespace se voit affecter un jeton dont l’étendue est délimitée par l’autorisation read
, ou l’autorisation read
et write
pour le dépôt à partir duquel il a été créé. L’étendue de ce jeton change automatiquement dans les circonstances suivantes.
- Si vous créez un codespace pour un dépôt auquel vous avez uniquement accès en lecture, et si vous effectuez ensuite un commit dans le codespace ou pousser une nouvelle branche, GitHub Codespaces lie automatiquement votre codespace à une nouvelle duplication ou à une duplication déjà existante du dépôt, puis met à jour le jeton pour disposer de l’autorisation
read
etwrite
sur la duplication. Pour plus d’informations, consultez « Utilisation du contrôle de code source dans votre espace de code ». - Si vous créez un codespace à partir d’un modèle, et si vous le publiez ensuite sur un nouveau dépôt, GitHub Codespaces met à jour le jeton pour disposer des autorisations
read
etwrite
sur le nouveau dépôt. Pour plus d’informations, consultez « Création d’un codespace à partir d’un modèle ».
Pour plus d’informations, consultez « Sécurité dans GitHub Codespaces ».
Si votre projet a besoin d’autorisations supplémentaires pour d’autres dépôts, vous pouvez les configurer dans le fichier devcontainer.json
, comme décrit dans « Définition d’autorisations de dépôt supplémentaires » plus loin dans cet article. Quand des autorisations sont listées dans le fichier devcontainer.json
, vous êtes invité à passer en revue et autoriser les autorisations supplémentaires dans le cadre de la création du codespace pour ce dépôt. Une fois que vous avez autorisé les autorisations listées, GitHub Codespaces mémorise votre choix et ne vous demande pas d’autorisation, sauf si les autorisations figurant dans le fichier devcontainer.json
changent.
Remarque : la mise à jour des autorisations dans le fichier devcontainer.json
ne modifie pas les autorisations des codespaces existants. Si vous avez besoin d’autorisations supplémentaires dans un codespace existant, consultez « Résolution des problèmes d’authentification dans un dépôt ».
Création de codespaces avec des autorisations personnalisées
Pour créer un codespace avec des autorisations personnalisées, vous devez utiliser l’une des options suivantes :
- L’interface utilisateur web de GitHub
- GitHub CLI 2.5.2 ou version ultérieure
- Extension de GitHub Codespaces Visual Studio Code 1.5.3 ou version ultérieure
Définition d’autorisations de dépôt supplémentaires
Vous configurez les autorisations de référentiel pour GitHub Codespaces dans un fichier devcontainer.json
. Toutes les autorisations personnalisées que vous ajoutez ou modifiez s’appliquent uniquement aux nouveaux codespaces créés une fois que vos modifications ont été validées dans le référentiel. Si vous ajoutez ou modifiez des autorisations à partir d’un codespace, ces autorisations ne s’appliquent pas au codespace actuel, même si vous régénérez le codespace.
-
Si votre dépôt ne contient pas encore de fichier
devcontainer.json
, ajoutez-en un maintenant. Pour plus d’informations, consultez « Ajout d’une configuration de conteneur de développement à votre dépôt ». -
Modifiez le fichier
devcontainer.json
, en ajoutant le nom du dépôt et les autorisations nécessaires à l’objetrepositories
:JSON { "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
{ "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
Remarques :
- Vous pouvez uniquement référencer des dépôts qui appartiennent au même compte personnel ou à la même organisation que le dépôt dans lequel vous travaillez actuellement.
- Vous pouvez utiliser le caractère générique
*
pour accorder des autorisations à plusieurs référentiels d’une organisation. Par exemple, pour accorder des autorisations à tous les référentiels demy_org
l’organisationmy_org/*
. Cette syntaxe n’est valide que pour les codespaces. Dans tous les fichiersdevcontainer.json
utilisés pour les prébuilds, vous devez définir des autorisations pour chaque référentiel séparément. Pour plus d’informations, consultez « Autorisation d’une prébuild à accéder à d’autres dépôts ».
Vous pouvez octroyer le nombre souhaité d’autorisations suivantes pour chaque dépôt listé :
actions
– lecture / écriturechecks
– lecture / écriturecontents
– lecture / écrituredeployments
– lecture / écriturediscussions
– lecture / écritureissues
– lecture / écriturepackages
– lecturepages
– lecture / écriturepull_requests
– lecture / écriturerepository_projects
– lecture / écriturestatuses
– lecture / écritureworkflows
– écriture
Pour définir une autorisation pour un référentiel dans une organisation, vous devez ajouter explicitement ce nom de référentiel dans l’objet
repositories
.{ "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
Pour définir toutes les autorisations pour un dépôt donné, utilisez
"permissions": "read-all"
ou"permissions": "write-all"
dans l’objet de dépôt.{ "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": "write-all" } } } } }
Acceptation des autorisations demandées
Si des autorisations de dépôt supplémentaires sont définies dans le fichier devcontainer.json
, vous êtes invité à les passer en revue et éventuellement de les accepter quand vous créez un codespace ou une configuration de prébuild pour ce dépôt. Quand vous acceptez des autorisations pour un dépôt, GitHub Codespaces ne vous réinvite pas à les passer en revue, sauf si l’ensemble d’autorisations demandées a changé pour le dépôt.
Vous devez uniquement accepter les autorisations pour les dépôts que vous connaissez et en lesquels vous avez confiance. Si vous n’approuvez pas l’ensemble des autorisations demandées, cliquez sur Continuer sans autoriser pour créer le codespace avec l’ensemble d’autorisations de base. Le refus d’autorisations supplémentaires peut avoir des répercussions sur le fonctionnement de votre projet au sein du codespace, car ce dernier n’a alors accès qu’au dépôt à partir duquel il a été créé.
Vous pouvez uniquement accepter des autorisations que votre compte personnel possède déjà. Si un codespace demande des autorisations pour des dépôts auxquels vous n’avez pas actuellement accès, contactez leur propriétaire ou administrateur pour obtenir l’accès suffisant, puis réessayez de créer un codespace.