Skip to main content

Exclusión del contenido de GitHub Copilot

Puede impedir que Copilot acceda a determinado contenido.

¿Quién puede utilizar esta característica?

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.

Organizaciones con una suscripción a GitHub Copilot Business o GitHub Copilot Enterprise.

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

HerramientaCompatibilidad con la finalización de códigoSoporte de Copilot Chat support
Visual Studio
Visual Studio Code
IDE de JetBrains
Vim/NeovimNo aplicable
Azure Data StudioNo aplicable
El sitio web de GitHubNo 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.

  1. En GitHub, navegue hasta la página principal del repositorio.

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

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

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

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

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/**"

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.

  1. En la esquina superior derecha de GitHub, seleccione la foto del perfil y haga clic en Sus organizaciones.

  2. Junto a la organización, haga clic en Settings.

  3. En la barra lateral izquierda, haga clic en Copilot y, a continuación, haga clic en Exclusión de contenido.

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

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/**"

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:
    1. Abra la paleta de comandos. Por ejemplo, presionando el Comando+Shift+P (Mac) / Ctrl+Shift+P (Windows/Linux).
    2. Escriba: reload.
    3. 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.

  1. Abra un archivo que espera que se vea afectado por las exclusiones de contenido.
  2. 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.

Información adicional