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".
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 no GitHub Codespaces".
Pré-requisitos
Para criar codespaces com permissões personalizadas definidas, você deve 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 no arquivo
devcontainer.json
. Se o repositório ainda não contiver um arquivodevcontainer.json
, adicione-o agora. Para obter mais informações, "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" } } } } } }
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çã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.
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.
-
No canto superior direito de qualquer página, clique na foto do seu perfil e em Configurações.
1. Na seção "Código, planejamento e automação" da barra lateral, clique em Codespaces. -
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.
-
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.