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?

Os administradores de repositórios e os proprietários de organizações podem gerenciar configurações de exclusão de conteúdo.

As pessoas com a função de "Manter" em um repositório podem visualizar, mas não editar, as configurações de exclusão de conteúdo do repositório.

Organizações com uma assinatura de GitHub Copilot Business ou GitHub Copilot Enterprise.

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 beta pública e sujeita a alterações.

Você pode usar as exclusões de conteúdo para configurar o Copilot de forma que ele ignore determinados arquivos em um repositório ou em uma organização. 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.

Você só pode especificar exclusões de conteúdo nas configurações de uma organização ou de um repositório, e não nas configurações de uma empresa. As configurações de exclusão de conteúdo definidas em uma organização ou em um repositório dentro de uma empresa se aplicarão a todos os membros da empresa que tenham recebido uma estação como parte de uma assinatura do GitHub Copilot Business ou do GitHub Copilot Enterprise.

Qualquer outra pessoa que possa acessar os arquivos especificados continuará a ver sugestões de conclusão do código e respostas do GitHub Copilot Chat referenciando os arquivos especificados.

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

No momento, as exclusões de conteúdo não estão disponíveis para o Copilot Chat no Visual Studio, para o Copilot Chat no GitHub.com, ou para a conclusão do código no Azure Data Studio. Além disso:

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

  1. No GitHub.com, navegue até 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 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.

  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 conteúdo em qualquer repositório Git que o GitHub Copilot deverá ignorar.

  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 de onde o Copilot deverá 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 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 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 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 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 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.
    • Nos IDEs da JetBrains e no 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.

Leitura adicional