Observação:
- A exclusão de conteúdo do GitHub Copilot atualmente está em versão beta pública e sujeita a alterações.
- Esse recurso é suportado em Visual Studio, Visual Studio Code, JetBrains IDEs e neovim. Para obter detalhes dos IDEs JetBrains suportados, consulte "Introdução ao GitHub Copilot".
Sobre a configuração de exclusões de conteúdo
Talvez você queira impedir que determinados arquivos estejam disponíveis para o GitHub Copilot. Você pode configurar o GitHub Copilot para que ele ignore esses arquivos. Você faz isso especificando caminhos para conteúdo excluído, nas configurações do seu repositório ou da sua organização.
Quando você especifica exclusões de conteúdo, isso tem dois efeitos:
- O conteúdo dos arquivos afetados não será usado pelo GitHub Copilot para informar sugestões de conclusão de código feitas em outros arquivos.
- A conclusão de código do GitHub Copilot não estará disponível nos arquivos afetados.
Depois de adicionar ou alterar exclusões de conteúdo, pode levar até 30 minutos para que isso entre em vigor em IDEs onde as configurações já estão carregadas. Você pode aplicar alterações ao seu próprio IDE, forçando-o a recarregar as configurações de exclusão de conteúdo. Para obter mais informações, consulte "Propagando alterações de exclusão de conteúdo para o seu IDE".
Limitações
- A exclusão de conteúdo do GitHub Copilot atualmente só afeta a conclusão de código. GitHub Copilot Chat não é afetado por essas configurações.
- A exclusão de conteúdo evita que Copilot acesse diretamente o conteúdo dos arquivos excluídos. Copilot pode extrair informações sobre arquivos não excluídos a partir de informações semânticas fornecidas pelo IDE - por exemplo, informações de tipo ou definições de foco para símbolos usados no código. É possível que o IDE possa derivar essas informações de arquivos excluídos.
O que você pode excluir?
Ao especificar a exclusão de conteúdo nas configurações de um repositório, você só pode excluir arquivos nesse repositório.
Ao especificar a exclusão de conteúdo nas configurações de uma organização, você pode excluir arquivos em qualquer repositório baseado em Git hospedado em GitHub.com ou em qualquer lugar que possa ser acessado usando qualquer uma das seguintes sintaxes:
http[s]://host.xz[:port]/path/to/repo.git/
git://host.xz[:port]/path/to/repo.git/
[user@]host.xz:path/to/repo.git/
ssh://[user@]host.xz[:port]/path/to/repo.git/
Observação: é importante estar ciente de que o conteúdo pode ser excluído pelas configurações de qualquer organização do GitHub com uma assinatura do Copilot Business ou do Copilot Enterprise. Os arquivos excluídos podem estar em um repositório que não pertence à organização na qual a exclusão foi definida. Os arquivos excluídos também podem estar localizados em um repositório baseado em Git que não esteja hospedado em GitHub.
Quem é afetado pela configuração de exclusão de conteúdo?
As configurações de exclusão de conteúdo de GitHub Copilot não se aplicam a todos que usam Copilot.
A configuração de exclusão de conteúdo se aplica apenas a pessoas que receberam uma licença como parte de uma assinatura do GitHub Copilot Business ou GitHub Copilot Enterprise e são membros da mesma empresa na qual uma exclusão de conteúdo está configurada. Outros usuários que podem acessar os arquivos especificados não serão afetados pela exclusão de conteúdo e ainda verão sugestões de conclusão do código.
Não é possível especificar exclusões de conteúdo nas configurações de uma empresa. No entanto, todas as exclusões de conteúdo definidas nas configurações da organiação ou do repositório se aplicam a todos os membros da organização aos quais foi concedida uma estação do Copilot como parte de uma assinatura do Copilot Business ou do Copilot Enterprise.
Isso significa, por exemplo, que se você for administrador de uma organização que pertence à Empresa X, poderá configurar uma exclusão para arquivos em qualquer repositório com base em Git, hospedado no GitHub ou em outro lugar, e a exclusão será aplicada a qualquer pessoa que obtiver a licença do Copilot Business ou Copilot Enterprise de qualquer organização na Empresa X.
No entanto, é recomendável que, quando uma exclusão estiver sendo definida para um repositório do GitHub, você defina isso nas configurações desse repositório ou nas configurações da organização proprietária do repositório. Isso torna mais fácil identificar as exclusões que estão em vigor para um repositório do que se você definir as exclusões nas configurações de outra organização na empresa.
Dados enviados para GitHub
Após configurar a exclusão de conteúdo, o cliente (por exemplo, a extensão Copilot para VS Code) envia a URL do repositório atual para o GitHub para que o servidor possa retornar a política correta ao cliente. As URLs enviadas para o servidor dessa forma não são registradas em nenhum lugar.
Configurar exclusões de conteúdo para seu repositório
Você pode usar as configurações do repositório para especificar o conteúdo do seu repositório que o GitHub Copilot deve ignorar.
-
No GitHub.com, navegue até a página principal do repositório.
-
Abaixo do nome do repositório, clique em Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.
-
Na seção "Código e automação" da barra lateral, clique em Copilot.
Se o seu repositório herdar quaisquer exclusões de organizações na mesma empresa, você verá uma ou mais caixas cinzases na parte superior da página contendo os detalhes dessas exclusões. Não é possível editar essas configurações.
Nota: As exclusões que afetam seu repositório podem ser definidas nas configurações de qualquer organização em sua empresa GitHub, além daquelas definidas nas configurações do repositório.
-
Na caixa em "Caminhos a serem excluídos neste repositório", insira os caminhos para os arquivos dos quais o Copilot deve ser excluído.
Use o formato:
- "/PATH/TO/DIRECTORY/OR/FILE"
, com cada caminho em uma linha separada. Você pode adicionar comentários iniciando uma linha com#
.Você pode usar a notação de correspondência de padrão fnmatch para especificar caminhos de arquivo. Para obter mais informações, confira "Arquivo" na documentação do ruby-doc.org.
Nota: Os padrões não diferenciam maiúsculas de minúsculas.
Exemplo de caminhos especificados nas configurações do repositório
# Ignore the `/src/some-dir/kernel.rs` file in this repository. - "/src/some-dir/kernel.rs" # Ignore files called `secrets.json` anywhere in this repository. - "secrets.json" # Ignore all files whose names begin `secret` anywhere in this repository. - "secret*" # Ignore files whose names end `.cfg` anywhere in this repository. - "*.cfg" # Ignore all files in or below the `/scripts` directory of this repository. - "/scripts/**"
- "/src/some-dir/kernel.rs"
Ignore the /src/some-dir/kernel.rs
file in this repository.
- "secrets.json"
Ignore files called secrets.json
anywhere in this repository.
- "secret*"
Ignore all files whose names begin secret
anywhere in this repository.
- "*.cfg"
Ignore files whose names end .cfg
anywhere in this repository.
- "/scripts/**"
Ignore all files in or below the /scripts
directory of this repository.
# Ignore the `/src/some-dir/kernel.rs` file in this repository.
- "/src/some-dir/kernel.rs"
# Ignore files called `secrets.json` anywhere in this repository.
- "secrets.json"
# Ignore all files whose names begin `secret` anywhere in this repository.
- "secret*"
# Ignore files whose names end `.cfg` anywhere in this repository.
- "*.cfg"
# Ignore all files in or below the `/scripts` directory of this repository.
- "/scripts/**"
Configurar exclusões de conteúdo para sua organização
Você pode usar as configurações da organização para especificar conteúdo em qualquer repositório que o GitHub Copilot deve ignorar.
-
No canto superior direito do GitHub.com, selecione sua foto do perfil e em Suas organizações.
-
Ao lado da organização, clique em Configurações.
-
Na barra lateral esquerda, clique em Copilot e depois clique em Exclusão de conteúdo.
-
Na caixa em "Repositórios e caminhos a serem excluídos", insira os caminhos dos quais o Copilot deve ser excluído.
Para cada repositório no qual você deseja que os arquivos sejam excluídos do Copilot, insira uma referência ao repositório em uma linha, seguida de caminhos para locais dentro do repositório, com cada caminho em uma linha separada. Use o seguinte formato:
REPOSITORY-REFERENCE: - "/PATH/TO/DIRECTORY/OR/FILE" - "/PATH/TO/DIRECTORY/OR/FILE" - ...
A seguinte sintaxe não tem suporte para
REPOSITORY-REFERENCE
:http[s]://host.xz[:port]/path/to/repo.git/ git://host.xz[:port]/path/to/repo.git/ [user@]host.xz:path/to/repo.git/ ssh://[user@]host.xz[:port]/path/to/repo.git/
Observações:
- As partes
user@
e:port
doREPOSITORY-REFERENCE
são ignoradas no cálculo de quais caminhos ignorar para um repositório. - Cada referência de repositório pode conter um único curinga
*
. Por exemplo,https://github.com/octo-org/*
corresponde a todos os repositórios na organizaçãoocto-org
.
Você pode usar a notação de correspondência de padrão fnmatch para especificar caminhos de arquivo. Para obter mais informações, confira "Arquivo" na documentação do ruby-doc.org.
Nota: Os padrões não diferenciam maiúsculas de minúsculas.
- As partes
Exemplo de repositórios e caminhos nas configurações da organização
# Ignore all `.env` files at any path, in any repository. # This setting applies to all repositories, not just to those on GitHub.com. # This could also have been written on a single line as: # # "*": ["**/.env"] "*": - "**/.env" # In the `octo-repo` repository in this organization: octo-repo: # Ignore the `/src/some-dir/kernel.rs` file. - "/src/some-dir/kernel.rs" # In the `primer/react` repository on GitHub: https://github.com/primer/react.git: # Ignore files called `secrets.json` anywhere in this repository. - "secrets.json" # Ignore files called `temp.rb` in or below the `/src` directory. - "/src/**/temp.rb" # In the `copilot` repository of any GitHub organization: git@github.com:*/copilot: # Ignore any files in or below the `/__tests__` directory. - "/__tests__/**" # Ignore any files in the `/scripts` directory. - "/scripts/*" # In the `gitlab-org/gitlab-runner` repository on GitLab: git@gitlab.com:gitlab-org/gitlab-runner.git: # Ignore the `/main_test.go` file. - "/main_test.go" # Ignore any files with names beginning `server` or `session`, anywhere in this repository. - "{server,session}*" # Ignore any files with names ending `.md` or `.mk`, anywhere in this repository. - "*.m[dk]" # Ignore files directly within directories such as `packages` or `packaged`, anywhere in this repository. - "**/package?/*" # Ignore files in or below any `security` directories, anywhere in this repository. - "**/security/**"
"*":
- "**/.env"
Ignore all .env
files at any path, in any repository.
This setting applies to all repositories, not just to those on GitHub.com.
This could also have been written on a single line as:
"*": ["**/.env"]
octo-repo:
In the octo-repo
repository in this organization:
- "/src/some-dir/kernel.rs"
Ignore the /src/some-dir/kernel.rs
file.
https://github.com/primer/react.git:
In the primer/react
repository on GitHub:
- "secrets.json"
Ignore files called secrets.json
anywhere in this repository.
- "/src/**/temp.rb"
Ignore files called temp.rb
in or below the /src
directory.
git@github.com:*/copilot:
In the copilot
repository of any GitHub organization:
- "/__tests__/**"
Ignore any files in or below the /__tests__
directory.
- "/scripts/*"
Ignore any files in the /scripts
directory.
git@gitlab.com:gitlab-org/gitlab-runner.git:
In the gitlab-org/gitlab-runner
repository on GitLab:
- "/main_test.go"
Ignore the /main_test.go
file.
- "{server,session}*"
Ignore any files with names beginning server
or session
, anywhere in this repository.
- "*.m[dk]"
Ignore any files with names ending .md
or .mk
, anywhere in this repository.
- "**/package?/*"
Ignore files directly within directories such as packages
or packaged
, anywhere in this repository.
- "**/security/**"
Ignore files in or below any security
directories, anywhere in this repository.
# Ignore all `.env` files at any path, in any repository.
# This setting applies to all repositories, not just to those on GitHub.com.
# This could also have been written on a single line as:
#
# "*": ["**/.env"]
"*":
- "**/.env"
# In the `octo-repo` repository in this organization:
octo-repo:
# Ignore the `/src/some-dir/kernel.rs` file.
- "/src/some-dir/kernel.rs"
# In the `primer/react` repository on GitHub:
https://github.com/primer/react.git:
# Ignore files called `secrets.json` anywhere in this repository.
- "secrets.json"
# Ignore files called `temp.rb` in or below the `/src` directory.
- "/src/**/temp.rb"
# In the `copilot` repository of any GitHub organization:
git@github.com:*/copilot:
# Ignore any files in or below the `/__tests__` directory.
- "/__tests__/**"
# Ignore any files in the `/scripts` directory.
- "/scripts/*"
# In the `gitlab-org/gitlab-runner` repository on GitLab:
git@gitlab.com:gitlab-org/gitlab-runner.git:
# Ignore the `/main_test.go` file.
- "/main_test.go"
# Ignore any files with names beginning `server` or `session`, anywhere in this repository.
- "{server,session}*"
# Ignore any files with names ending `.md` or `.mk`, anywhere in this repository.
- "*.m[dk]"
# Ignore files directly within directories such as `packages` or `packaged`, anywhere in this repository.
- "**/package?/*"
# Ignore files in or below any `security` directories, anywhere in this repository.
- "**/security/**"
Verificar alterações nas configurações de exclusão de conteúdo
Se você for proprietário de uma organização, poderá verificar todas as alterações feitas nas exclusões de conteúdo.
-
Abra a página "Exclusão de conteúdo" nas configurações da sua organização (descrito aqui) ou nas configurações de um repositório (descrito aqui).
-
Role até o final do painel à direita.
Você verá o nome da pessoa que alterou as configurações pela última vez e informações sobre quando ela fez essa alteração.
-
Clique na hora da última alteração.
Nota: A hora da última alteração só será um link se você for proprietário de uma organização.
A página "Log de auditoria" da organização é exibida, mostrando as ocorrências registradas mais recentemente da ação
copilot.content_exclusion_changed
.Se você clicou em uma página de configurações do repositório, o log de auditoria será filtrado para mostrar apenas as alterações nas exclusões de conteúdo desse repositório.
-
Clique nas reticências (...) no final de cada entrada para ver mais detalhes.
Se a entrada "excluded_paths" estiver truncada, passe o mouse sobre o valor truncado para mostrar a entrada completa. Isso exibe o conteúdo das configurações de exclusão depois que a alteração foi salva.
Verificar o efeito de uma alteração nas configurações
Ao alterar as exclusões de conteúdo do Copilot, você pode verificar se a configuração impede o Copilot de sugerir código nos arquivos especificados.
Para confirmar que Copilot está desabilitado para esse arquivo, abra o arquivo no editor e comecea digitar uma linha de código, como um comentário. Normalmente, você veria uma sugestão de conclusão de código do Copilot enquanto digita. Se o Copilot for desabilitado por uma exclusão de conteúdo, sugestões de conclusão de código não serão oferecidas, e o conteúdo do arquivo não será usado para gerar sugestões em outros arquivos.
Verificando as alterações de configurações no seu IDE
Se você estiver trabalhando em Visual Studio, VS Code, ou em um IDE JetBrains com suporte, o ícone Copilot indica quando Copilot foi desabilitado por uma exclusão de conteúdo.
-
Abra um arquivo que você espera que seja afetado por suas exclusões de conteúdo.
Se uma exclusão de conteúdo do Copilot se aplicar a esse arquivo, o ícone do Copilot na barra de status terá uma linha diagonal.
-
Passe o mouse sobre este ícone. Uma mensagem pop-up informa se uma organização ou o repositório pai desabilitou Copilot para esse arquivo.
Nota: em Visual Studio e VS Code você pode exibir o log da extensão Copilot para ver detalhes das exclusões de conteúdo sem precisar passar o mouse sobre o ícone Copilot. Para obter mais informações, confira "Exibir logs do GitHub Copilot em seu ambiente".
Propagando alterações de exclusão de conteúdo para seu IDE
Se você estiver trabalhando no Neovim, as exclusões de conteúdo serão obtidas do GitHub sempre que você abrir um arquivo. No entanto, se estiver trablhando em Visual Studio, VS Code, ou em um IDE JetBrains suportado, poderá ter de esperar até 30 minutos para ver o efeito de uma alteração de definições. Como alternativa, você pode recarregar manualmente as configurações de exclusão de conteúdo em seu IDE.
Para recarregar exclusões de conteúdo em Visual Studio, feche e reabra o aplicativo.
Para recarregar exclusões de conteúdo no VS Code:
- Abra a paleta de comandos. Por exemplo, pressionando Shift+Command+P (no Mac) / Ctrl+Shift+P (no Windows/Linux).
- Digite:
reload
. - Selecione Desenvolvedor: Recarregar Janela.
Para recarregar exclusões de conteúdo no IDE JetBrains, feche e reabra o aplicativo ou efetue logout de GitHub e faça logon novamente, da seguinte maneira.
- Clique no ícone Copilot na barra de status e selecione Logout de GitHub.
- O ícone Copilot na barra de status agora terá uma linha diagonal através dele. Clique nele e selecione Fazer logon em GitHub.
- A mensagem "Iniciar sessão em GitHub" é exibida mostrando um código de dispositivo. Clique em Copiar e Abrir.
- Na página "Ativação do dispositivo", cole o código do disposotivo e clique em Continuar.
- Na próxima página, clique em Autorizar plugin GitHub Copilot.