Skip to main content

Configurar exclusões de conteúdo no GitHub Copilot

Você pode impedir que arquivos especificados sejam usados para informar sugestões de conclusão de código feitas pelo GitHub Copilot. O GitHub Copilot não estará disponível em arquivos excluídos.

Quem pode usar esse recurso?

Repository administrators and organization owners can manage the content exclusion settings for GitHub Copilot.

People with the "Maintain" role for a repository can view the content exclusion settings for that repository, but can't change these settings. For more information, see "Funções de repositório para uma organização."

This feature is available for organization and enterprise accounts with a Copilot Business subscription, and for enterprise accounts with a Copilot Enterprise subscription.

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.

  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.

    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.

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

    Captura de tela da caixa de texto "Caminhos a serem excluídos" nas configurações do repositório para o Copilot.

    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

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

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

    Captura de tela do menu suspenso na imagem de perfil do @octocat. "Suas organizações" está contornado em laranja escuro.

  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 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 do REPOSITORY-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ção octo-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.

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

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

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

  3. Clique na hora da última alteração.

    Captura de tela das últimas informações editadas. A hora do link de alteração está realçada com um contorno laranja escuro.

    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.

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

    Captura de tela dos detalhes do log de auditoria da ação 'copilot.content_exclusion_changed'. O botão de reticências está realçado.

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.

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

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

    Captura de tela da tela sobreposta desabilitada Copilot na barra de ferramentas do VS Code.

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:

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

  1. Clique no ícone Copilot na barra de status e selecione Logout de GitHub.
  2. O ícone Copilot na barra de status agora terá uma linha diagonal através dele. Clique nele e selecione Fazer logon em GitHub.
  3. A mensagem "Iniciar sessão em GitHub" é exibida mostrando um código de dispositivo. Clique em Copiar e Abrir.
  4. Na página "Ativação do dispositivo", cole o código do disposotivo e clique em Continuar.
  5. Na próxima página, clique em Autorizar plugin GitHub Copilot.

Leitura adicional