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 and organization 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 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 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.

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

  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 da organização pai, você verá uma caixa 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/**"

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