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 ao qual só tem acesso de leitura e fizer uma confirmação no codespace, GitHub Codespaces vinculará automaticamente seu codespace a uma bifurcação nova ou existente do repositório e atualizará o token para ter as permissões read e write para a bifurcação. Para obter mais informações, confira "Como usar o controle do código-fonte 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".

Se o projeto precisar de permissões adicionais para outros repositórios, você poderá configurá-lo no arquivo devcontainer.json e garantir que outros colaboradores tenham o conjunto certo de permissões. 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.

Para obter mais informações, confira "Segurança nos GitHub Codespaces".

Pré-requisitos

Para criar codespaces com permissões personalizadas definidas, você deve usar um dos seguintes:

Configurar permissões de repositório adicionais

  1. Você configura permissões de repositório para GitHub Codespaces no arquivo devcontainer.json. Se o repositório ainda não contiver um arquivo devcontainer.json, adicione-o agora. Para obter mais informações, "Adicionar um contêiner de desenvolvimento ao seu projeto".

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

    Observação: 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 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 todos os repositórios em uma organização, use o curinga * seguindo o nome da sua organização no objeto repositories.

    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/*": {
              "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.

A página de permissões solicitadas

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.

Acesso e segurança

Observação de substituição: a configuração de acesso e segurança descrita abaixo foi preterida e está documentada aqui somente para referência. Para habilitar o acesso expandido a outros repositórios, adicione as permissões solicitadas à definição de contêiner de desenvolvimento para seu codespace, conforme descrito acima.

Quando você habilita o acesso e a segurança para um repositório pertencente à sua conta pessoal, todos os codespaces criados para esse repositório terão permissões de leitura para todos os outros repositórios que você possui. Se você deseja restringir os repositórios que um código pode acessar, você pode limitá-lo tanto para o repositório no qual o código foi aberto ou para repositórios específicos. Você só deve habilitar o acesso e a segurança para repositórios nos quais confia.

  1. No canto superior direito de qualquer página, clique na foto do seu perfil e em Configurações.

    Ícone Settings (Configurações) na barra de usuário 1. Na seção "Código, planejamento e automação" da barra lateral, clique em Codespaces.

  2. Em "Acesso e segurança", selecione a configuração desejada para sua conta pessoal.

    Botões de opção para gerenciar repositórios confiáveis

  3. Se você escolher "Repositórios selecionados", selecione o menu suspenso e clique em um repositório para permitir que os codespaces do repositório acessem outros repositórios pertencentes a você. Repita para todos os repositórios cujos codespaces você deseja que acessem outros repositórios dos quais você é proprietário.

    Menu suspenso "Repositórios selecionados"