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 obter mais informações, 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 obter mais informações, confira "Como criar um codespace com base em um modelo".

Para obter mais informações, 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.

Nota: Atualizar as permissões no arquivo devcontainer.json não altera as permissões de 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 obter mais informações, 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"
              }
            }
          }
        }
      }
    }
    

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

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.

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

  2. Na seção "Código, planejamento e automação" da barra lateral, clique em Codespaces.

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

    • Desabilitado – limite o acesso de seus codespaces pessoais ao repositório do qual eles foram criados.
    • Todos os repositórios – todos os seus codespaces pessoais podem acessar outros repositórios que você possui.
    • Repositórios selecionados – os codespaces pessoais criados a partir de repositórios específicos podem acessar outros repositórios que você possui.
  4. Se você escolher "Repositórios selecionados", acesse o menu suspenso correspondente e clique em um repositório para permitir que os codespaces do repositório acessem outros repositórios pertencentes a você. Repita esse passo para todos os repositórios cujos codespaces você deseja que acessem outros repositórios dos quais você é proprietário.