Skip to main content

Gestion de l’accès à d’autres dépôts dans votre codespace

Vous pouvez gérer les référentiels auxquels GitHub Codespaces a accès.

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 et write 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 et write 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 :

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.

  1. 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 ».

  2. Modifiez le fichier devcontainer.json, en ajoutant le nom du dépôt et les autorisations nécessaires à l’objet repositories :

    JSON
    {
      "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 de my_org l’organisation my_org/*. Cette syntaxe n’est valide que pour les codespaces. Dans tous les fichiers devcontainer.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 / écriture
    • checks – lecture / écriture
    • contents – lecture / écriture
    • deployments – lecture / écriture
    • discussions – lecture / écriture
    • issues – lecture / écriture
    • packages – lecture
    • pages – lecture / écriture
    • pull_requests – lecture / écriture
    • repository_projects – lecture / écriture
    • statuses – lecture / écriture
    • workflows – é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.

Capture d’écran de la page des autorisations demandées. Deux autorisations s’affichent comme demandé : l’autorisation en lecture pour les métadonnées et l’autorisation en écriture pour les problèmes.

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.

Pour aller plus loin