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
ewrite
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
ewrite
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:
- A interface do usuário da Web GitHub
- CLI do GitHub 2.5.2 ou posterior
- Extensão GitHub Codespaces Visual Studio Code 1.5.3 ou posterior
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.
-
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". -
Edite o arquivo
devcontainer.json
, adicionando o nome do repositório e as permissões necessárias ao objetorepositories
:JSON { "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
{ "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
Observações:
- 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çãomy_org
, usemy_org/*
. Essa sintaxe apenas é válida para codespaces. Em todos os arquivosdevcontainer.json
usados para pré-compilações, você deve definir permissões para cada repositório separadamente. Para obter mais informações, 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çãochecks
– leitura/gravaçãocontents
– leitura/gravaçãodeployments
– leitura/gravaçãodiscussions
– leitura/gravaçãoissues
– leitura/gravaçãopackages
– leiturapages
– leitura/gravaçãopull_requests
– leitura/gravaçãorepository_projects
– leitura/gravaçãostatuses
– leitura/gravaçãoworkflows
– 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.
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.