Acerca de las exclusiones de contenido para Copilot
Note
La exclusión de contenido de GitHub Copilot in the CLI se encuentra actualmente en versión preliminar pública y está sujeta a cambios.
Puedes utilizar exclusiones de contenido para configurar Copilot para ignorar determinados archivos. Cuando se excluye el contenido de Copilot:
- La finalización del código no estará disponible en los archivos afectados.
- El contenido de los archivos afectados no informará a las sugerencias de finalización de código en otros archivos.
- El contenido de los archivos afectados no informará las respuestas de GitHub Copilot Chat.
Quién puede configurar la exclusión de contenido
Los administradores de repositorios y los propietarios de la organización pueden configurar la exclusión de contenido.
- Los administradores del repositorio solo pueden excluir contenido de sus propios repositorios. Esto afecta a los usuarios de Copilot que trabajan en esos repositorios específicos.
- Los propietarios de la organización pueden excluir el contenido de los usuarios que tienen asignado un puesto de Copilot a través de su organización.
Disponibilidad de exclusiones de contenido
Herramienta | Compatibilidad con la finalización de código | Soporte de Copilot Chat support |
---|---|---|
Visual Studio | ||
Visual Studio Code | ||
IDE de JetBrains | ||
Vim/Neovim | No aplicable | |
Azure Data Studio | No aplicable | |
El sitio web de GitHub | No aplicable |
Limitaciones de las exclusiones de contenido
- En Copilot Chat en Visual Studio Code y Visual Studio, las exclusiones de contenido no se aplican cuando se usa el participante del chat
@github
en su pregunta. - Es posible queCopilot use información semántica de un archivo excluido si el IDE proporciona la información en un archivo no excluido. Ejemplos de estos contenidos son la información tipográfica y las definiciones de los símbolos utilizados en el código.
Datos enviados a GitHub
Después de configurar la exclusión de contenido, el cliente (por ejemplo, la extensión Copilot para VS Code) envía la dirección URL del repositorio actual al servidor GitHub para que el servidor pueda devolver la directiva correcta al cliente. Estas direcciones URL no se registran en ningún lugar.
Configuración de exclusiones de contenido para el repositorio
Puede usar la configuración del repositorio para especificar el contenido de este que GitHub Copilot debe omitir.
-
En GitHub, navegue hasta la página principal del repositorio.
-
En el nombre del repositorio, haz clic en Configuración. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.
-
En la sección "Código, planificación y automatización" de la barra lateral, haga clic en Copilot.
Si el repositorio hereda exclusiones de su organización principal, verá un cuadro gris en la parte superior de la página que contiene detalles de estas exclusiones. No puede editar esta configuración.
-
En el cuadro que sigue a "Rutas de acceso para excluir en este repositorio", escriba las rutas de acceso a los archivos que Copilot debe excluir.
Use el formato
- "/PATH/TO/DIRECTORY/OR/FILE"
con cada ruta de acceso en una línea independiente. Puede agregar comentarios iniciando una línea con#
.Tip
Puede usar la notación de coincidencia de patrones de tipo fnmatch para especificar rutas de acceso a los archivos. Los patrones no distinguen mayúsculas de minúsculas. Consulte "Archivo" en la documentación de ruby-doc.org.
Ejemplo de rutas de acceso especificadas en la configuración del repositorio
# 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/**"
Configuración de exclusiones de contenido para su organización
Puedes usar la configuración de la organización para especificar el contenido que GitHub Copilot debe omitir. Los archivos pueden estar dentro de un repositorio de Git o en cualquier parte del sistema de archivos que no está bajo control de Git.
-
En la esquina superior derecha de GitHub, seleccione la foto del perfil y haga clic en Sus organizaciones.
-
Junto a la organización, haga clic en Settings.
-
En la barra lateral izquierda, haga clic en Copilot y, a continuación, haga clic en Exclusión de contenido.
-
En el cuadro que aparece a continuación de "Repositorios y rutas a que excluir", introduce los datos de los archivos de los que Copilot debe excluirse.
Para excluir archivos ubicados en cualquier lugar (dentro de un repositorio de Git o en otro lugar), escribe
"*":
seguido de la ruta de acceso al archivo, o archivos, que deseas excluir. Si deseas especificar varios patrones de ruta de acceso de archivo, enumera cada patrón en una línea independiente.Para excluir archivos de un repositorio Git de Copilot, escribe una referencia al repositorio en una línea, seguida de rutas de acceso a ubicaciones dentro del repositorio, con cada ruta de acceso en una línea independiente. Use el formato siguiente, reemplazando
REPOSITORY-REFERENCE
por una referencia al repositorio que contiene los archivos que desea excluir:REPOSITORY-REFERENCE: - "/PATH/TO/DIRECTORY/OR/FILE" - "/PATH/TO/DIRECTORY/OR/FILE" - ...
Se puede hacer referencia a repositorios mediante varios protocolos. Puedes usar cualquiera de las sintaxis siguientes para
REPOSITORY-REFERENCE
y Copilot las hará coincidir, independientemente de cómo se clonó localmente el repositorio: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/
Las partes
user@
y:port
deREPOSITORY-REFERENCE
se omiten en el cálculo de las rutas de acceso que se omitirán en un repositorio.Para Azure DevOps, puede utilizar el formato de host nuevo (dev.azure.com) o antiguo (visualstudio.com) al especificar
REPOSITORY-REFERENCE
y Copilot las hará coincidir, independientemente del host que se usó para clonar el repositorio localmente.Tip
Puede usar la notación de coincidencia de patrones de tipo fnmatch para especificar rutas de acceso a los archivos. Los patrones no distinguen mayúsculas de minúsculas. Consulte "Archivo" en la documentación de ruby-doc.org.
Ejemplo de repositorios y rutas de acceso en la configuración de la organización
# 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/**"
Probar los cambios en la exclusión de contenido
Puede utilizar su IDE para confirmar que sus cambios en las exclusiones de contenido están funcionando como se esperaba.
Propagar los cambios de exclusión de contenidos a su IDE
Después de agregar o cambiar las exclusiones de contenido, puede tardar hasta 30 minutos en surtir efecto en los IDE en los que la configuración ya está cargada. Si no desea esperar, puede volver a cargar manualmente la configuración de exclusión de contenido mediante las instrucciones siguientes.
- Para los IDE de JetBrains y Visual Studio, vuelva a cargar la configuración de exclusión de contenido cerrando y reabrindo la aplicación.
- Para Visual Studio Code, siga estos pasos para volver a cargar la configuración de exclusión de contenido:
- Abra la paleta de comandos. Por ejemplo, presionando el Comando+Shift+P (Mac) / Ctrl+Shift+P (Windows/Linux).
- Escriba:
reload
. - Seleccione Programador: Volver a cargar ventana.
- Para Vim/Neovim, las exclusiones de contenido se capturan automáticamente de GitHub cada vez que abra un archivo.
Prueba de las exclusiones de contenido
Hay varias maneras diferentes de probar las exclusiones de contenido, en función del IDE que use.
- Abra un archivo que espera que se vea afectado por las exclusiones de contenido.
- Use una o varias de las técnicas siguientes para probar si se excluye el contenido:
- En JetBrains IDEs, Visual Studio, y Visual Studio Code, compruebe el icono Copilot en la barra de estado. Si se aplica una exclusión de contenido Copilot al archivo, el icono Copilot tendrá una línea diagonal que lo atraviesa. Pase el ratón por encima del icono para ver si una organización o el repositorio principal ha desactivado Copilot para el archivo.
- En los IDE de JetBrains y Visual Studio Code y Visual Studio Code, también puede probar las exclusiones de contenido en Copilot Chat. Abra la ventana Copilot Chat y formule a Copilot Chat una pregunta sobre el archivo excluido. Si el contenido se excluye correctamente, Copilot no podrá responder a su pregunta y explicará que algunos archivos se excluyeron de la conversación debido a reglas de exclusión de contenido.
- En Vim/Neovim, comience a escribir en el archivo. Si GitHub Copilot ya no proporciona sugerencias insertadas mientras escribe, se excluye el archivo.