Skip to main content
Skip to content

Configuración del repositorio para la aplicación GitHub Copilot

Defina instrucciones, scripts y comportamiento de automatización específicos del repositorio para GitHub Copilot app.

¿Quién puede utilizar esta característica?

GitHub Copilot app está disponible para todos los Copilot planes.
Descargar el GitHub Copilot app

Utiliza .github/github-app.yml en el repositorio para definir cómo GitHub Copilot app debe comportarse para ese proyecto.

También puede editar esta configuración del proyecto en la interfaz de usuario de la aplicación. Si .github/github-app.yml ya existe, los cambios de la interfaz de usuario se vuelven a escribir en ese archivo. Si aún no existe, puede crearlo a partir de la configuración actual del proyecto en la aplicación.

Acerca de la ubicación del archivo de configuración

Cree el archivo en:

Text
.github/github-app.yml

La aplicación también admite el nombre de archivo .github/copilot-desktop.yml heredado para la compatibilidad con versiones anteriores.

Para conocer los pasos de personalización basados en la interfaz de usuario, consulte Personalización del aplicación Copilot de GitHub.

Revisar y aprobar la configuración

Cuando la aplicación detecta una configuración del repositorio, no aplica instrucciones del repositorio, scripts u otras opciones del archivo hasta que revises y aceptes la configuración. Esto le protege de ejecutar comandos o aplicar configuraciones añadidos por otro colaborador. Las configuraciones que cree o actualice a través de la interfaz de usuario de la aplicación se consideran de confianza automáticamente.

Advertencia

Antes de aceptar una configuración de repositorio, revise todos los comandos configurados y las dependencias que ejecutan esos comandos. Los scripts y sus procesos secundarios reciben las GitHub credenciales descritas más adelante en este artículo, por lo que nunca los configure para registrar o conservar estas variables de entorno.

Si el archivo cambia fuera de la aplicación, incluidos los cambios en espacios en blanco o comentarios, debe revisar y aceptar la configuración actualizada antes de que la aplicación la aplique. Hasta que aceptes la versión actual, la aplicación sigue usando la configuración del proyecto que se configuró anteriormente en la aplicación.

Ejemplo de configuración

YAML
instructions: |
  Use bun instead of npm.

scripts:
  - name: Setup
    command: bun install
    triggers:
      - session.create
  - name: Run
    command: bun run dev
  - name: Archive cleanup
    command: rm -rf node_modules
    triggers:
      - session.archive

server_ready_pattern: '(?i)Local:\s+(https?://\S+)'
auto_open_in_browser: true

automation:
  auto_issue_session: true
  remote_control: false

Configurar instrucciones y scripts

instructions

Use instructions para agregar instrucciones específicas del repositorio al prompt del sistema para las sesiones en el proyecto. Si también configura instrucciones globales en la aplicación, primero se aplican las instrucciones globales, seguidas de las instrucciones del proyecto.

scripts

Usa scripts para definir comandos que aparecen en la aplicación y que se pueden ejecutar manualmente o en desencadenadores específicos.

Cada elemento de script admite:

  • name (string): nombre para mostrar en la interfaz de usuario.
  • command (string): comando que se va a ejecutar.
  • triggers (string[], opcional): eventos que ejecutan automáticamente el script.

Los scripts sin triggers son manuales.

Valores del activador

Usa valores de desencadenador canónicos en el archivo:

  • session.create
  • session.archive

La aplicación también acepta estos alias heredados al analizar los archivos existentes:

  • workspace.create (alias de session.create)
  • workspace.archive (alias de session.archive)

Cuando se ejecuta un script desencadenado, COPILOT_SCRIPT_TRIGGER se establece en el valor canónico:

  • session.create
  • session.archive

Configurar la detección del servidor y el comportamiento del navegador

server_ready_pattern

server_ready_pattern es una expresión regular que se usa para detectar cuándo un script de ejecución ha iniciado un servidor.

Los patrones usan la sintaxis admitida por el crate regex de Rust. Para obtener más información sobre la sintaxis, consulte Sintaxis en la documentación del crate. Si el patrón no es válido, la aplicación usa su patrón de detección de servidor predeterminado.

Utilice un primer grupo de captura para la dirección URL o el puerto detectados. La aplicación lee el grupo de captura 1:

  • Si la captura es una dirección URL (http://... o https://...), se usa la dirección URL.
  • Si la captura es solo un número de puerto (por ejemplo 3000), la aplicación la convierte en http://localhost:3000.

auto_open_in_browser

Si auto_open_in_browser es true, la aplicación abre la dirección URL de ejecución detectada en el explorador integrado. Si se omite este campo, el valor predeterminado efectivo es true.

Configurar el comportamiento de la automatización

Establezca las opciones de automatización en la sección automation:

  • automation.auto_issue_session (boolean) controla si la aplicación inicia automáticamente una sesión con contexto de problema. Si se omite, el valor predeterminado efectivo es true.
  • automation.remote_control (boolean) controla si se puede acceder a las sesiones desde la interfaz web GitHub o desde GitHub Mobile. Si se omite, el valor predeterminado efectivo es false.

Si el Copilot puesto procede de una organización, la directiva "Almacenar sesiones locales en la nube" aplicable debe establecerse en "Ver y controlar" para que el control remoto esté disponible. La configuración administrada por la remoteControl empresa puede restringir aún más el control remoto incluso cuando automation.remote_control es true. Para obtener más información, vea Control remoto de sesiones GitHub Copilot CLI y Configuración administrada por la empresa.

Variables de entorno en tiempo de ejecución para scripts

Los scripts se ejecutan con estas variables de entorno proporcionadas por la aplicación:

VariableDescription
COPILOT_WORKSPACE_NAMENombre del área de trabajo actual.
COPILOT_WORKSPACE_PATHRuta de acceso absoluta al área de trabajo.
COPILOT_ROOT_PATHRuta de acceso absoluta a la copia de trabajo raíz del proyecto.
COPILOT_DEFAULT_BRANCHRama predeterminada del proyecto.
COPILOT_PORTPuerto webSocket de la aplicación para el contexto del área de trabajo actual.
COPILOT_SCRIPT_TRIGGERDesencadenador que inició el script (solo se establece para scripts desencadenados).
GH_TOKENToken de la cuenta seleccionada GitHub .
GH_HOSTServidor para la cuenta seleccionada GitHub.
COPILOT_GH_ACCOUNT_*Tokens específicos de host y cuenta para cada cuenta que ha iniciado sesión, incluida la cuenta seleccionada.

Para cada variable COPILOT_GH_ACCOUNT_*, la aplicación convierte a minúsculas el host y el inicio de sesión, deja sin cambios las letras ASCII y los dígitos, y reemplaza cualquier otro byte UTF-8 por su valor hexadecimal en mayúsculas rodeado de caracteres de subrayado. El nombre de la variable usa el formato COPILOT_GH_ACCOUNT_<HOST>_<LOGIN>. Por ejemplo, el token de alice en github.com es COPILOT_GH_ACCOUNT_github_2E_com_alicey el token de user en ghe-example.com es COPILOT_GH_ACCOUNT_ghe_2D_example_2E_com_user.

Compatibilidad heredada

Por motivos de compatibilidad con versiones anteriores, la aplicación todavía puede analizar la estructura anterior basada en objetos scripts:

YAML
scripts:
  setup: bun install
  run: bun run dev
  archive: rm -rf node_modules

En esta forma heredada:

  • setup se asigna a un script con el trigger create.
  • archive se asigna a un script con el activador de archivado.
  • run se asigna a entradas de script manuales y puede ser una cadena de comando única o una lista de { name, command } objetos.