Skip to main content

Como realizar a exclusão de conteúdo do GitHub Copilot

É possível impedir o acesso do Copilot a determinados conteúdos.

Quem pode usar esse recurso?

Repository administrators, organization owners, and enterprise owners can manage content exclusion settings. People with the "Maintain" role for a repository can view, but not edit, content exclusion settings for that repository.

Organizações e empresas com uma assinatura do GitHub Copilot Business ou do GitHub Copilot Enterprise.

Sobre as exclusões de conteúdo para o Copilot

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

Os administradores do repositório, os proprietários da organização e os proprietários da empresa podem configurar a exclusão de conteúdo.

  • Os administradores de repositório só podem excluir conteúdo dos próprios repositórios. Isso afeta 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.

  • 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

FerramentaSuporte à conclusão do códigoSuporte ao Copilot Chat support
Visual Studio.
Visual Studio Code
IDEs JetBrains
Vim/NeovimNão aplicável
XcodeNão aplicável
Azure Data StudioNão aplicável
O site do GitHubNão aplicável
GitHub MobileNão aplicável

Limitações das exclusões de conteúdo

É possível que o Copilot use informações semânticas de um arquivo excluído se as informações forem fornecidas pelo IDE indiretamente. Exemplos desse conteúdo incluem informações de tipo e definições de focalização para símbolos usados no código, bem como propriedades gerais do projeto, como informações da configuração de build.

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.

  1. Em GitHub, acesse a página principal do repositório.

  2. 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.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Configurações" é realçada por um contorno laranja-escuro.

  3. Na seção "Código e automação" da barra lateral, clique em Copilot.

    Se o seu repositório herdar qualquer exclusão das organizações na mesma empresa, você verá uma ou mais uma caixa cinzacaixas cinza na parte superior da página contendo os detalhes dessas exclusões. Não é possível editar essas configurações.

  4. 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

YAML
- "/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.

  1. No canto superior direito de GitHub, selecione sua foto de perfil e selecione Suas organizações.

  2. Ao lado da organização, clique em Configurações.

  3. Na barra lateral esquerda, clique em Copilot e depois clique em Exclusão de conteúdo.

  4. 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 do REPOSITORY-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

YAML
"*":
  - "**/.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.

  1. No canto superior direito do GitHub, selecione sua foto de perfil.
  2. Dependendo do ambiente, selecione Sua empresa ou Suas empresas e escolha a empresa que deseja ver.
  3. Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Políticas.
  4. Na seção Políticas de "", clique em Copilot.
  5. Clique na guia Exclusão de conteúdo.
  6. 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:
    1. Abra a paleta de comandos. Por exemplo, pressionando Shift+Command+P (no Mac) / Ctrl+Shift+P (no Windows/Linux).
    2. Digite: reload.
    3. 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.

  1. Abra um arquivo que você espera que seja afetado por suas exclusões de conteúdo.
  2. 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.
    • 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.
    • Você também pode testar 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.

Leitura adicional