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"
              }
            }
          }
        }
      }
    }
    

    Remarque : 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 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.

Accès et sécurité

Note de dépréciation : Le paramètre d’accès et de sécurité décrit ci-dessous est maintenant déprécié et documenté ici pour référence uniquement. Pour permettre un accès étendu à d’autres dépôts, ajoutez les autorisations demandées à la définition de votre conteneur de développement pour votre codespace, comme décrit ci-dessus.

Quand vous activez l’accès et la sécurité d’un dépôt dont votre compte personnel est propriétaire, tous les codespaces créés pour ce dépôt ont des autorisations d’accès en lecture à tous les autres dépôts que vous possédez. Si vous voulez restreindre les dépôts auxquels un codespace peut accéder, vous pouvez le limiter au dépôt pour lequel le codespace a été ouvert ou à des dépôts spécifiques. Vous devez uniquement activer l’accès et la sécurité pour les dépôts auxquels vous faites confiance.

  1. Dans le coin supérieur droit d’une page, cliquez sur votre photo de profil, puis sur Paramètres.

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  2. Dans la section « Planification du code et automatisation » de la barre latérale, cliquez sur Codespaces.

  3. Sous « Accès et sécurité », sélectionnez le paramètre que vous voulez pour votre compte personnel :

    • Désactivé : limitez l’accès de vos codespaces personnels au dépôt à partir duquel ils ont été créés.
    • Tous les dépôts : tous vos codespaces personnels peuvent accéder aux autres dépôts que vous possédez.
    • Dépôts sélectionnés : les codespaces personnels créés à partir de dépôts spécifiques peuvent accéder aux autres dépôts que vous possédez.
  4. Si vous avez choisi « Dépôts sélectionnés », sélectionnez le menu déroulant « Sélectionner les dépôts », puis cliquez sur un dépôt pour autoriser les codespaces du dépôt à accéder aux autres dépôts qui vous appartiennent. Répétez cette étape pour tous les dépôts dont les codespaces ont doivent pouvoir accéder aux autres dépôts dont vous êtes propriétaire.