Observação
Sandboxes locais para GitHub Copilot estão em prévia pública e sujeitas a alterações.
Sobre o sandboxing local
O sandboxing local executa as ferramentas que um agente invoca em seu nome dentro de uma área restrita do sistema operacional. Isso reduz o impacto potencial de um comando não intencional limitando o acesso a arquivos, recursos de rede e credenciais em seu computador.
Você configura o sandbox local separadamente para cada projeto no GitHub Copilot app. A configuração se aplica a sessões de árvore de trabalho e repositório local. Ele não se aplica a sessões de área restrita de nuvem ou sessões executadas em um host remoto.
Uma árvore de trabalho mantém separadas as ramificações e os arquivos para sessões concorrentes, mas não restringe o que um comando pode acessar em outras partes da sua máquina. O isolamento em sandbox local oferece essa proteção adicional.
Para obter uma visão geral da nuvem e área restrita local, Copilotconsulte Sobre a nuvem e as áreas restritas locais para GitHub Copilot.
Habilitando o sandboxing local em um projeto
O isolamento em sandbox local fica desativado por padrão. Para habilitá-lo para novas sessões locais em um projeto:
- Abra as configurações do aplicativo.
- Selecione o projeto que você deseja configurar.
- Em Sandbox, ative Novas sessões do Sandbox.
A configuração se aplica a novas sessões no projeto. Ele não modifica uma sessão que já está em execução.
Para a maioria dos projetos, comece com a política padrão. Ele permite tarefas comuns de desenvolvimento, como instalar dependências, conectar-se a um servidor de desenvolvimento local, efetuar push de um branch e criar uma solicitação de pull. Adicione restrições quando o projeto estiver ao lado de pastas confidenciais, não precisar de acesso à rede ou não deve usar suas credenciais.
Configurando a política de sandbox de um projeto
Uma política de sandbox é um conjunto de regras que controla quais arquivos, redes e credenciais as ferramentas executadas pelo agente podem acessar. As configurações do projeto descrevem a política que o aplicativo solicita quando uma sessão em área restrita é iniciada. A política efetiva pode ser mais restritiva, por exemplo, quando as configurações gerenciadas pela empresa se aplicam.
Nas configurações do projeto, você pode definir:
- Acesso ao sistema de arquivos: conceda acesso adicional de somente leitura ou de leitura/gravação a caminhos específicos, ou negue acesso a caminhos.
- Acesso à rede: permitir ou bloquear o acesso à Internet e à rede local de saída.
- Credenciais: Escolha se suas credenciais do Git e GitHub CLI estarão disponíveis dentro do sandbox.
Configurando o acesso ao sistema de arquivos
Por padrão, uma sessão em sandbox tem acesso de leitura e gravação ao seu espaço de trabalho e ao diretório de trabalho atual. Você pode conceder acesso a pastas adicionais ou impedir o acesso a pastas específicas.
Na seção Área restrita das configurações do projeto, defina qualquer uma das seguintes listas:
- Leitura/gravação adicional: pastas que as ferramentas executadas pelo agente podem ler e modificar.
- Somente leitura adicional: pastas que as ferramentas executadas pelo agente podem ler, mas não modificar.
- Negado: pastas que as ferramentas executadas pelo agente não podem acessar.
Para adicionar uma pasta, clique em Adicionar pasta para a lista apropriada e escolha a pasta. Para remover uma pasta, clique no ícone de exclusão ao lado de seu caminho.
Uma pasta negada mais específica permanece negada quando uma pasta pai mais ampla tem acesso de leitura ou gravação.
No Windows, você pode salvar um caminho negado nas configurações do projeto. Se os recursos ativos da sandbox do Windows não puderem garantir a negação, um comando executado na sandbox falhará com uma mensagem de política sem suporte. O comando não é executado quando um caminho negado está acessível ou sem sandbox.
Configurando o acesso à rede
Por padrão, as sessões em área restrita podem se conectar à Internet e à sua rede local. Na seção Área restrita das configurações do projeto, você pode alterar as seguintes configurações:
- Internet de saída: permitir conexões com serviços de Internet, como GitHub e registros de pacotes.
- Rede local: permitir conexões de loopback e de rede local, incluindo conexões com servidores de desenvolvimento locais.
As restrições de rede podem afetar a instalação do pacote, chamadas à API, servidores de visualização e outras ferramentas que precisam de uma conexão de rede.
No Linux, o sandbox não pode controlar de forma independente o acesso à rede local para processos iniciados, como comandos de shell e servidores MCP ou LSP locais. A configuração ainda se aplica a operações em processo, como solicitações da Web e conexões MCP remotas.
Como configurar credenciais
Por padrão, operações autenticadas de Git e GitHub CLI estão disponíveis no sandbox. Você pode desativar qualquer uma das seguintes configurações:
- Credenciais do Git: permitir operações de Git HTTPS autenticadas.
- GitHub CLI credenciais: Permitem que GitHub CLI se autentique.
Desativar o acesso às credenciais pode impedir operações como fazer push de um branch ou criar um pull request de dentro do sandbox.
Aplicando alterações de política
As alterações nas configurações de sistema de arquivos, rede e credencial se aplicam a novas sessões ou quando uma sessão existente é reiniciada. Eles não alteram a política de uma sessão em execução no momento.
Para reiniciar uma sessão mantendo seu histórico, insira:
/restart-session
O aplicativo aceita as configurações de área restrita antes de verificar se o sistema operacional pode aplicá-las. O suporte é verificado quando o primeiro shell em área restrita é iniciado. Se o host não puder impor a política solicitada, o shell falha com uma mensagem "unsupported-platform" ou "unsupported-policy" e não é executado sem sandbox. Para encontrar as versões do Windows com suporte no momento, consulte Suporte do sistema operacional Windows para isolamento em sandbox do Copilot.
Se o aplicativo exibir Sandbox indisponível, resolva o problema relatado e clique em Tentar novamente a sandbox.
Alterando o sandboxing para uma sessão
Para ativar o sandbox local em uma sessão ativa, digite:
/sandbox on
Para desativá-lo para a sessão, insira:
/sandbox off
Durante uma sessão local ativa, o comando cria uma substituição persistente para essa sessão e a aplica imediatamente. A substituição não altera o padrão do projeto para outras sessões.
Se você inserir um dos comandos antes do início de uma sessão, o comando alterará o padrão do projeto herdado por novas sessões.
Quando o isolamento local está desativado, os comandos executados pelo agente podem acessar os mesmos arquivos, redes e credenciais que a sua conta de usuário.
Você não pode usar o isolamento local para uma sessão de sandbox na nuvem ou uma sessão que é executada em um host remoto.
Executar uma ferramenta fora do sandbox
Se uma ferramenta precisar de acesso que a política de sandbox não permite, o aplicativo pode exibir a solicitação Executar fora da sandbox?. Dependendo da política efetiva, você pode:
- Cancele a operação.
- Execute a operação uma vez fora da sandbox.
- Desabilite o sandboxing para o restante da sessão atual e execute a operação.
Se você desativar o sandbox neste prompt, o aplicativo exibirá Sandbox desativado nesta sessão. Clique em Reativar sandbox para ativá-la.
Desativar temporariamente o isolamento não altera a configuração padrão do projeto nem a sobrescrita da sessão. Ela termina quando a sessão é reiniciada ou reanexada.
Um proprietário da empresa pode impedir que os usuários executem ferramentas fora da área restrita. Para obter mais informações, consulte Configurações gerenciadas pela empresa.