Nota:
- La exclusión de contenido de GitHub Copilot in the CLI se encuentra actualmente en versión beta pública y está sujeta a cambios.
- Esta característica se admite en Visual Studio, Visual Studio Code, IDE de JetBrains y neovim. Para obtener más información sobre los IDE de JetBrains admitidos, consulta "Introducción a GitHub Copilot".
Acerca de la configuración de exclusiones de contenido
Es posible que quiera impedir que determinados archivos estén disponibles para GitHub Copilot. Puede configurar GitHub Copilot para que omita estos archivos. Para ello, especifique rutas de acceso al contenido excluido en la configuración del repositorio o la organización.
Especificar exclusiones de contenido tiene dos efectos:
- GitHub Copilot no usará el contenido de los archivos afectados para informar sobre las sugerencias de finalización del código que realiza en otros archivos.
- La finalización de código de GitHub Copilot no estará disponible en los archivos afectados.
Después de agregar o cambiar las exclusiones de contenido, esto puede tardar hasta 30 minutos en surtir efecto en los IDE en los que la configuración ya está cargada. Puedes aplicar cambios a tu propio IDE forzándolo a volver a cargar la configuración de exclusión de contenido. Para obtener más información, consulte "Propagación de cambios de exclusión de contenido en el IDE".
Limitaciones
- La exclusión del contenido de GitHub Copilot actualmente solo afecta a la finalización del código. GitHub Copilot Chat no se ve afecto por esta configuración.
- La exclusión de contenido impide que Copilot acceda directamente al contenido de los archivos excluidos. Copilot puede extraer información sobre los archivos no excluidos de la información semántica proporcionada por el IDE; por ejemplo, la información de tipo o las definiciones de desplazamiento sobre los símbolos usados en el código. Es posible que el IDE derive esta información de archivos excluidos.
¿Qué puede excluir?
Al especificar la exclusión de contenido en la configuración de un repositorio, solo puede excluir archivos de ese repositorio.
Al especificar la exclusión de contenido en la configuración de una organización, puede excluir archivos en cualquier repositorio basado en Git hospedado en GitHub.com o en cualquier lugar al que se pueda acceder mediante cualquiera de las sintaxis siguientes:
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/
Nota: Es importante tener en cuenta que el contenido se puede excluir mediante la configuración de cualquier organización de GitHub con una suscripción de Copilot Business o Copilot Enterprise. Los archivos excluidos pueden estar en un repositorio que no es propiedad de la organización en la que se definió la exclusión. Los archivos excluidos también se pueden encontrar en un repositorio basado en Git que no está hospedado en GitHub.
¿Quién se ve afectado por la configuración de exclusión de contenido?
La configuración de exclusión de contenido GitHub Copilot no se aplica a todos los usuarios que usan Copilot.
Una configuración de exclusión de contenido solo se aplica a las personas a las que se les ha concedido un puesto como parte de una suscripción de GitHub Copilot Business o GitHub Copilot Enterprise y son miembros de la misma empresa en la que se ha configurado la exclusión de contenido. Otros usuarios que pueden acceder a los archivos especificados no se verán afectados por la configuración de exclusión de contenido y seguirán viendo sugerencias de finalización de código.
No se pueden especificar exclusiones de contenido en la configuración de una empresa. No obstante, todas las exclusiones de contenido definidas en la configuración de la organización o del repositorio se aplican a todos los miembros de la empresa a los que se ha concedido un puesto de Copilot como parte de una suscripción de Copilot Business o Copilot Enterprise.
Esto significa, por ejemplo, que si es un administrador de la organización que pertenece a la empresa X, puede configurar una exclusión de archivos en cualquier repositorio basado en Git, hospedado en GitHub o en otro lugar, y la exclusión se aplicará a cualquier persona que obtenga su licencia Copilot Business o Copilot Enterprise de cualquier organización de la empresa X.
Sin embargo, se recomienda que, cuando se defina una exclusión para un repositorio GitHub, debes definirlo en la configuración de ese repositorio o en la configuración de la organización que posee el repositorio. Esto facilita la identificación de las exclusiones que están en vigor en un repositorio, en lugar de definir las exclusiones en la configuración de otra organización de la empresa.
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. Las direcciones URL enviadas al servidor de esta manera 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.com, navega a 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 organizaciones de la misma empresa, verá uno o más cuadros grises cuadro gris en la parte superior de la página que contiene detalles de estas exclusiones. No puede editar esta configuración.
Nota: Las exclusiones que afectan al repositorio se pueden definir en la configuración de cualquier organización de la empresa GitHub, además de las definidas en la configuración del repositorio.
-
En el cuadro que encontrará en "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#
.Puede usar la notación de coincidencia de patrones de tipo fnmatch para especificar rutas de acceso a los archivos. Para obtener más información, consulte "Archivo" en la documentación de ruby-doc.org.
Nota: Los patrones no distinguen mayúsculas de minúsculas.
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 `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/**"
- "/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/**"
Configuración de exclusiones de contenido para su organización
Puede usar la configuración del repositorio para especificar el contenido que GitHub Copilot debe omitir.
-
En la esquina superior derecha de GitHub.com, selecciona la foto de perfil y luego haz 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 encontrará en "Rutas de acceso para excluir en este repositorio", escriba los detalles donde Copilot debe excluirse.
Para cada repositorio en el que quiera que los archivos se excluyan de Copilot, escriba 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. Utilice el siguiente formato:
REPOSITORY-REFERENCE: - "/PATH/TO/DIRECTORY/OR/FILE" - "/PATH/TO/DIRECTORY/OR/FILE" - ...
La sintaxis siguiente se admite en
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/
Notas:
- 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. - Cada referencia de repositorio puede contener un solo carácter comodín
*
. Por ejemplo,https://github.com/octo-org/*
coincide con todos los repositorios de la organizaciónocto-org
.
Puede usar la notación de coincidencia de patrones de tipo fnmatch para especificar rutas de acceso a los archivos. Para obtener más información, consulte "Archivo" en la documentación de ruby-doc.org.
Nota: Los patrones no distinguen mayúsculas de minúsculas.
- Las partes
Ejemplo de repositorios y rutas de acceso en la configuración de la organización
# 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/**"
"*":
- "**/.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/**"
Revisión de los cambios en la configuración de exclusión de contenido
Si es propietario de la organización, puede comprobar los cambios realizados en las exclusiones de contenido.
-
Abra la página "Exclusión de contenido" en la configuración de su organización (se describe aquí) o la configuración de un repositorio (se describe aquí).
-
Desplácese hasta la parte inferior de la página.
Verá el nombre de la persona que cambió por última vez la configuración e información sobre cuándo realizó este cambio.
-
Haga clic en la hora del último cambio.
Nota: La hora del último cambio es solo un vínculo si es propietario de la organización.
Se muestra la página "Registro de auditoría" de la organización, en la que se indican las repeticiones registradas más recientemente de la acción
copilot.content_exclusion_changed
.Si ha hecho clic desde una página de configuración del repositorio, el registro de auditoría se filtra para mostrar solo los cambios en las exclusiones de contenido de ese repositorio.
-
Haga clic en los puntos suspensivos (...) al final de cada entrada para ver más detalles.
Si se trunca la entrada "excluded_paths", mantenga el puntero sobre el valor truncado para mostrar la entrada completa. Esto muestra el contenido de la configuración de exclusión después de guardar el cambio.
Comprobación del efecto de un cambio de configuración
Al cambiar las exclusiones de contenido de Copilot, puede comprobar que la configuración impide a Copilot sugerir código en los archivos especificados.
Puede confirmar que Copilot está deshabilitado en este archivo abriéndolo en el editor y empezando a escribir una línea de código, como un comentario. Normalmente, verás una sugerencia de finalización de código de Copilot mientras escribes. Si Copilot está deshabilitado por una exclusión de contenido, no se ofrecerán sugerencias de código completado y el contenido del archivo no se usará para generar sugerencias en otros archivos.
Comprobación de los cambios de configuración en el IDE
Si está trabajando en Visual Studio, VS Code, o en un IDE de JetBrains compatible, el icono Copilot indica cuándo Copilot se ha deshabilitado mediante una exclusión de contenido.
-
Abra un archivo que espera que se vea afectado por las exclusiones de contenido.
Si se aplica una exclusión de contenido de Copilot a este archivo, el icono Copilot de la barra de estado tiene una línea diagonal que lo atraviesa.
-
Mantenga el puntero sobre este icono. Un mensaje emergente indica si una organización o el repositorio principal deshabilitaron Copilot para este archivo.
Nota: En Visual Studio y VS Code puede mostrar el registro de la extensión Copilot para ver detalles de exclusiones de contenido sin tener que mantener el puntero sobre el icono Copilot. Para obtener más información, consulte "Visualización de registros de GitHub Copilot en tu entorno".
Propagación de cambios de exclusión de contenido en el IDE
Si trabajas en Neovim, las exclusiones de contenido se capturan de GitHub cada vez que abras un archivo. Sin embargo, si trabajas en Visual Studio, VS Code, o en un IDE de JetBrains compatible, es posible que tengas que esperar hasta 30 minutos para ver el efecto de un cambio de configuración. Como alternativa, puede volver a cargar manualmente la configuración de exclusión de contenido en el IDE.
Para volver a cargar exclusiones de contenido en Visual Studio, cierra y vuelve a abrir la aplicación.
Para volver a cargar exclusiones de contenido a VS Code:
- 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 volver a cargar exclusiones de contenido en el IDE de JetBrains, cierra y vuelve a abrir la aplicación, o cierra la sesión de GitHub y vuelve a iniciar sesión, como se indica a continuación.
- Haz clic en el icono Copilot en la barra de estado y selecciona Cerrar sesión en GitHub.
- El icono Copilot de la barra de estado tendrá ahora una línea diagonal a través de ella. Haz clic en ella y selecciona Iniciar sesión en GitHub.
- Se muestra el mensaje "Iniciar sesión en GitHub" que muestra un código de dispositivo. Haz clic en Copiar y abrir.
- En la página "Activación del dispositivo", pega el código del dispositivo y haga clic en Continuar.
- En la página siguiente, haz clic en el complemento Autorizar GitHub Copilot.