Skip to main content

Gerenciar o acesso a outros repositórios em seu codespace

Você pode gerenciar os repositórios que o GitHub Codespaces pode acessar.

Visão geral

Por padrão, o codespace recebe um token com escopo com a permissão read ou read e a permissão write para o repositório do qual foi criado. O escopo desse token é alterado automaticamente nas circunstâncias a seguir.

  • Se você criar um codespace para um repositório no qual só tem acesso de leitura e fizer um commit no codespace ou efetuar push de um novo branch, o GitHub Codespaces vinculará automaticamente seu codespace a um fork novo ou existente do repositório e atualizará o token para ter as permissões read e write para o fork. Para saber mais, confira Usando controle de origem no seu codespace.
  • Se você criar um codespace de um modelo e publicar o codespace em um novo repositório, GitHub Codespaces atualizará o token para ter as permissões read e write para o novo repositório. Para saber mais, confira Como criar um codespace com base em um modelo.

Para saber mais, confira Segurança no GitHub Codespaces.

Se o projeto precisar de permissões adicionais para outros repositórios, você poderá configurá-lo no arquivo devcontainer.json, conforme descrito em Configurar permissões de repositório adicionais posteriormente neste artigo. Quando as permissões forem listadas no arquivo devcontainer.json, você será solicitado a examinar e autorizar as permissões adicionais como parte da criação do codespace para esse repositório. Depois de autorizar as permissões listadas, GitHub Codespaces lembrarão de sua escolha e não solicitarão autorização, a menos que as permissões no arquivo devcontainer.json sejam alteradas.

Note

Atualizar as permissões no arquivo devcontainer.json não as altera em codespaces existentes. Se você precisar de permissões adicionais em um codespace existente, confira Solução de problemas de autenticação para um repositório.

Criar codespaces com permissões personalizadas

Para criar um codespace com permissões personalizadas, é necessário usar um dos seguintes:

Configurar permissões de repositório adicionais

Você configura permissões de repositório para GitHub Codespaces em um arquivo devcontainer.json. Quaisquer permissões personalizadas que você adicionar ou alterar só serão aplicadas a novos codespaces criados depois que suas alterações forem confirmadas no repositório. Se você adicionar ou alterar permissões de dentro de um codespace, essas permissões não se aplicarão ao codespace atual, mesmo se você recriá-lo.

  1. Se o repositório ainda não contiver um arquivo devcontainer.json, adicione-o agora. Para saber mais, confira Adicionando uma configuração de contêiner de desenvolvimento ao repositório.

  2. Edite o arquivo devcontainer.json, adicionando o nome do repositório e as permissões necessárias ao objeto repositories:

    JSON
    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/my_repo": {
              "permissions": {
                "issues": "write"
              }
            }
          }
        }
      }
    }
    

    Note

    • Você só pode referenciar repositórios que pertencem à mesma conta pessoal ou organização que o repositório em que você está trabalhando no momento.
    • Você pode usar o curinga * para conceder permissões a vários repositórios em uma organização. Por exemplo, para conceder permissões a todos os repositórios na organização my_org, use my_org/*. Essa sintaxe apenas é válida para codespaces. Em todos os arquivos devcontainer.json usados para pré-compilações, você deve definir permissões para cada repositório separadamente. Para saber mais, confira Permitir que um prebuild acesse outros repositórios.

    Você pode conceder quantas quiser das seguintes permissões para cada repositório listado:

    • actions – leitura/gravação
    • checks – leitura/gravação
    • contents – leitura/gravação
    • deployments – leitura/gravação
    • discussions – leitura/gravação
    • issues – leitura/gravação
    • packages – leitura
    • pages – leitura/gravação
    • pull_requests – leitura/gravação
    • repository_projects – leitura/gravação
    • statuses – leitura/gravação
    • workflows – gravação

    Para definir uma permissão para um repositório em uma organização, você deverá adicionar explicitamente esse nome de repositório no objeto repositories.

    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/my_repo": {
              "permissions": {
                "issues": "write"
              }
            }
          }
        }
      }
    }
    

    Para definir todas as permissões para um determinado repositório, use "permissions": "read-all" ou "permissions": "write-all" no objeto de repositório.

    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/my_repo": {
              "permissions": "write-all"
            }
          }
        }
      }
    }
    

Autorizar permissões solicitadas

Se permissões de repositório adicionais forem definidas no arquivo devcontainer.json, você será solicitado a revisar e, opcionalmente, autorizar as permissões ao criar um codespace ou uma configuração de prebuild para esse repositório. Quando você autorizar permissões para um repositório, os GitHub Codespaces não solicitarão novamente, a menos que o conjunto de permissões solicitadas tenha sido alterado para o repositório.

Captura de tela da página Permissões Solicitadas. Duas permissões são mostradas conforme solicitado: permissão de leitura para metadados e permissão de gravação para problemas.

Você só deve autorizar permissões para repositórios que você conhece e confia. Se você não confiar no conjunto de permissões solicitadas, clique em Continuar sem autorizar para criar o codespace com o conjunto de permissões base. Rejeitar permissões adicionais pode afetar a funcionalidade do seu projeto dentro do codespace, pois o codespace só terá acesso ao repositório do qual ele foi criado.

Você só pode autorizar permissões que sua conta pessoal já possui. Se um codespace solicitar permissões para repositórios aos quais você não tem acesso no momento, entre em contato com um proprietário ou administrador do repositório para obter acesso suficiente e tente criar um codespace novamente.

Leitura adicional