Sobre as exclusões de conteúdo para o Copilot
Note
A exclusão de conteúdo do GitHub Copilot atualmente está em versão prévia pública e sujeita a alterações.
Você pode usar as exclusões de conteúdo para configurar o Copilot para ignorar determinados arquivos. Quando você exclui conteúdo do Copilot:
- A conclusão do código não estará disponível nos arquivos afetados.
- O conteúdo nos arquivos afetados não informará sugestões de conclusão do código em outros arquivos.
- O conteúdo nos arquivos afetados não informará as respostas do GitHub Copilot Chat.
Quem pode configurar a exclusão de conteúdo
Administradores de repositórios, proprietários de organizações e proprietários de empresas podem configurar a exclusão de conteúdo.
- Os administradores de repositório só podem excluir conteúdo de seus próprios repositórios. Isso afeta os usuários do Copilot que trabalham nesses repositórios específicos.
- Os proprietários da organização podem excluir conteúdo para usuários atribuídos a uma estação do Copilot por meio de sua organização.
Note
Na versão atual do versão prévia pública, as configurações no nível da organização para exclusão de conteúdo normalmente se aplicam a todos os usuários do Copilot na empresa. Isso mudará com o lançamento de disponibilidade geral (GA) desse recurso em 8 de novembro de 2024.
Antes de 8 de novembro:
- Se os proprietários da empresa não definirem regras: as regras no nível da organização continuarão a ser aplicadas a todos os usuários da empresa, funcionando como agora, até 8 de novembro.
- Se os proprietários da empresa definirem uma regra: depois que as regras no nível da empresa forem aplicadas, as regras no nível da organização serão aplicadas somente aos usuários que receberem uma licença do Copilot da organização em que a regra está definida.
Após 8 de novembro:
- As regras no nível da organização não serão mais aplicadas em toda a empresa. Elas serão limitadas a usuários que recebem uma estação do Copilot da organização em que a regra está definida.
- Os proprietários de empresas podem aplicar regras de exclusão a todos os usuários do Copilot da empresa.
Disponibilidade de exclusões de conteúdo
Ferramenta | Suporte à conclusão do código | Suporte ao Copilot Chat support |
---|---|---|
Visual Studio. | ||
Visual Studio Code | ||
IDEs JetBrains | ||
Vim/Neovim | Não aplicável | |
Azure Data Studio | Não aplicável | |
O site do GitHub | Não aplicável |
Limitações das exclusões de conteúdo
- No Copilot Chat em Visual Studio Code, as exclusões de conteúdo não são aplicadas quando você usa o participante da conversa do
@github
em sua pergunta. - É possível que o Copilot use informações semânticas de um arquivo excluído se as informações forem fornecidas pelo IDE em um arquivo não excluído. Exemplos de tal conteúdo incluem informações de tipo e definições ao passar o mouse sobre um elemento para símbolos usados no código.
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. Essas URLs não são registradas em log 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.
-
Em GitHub, acesse 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.
-
Na caixa após "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#
.Tip
Você pode usar a notação de correspondência de padrão fnmatch para especificar caminhos de arquivo. Os padrões não diferenciam maiúsculas de minúsculas. Consulte "Arquivo" na documentação da ruby-doc.org.
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 with `secret` anywhere in this repository. - "secret*" # Ignore files whose names end with `.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 with secret
anywhere in this repository.
- "*.cfg"
Ignore files whose names end with .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 with `secret` anywhere in this repository.
- "secret*"
# Ignore files whose names end with `.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 os arquivos que o GitHub Copilot deve ignorar. Os arquivos podem estar em um repositório do Git ou em qualquer lugar no sistema de arquivos que não esteja sob controle do Git.
-
No canto superior direito de GitHub, selecione sua foto de perfil e selecione 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 após "Repositórios e caminhos a serem excluídos", insira os detalhes dos arquivos dos quais o Copilot deverá ser excluído.
Para excluir arquivos localizados em qualquer lugar (dentro de um repositório do Git ou em outro lugar), insira
"*":
seguido do caminho para os arquivos que deseja excluir. Se você quiser especificar múltiplos padrões de caminho de arquivo, liste cada padrão em uma linha separada.Para excluir arquivos em um repositório do Git 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 formato a seguir, substituindo
REPOSITORY-REFERENCE
por uma referência ao repositório que contém os arquivos que você gostaria de excluir:REPOSITORY-REFERENCE: - "/PATH/TO/DIRECTORY/OR/FILE" - "/PATH/TO/DIRECTORY/OR/FILE" - ...
Os repositórios podem ser referenciados usando vários protocolos. Você pode usar qualquer uma das seguintes sintaxes para
REPOSITORY-REFERENCE
e Copilot corresponderá a elas, independentemente de como o repositório foi clonado localmente: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/
As partes
user@
e:port
doREPOSITORY-REFERENCE
são ignoradas no cálculo de quais caminhos ignorar para um repositório.Para o Azure DevOps, você pode usar o formato de host novo (dev.azure.com) ou antigo (visualstudio.com) ao especificar
REPOSITORY-REFERENCE
e o Copilot corresponderá a eles, independentemente de qual host foi usado para clonar o repositório localmente.Tip
Você pode usar a notação de correspondência de padrão fnmatch para especificar caminhos de arquivo. Os padrões não diferenciam maiúsculas de minúsculas. Consulte "Arquivo" na documentação da ruby-doc.org.
Exemplo de repositórios e caminhos nas configurações da organização
# Ignore all `.env` files from all file system roots (Git and non-Git). # For example, this excludes `REPOSITORY-PATH/.env` and also `/.env`. # 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 with `server` or `session` anywhere in this repository. - "{server,session}*" # Ignore any files with names ending with `.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 from all file system roots (Git and non-Git).
For example, this excludes REPOSITORY-PATH/.env
and also /.env
.
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 with server
or session
anywhere in this repository.
- "*.m[dk]"
Ignore any files with names ending with .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 from all file system roots (Git and non-Git).
# For example, this excludes `REPOSITORY-PATH/.env` and also `/.env`.
# 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 with `server` or `session` anywhere in this repository.
- "{server,session}*"
# Ignore any files with names ending with `.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/**"
Configurando exclusões de conteúdo para sua empresa
Como proprietário da empresa, você pode usar as configurações da empresa para especificar arquivos que o GitHub Copilot deve ignorar. Os arquivos podem estar em um repositório do Git ou em qualquer lugar no sistema de arquivos que não esteja sob controle do Git.
-
No canto superior direito do GitHub, clique na sua foto de perfil e em Suas empresas.
-
Na lista de empresas, clique na empresa que você deseja visualizar.
-
Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Políticas.
-
Na seção Políticas de "", clique em Copilot.
-
Clique na guia Exclusão de conteúdo.
-
Use caminhos para especificar qual conteúdo excluir. Consulte a seção anterior, "Configurando exclusões de conteúdo para sua organização".
Note
A principal diferença entre definir a exclusão de conteúdo no nível corporativo e no nível da organização é que as regras definidas no nível corporativo se aplicam a todos os usuários do Copilot na empresa, enquanto as regras definidas pelos proprietários da organização se aplicam apenas aos usuários que receberam uma licença do Copilot atribuída por essa organização.
Como testar as alterações nas exclusões de conteúdo
Você pode usar seu IDE para confirmar que suas alterações nas exclusões de conteúdo estão funcionando conforme o esperado.
Propagação das alterações de exclusão de conteúdo para o IDE
A adição ou alteração de exclusões de conteúdo, pode levar até 30 minutos para entrar em vigor nos IDEs em que as configurações já estão carregadas. Caso não deseje aguardar, você pode recarregar manualmente as configurações de exclusão de conteúdo seguindo as instruções apresentadas a seguir.
- Para IDEs da JetBrains e do Visual Studio, recarregue as configurações de exclusão de conteúdo ao fechar e abrir novamente o aplicativo.
- Para o Visual Studio Code, use as etapas apresentadas abaixo para recarregar as configurações de exclusão de conteúdo:
- 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 o Vim/Neovim, as exclusões de conteúdo são automaticamente recuperadas do GitHub toda vez que você abre um arquivo.
Teste das exclusões de conteúdo
Existem algumas maneiras diferentes de testar as exclusões de conteúdo, dependendo do IDE que você está usando.
- Abra um arquivo que você espera que seja afetado por suas exclusões de conteúdo.
- Use uma ou mais das técnicas apresentadas a seguir para testar se o conteúdo está sendo excluído:
- Nos IDEs da JetBrains, no Visual Studio e no Visual Studio Code, verifique o ícone do Copilot na barra de status. Caso uma exclusão de conteúdo do Copilot seja aplicada ao arquivo, o ícone do Copilot apresentará uma linha diagonal. Passe o mouse sobre o ícone para verificar se uma organização ou o repositório principal desabilitou o Copilot para o arquivo.
- Nos IDEs da JetBrains e no Visual Studio e Visual Studio Code, você também pode testar as exclusões de conteúdo no Copilot Chat. Abra a janela do Copilot Chat e pergunte ao Copilot Chat sobre o arquivo excluído. Se o conteúdo tiver sido excluído com êxito, o Copilot não poderá responder à sua pergunta e explicará que alguns arquivos foram excluídos da conversa devido a regras de exclusão de conteúdo.
- No Vim/Neovim, comece a inserir texto no arquivo. Se o GitHub Copilot não fornecer mais sugestões embutidas enquanto você digita, o arquivo será excluído.