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, organization owners, and enterprise 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 y empresas con una suscripción a GitHub Copilot Business o GitHub Copilot Enterprise.

Acerca de las exclusiones de contenido para Copilot

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, los propietarios de organizaciones y de empresas 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.

  • Los propietarios de las empresas pueden aplicar reglas de exclusión a todos los usuarios de Copilot de la empresa.

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
XcodeNo aplicable
Azure Data StudioNo aplicable
El sitio web de GitHubNo aplicable
GitHub MobileNo aplicable

Limitaciones de las exclusiones de contenido

Es posible que Copilot use información semántica de un archivo excluido si el IDE proporciona la información en un archivo no excluido de forma indirecta. Ejemplos de dicho contenido incluyen información sobre tipos y definiciones emergentes para los símbolos utilizados en el código, así como propiedades generales del proyecto, como la información de configuración de compilación.

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 tu repositorio hereda alguna exclusión de las organizaciones de la misma empresa, verás uno o más cuadros grises en la parte superior de la página con 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/**"

Configuración de exclusiones de contenido para la empresa

Como propietario de la empresa, puede usar la configuración de empresa para especificar los archivos que GitHub Copilot deben 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, haz clic en la fotografía del perfil.
  2. En función de tu entorno, haz clic en Your enterpriseo en Your enterprises y, a continuación, haz clic en la empresa que deseas ver.
  3. En el lado izquierdo de la página, en la barra lateral de la cuenta de empresa, haz clic en Directivas.
  4. En "Directivas ", haga clic en Copilot.
  5. Haz clic en la pestaña Exclusión de contenido.
  6. Usa rutas de acceso para especificar qué contenido se debe excluir. Consulte la sección anterior, "Configuración de exclusiones de contenido para su organización".

Note

La diferencia clave entre establecer la exclusión de contenido en el nivel empresarial y el nivel de organización es que las reglas establecidas en el nivel empresarial se aplican a todos los usuarios de Copilot de la empresa, mientras que las reglas establecidas por los propietarios de la organización solo se aplican a los usuarios a los que se les asigna un puesto Copilot por esa organización.

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 Vim/Neovim, comience a escribir en el archivo. Si GitHub Copilot ya no proporciona sugerencias insertadas mientras escribe, se excluye el archivo.
    • También puede probar 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.

Información adicional