Skip to main content

Configuración de exclusiones de contenido para GitHub Copilot

Puede evitar que se usen archivos especificados para informar sobre las sugerencias de finalización de código realizadas por GitHub Copilot. GitHub Copilot no estará disponible en los archivos excluidos.

¿Quién puede utilizar esta característica?

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 "Roles de repositorio para una organización."

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

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 para la finalización de código de GitHub Copilot en Visual Studio, Visual Studio Code, IDE de JetBrains y neovim. También se admite para GitHub Copilot Chat en VS Code. Para obtener más información sobre los IDE de JetBrains admitidos, consulta "Uso de sugerencias de código de GitHub Copilot en el editor".

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

  • Con la excepción de Visual Studio Code, actualmente no se admite la exclusión de contenido para GitHub Copilot Chat.
  • 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. 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 organización 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.

Todas las exclusiones, tanto si se definen en la configuración del repositorio como en la configuración de la organización, se aplican a todos los miembros de la organización a los que se le ha concedido un puesto de Copilot como parte de una suscripción de Copilot Business.

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.

  1. En GitHub.com, navega a 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 encontrará en "Rutas de acceso para excluir en este repositorio", escriba las rutas de acceso a los archivos que Copilot debe excluir.

    Captura de pantalla del cuadro de texto "Rutas de acceso para excluir" en la configuración del repositorio para Copilot.

    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

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

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.

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

    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/
    

    Notas:

    • 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.
    • 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ón octo-org.
    • Hay compatibilidad adicional con las direcciones URL de Azure DevOps. Para más información, consulta "Compatibilidad de REPOSITORY-REFERENCE con Azure DevOps."

    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 repositorios y rutas de acceso en la configuración de la organización

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

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.

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

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

  3. Haga clic en la hora del último cambio.

    Captura de pantalla de la última información editada. El enlace de la hora del cambio está resaltado con un contorno naranja oscuro.

    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.

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

    Captura de pantalla de los detalles del registro de auditoría para la acción "copilot.content_exclusion_changed". El botón de puntos suspensivos está resaltado.

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.

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

  2. Mantenga el puntero sobre este icono. Un mensaje emergente indica si una organización o el repositorio principal deshabilitaron Copilot para este archivo.

    Captura de pantalla del icono Copilot desactivado en la barra de herramientas VS Code.

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, vea «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:

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

  1. Haz clic en el icono Copilot en la barra de estado y selecciona Cerrar sesión en GitHub.
  2. 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.
  3. Se muestra el mensaje "Iniciar sesión en GitHub" que muestra un código de dispositivo. Haz clic en Copiar y abrir.
  4. En la página "Activación del dispositivo", pega el código del dispositivo y haga clic en Continuar.
  5. En la página siguiente, haz clic en el complemento Autorizar GitHub Copilot.

Compatibilidad de REPOSITORY-REFERENCE con Azure DevOps

Tanto los formatos nuevos (dev.azure.com) como los antiguos (visualstudio.com) para Azure DevOps se tratan como equivalentes en la sintaxis REPOSITORY-REFERENCE. Puedes usar cualquier host al especificar REPOSITORY-REFERENCE y Copilot las hará coincidir, independientemente del host que se usó para clonar el repositorio localmente.

Información adicional