Skip to main content

Personalización del entorno de desarrollo para el agente de codificación GitHub Copilot

Aprende a personalizar el entorno de desarrollo de GitHub Copilot con herramientas adicionales.

Acerca de la personalización del entorno de desarrollo de Agente de programación Copilot

Al trabajar en una tarea, Copilot tiene acceso a su propio entorno de desarrollo efímero, con tecnología de GitHub Actions, donde puedes explorar el código, realizar cambios, ejecutar pruebas automatizadas y linters, etc.

Puede personalizar el entorno de desarrollo de Copilot con un archivo de pasos de configuración Copilot. Puede usar un archivo de pasos de configuración Copilot para:

  •         [Preinstalar herramientas o dependencias en el entorno de Copilot](#preinstalling-tools-or-dependencies-in-copilots-environment).
    
  •           [Actualizar desde los ejecutores de GitHub Actions hospedados en GitHub estándar a ejecutores de mayor capacidad](#upgrading-to-larger-github-hosted-github-actions-runners).
    
  •           [Ejecutar en ejecutores autohospedados GitHub Actions](#using-self-hosted-github-actions-runners)
    
  •         [Asigne a Copilot un entorno de desarrollo de Windows](#switching-copilot-to-a-windows-development-environment), en lugar del entorno de Ubuntu Linux predeterminado.
    
  •         [Enable Git Large File Storage (LFS)](#enabling-git-large-file-storage-lfs)
    

Además, puede:

  •         [Establecer variables de entorno en ](#setting-environment-variables-in-copilots-environment).
    
  •         [Deshabilitar o personalizar el firewall del agente](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent).
    

Personalizar el entorno de desarrollo de Copilot con los pasos de configuración Copilot

Puede personalizar el entorno de Copilot creando un archivo de flujo de trabajo especial GitHub Actions, ubicado en .github/workflows/copilot-setup-steps.yml dentro de su repositorio.

Un archivo copilot-setup-steps.yml parece un archivo de flujo de trabajo de GitHub Actions normal, pero debe contener un solo trabajo copilot-setup-steps. Los pasos de esta tarea se ejecutarán en GitHub Actions antes de que Copilot comience a funcionar. Para más información sobre los archivos de flujo de trabajo de GitHub Actions, consulta Sintaxis del flujo de trabajo para GitHub Actions.

Nota:

El flujo de trabajo copilot-setup-steps.yml no se desencadenará a menos que esté presente en la rama predeterminada.

Este es un ejemplo sencillo de un archivo copilot-setup-steps.yml para un proyecto TypeScript que clona el proyecto, instala Node.js y descarga y almacena en caché las dependencias del proyecto. Debe personalizar esto para adaptarlo a los lenguajes y dependencias de su propio proyecto.

YAML
name: "Copilot Setup Steps"

# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
  copilot-setup-steps:
    runs-on: ubuntu-latest

    # Set the permissions to the lowest permissions possible needed for your steps.
    # Copilot will be given its own token for its operations.
    permissions:
      # If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission.
      # If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
      contents: read

    # You can define any steps you want, and they will run before the agent starts.
    # If you do not check out your code, Copilot will do this for you.
    steps:
      # ...

En el archivo copilot-setup-steps.yml, solo puedes personalizar los valores siguientes del trabajo copilot-setup-steps. Si intentas personalizar otros valores, los cambios se omitirán.

  •         `steps` (consulte más arriba)
    
  •         `permissions` (consulte más arriba)
    
  •         `runs-on` (consulte a continuación)
    
  • services
  • snapshot
  •         `timeout-minutes` (valor máximo: `59`)
    

Para obtener más información sobre estas opciones, vea Sintaxis del flujo de trabajo para GitHub Actions.

Cualquier valor establecido para la opción fetch-depth de la acción actions/checkout se invalidará para permitir que el agente revierta las confirmaciones a petición, a la vez que se mitigan los riesgos de seguridad. Para obtener más información, vea actions/checkout/README.md.

El archivo copilot-setup-steps.yml se ejecutará automáticamente como un flujo de trabajo normal de GitHub Actions cuando se realicen cambios, por lo que puedes ver si se ejecuta correctamente. Esto se mostrará junto con otras comprobaciones en una solicitud de incorporación de cambios en las que cree o modifiques el archivo.

Una vez que hayas combinado el archivo yml en la rama predeterminada, puedes ejecutar manualmente el flujo de trabajo desde la pestaña Acciones del repositorio en cualquier momento para comprobar que todo funciona según lo previsto. Para más información, consulta Ejecutar un flujo de trabajo manualmente.

Cuando Copilot inicia el trabajo, se ejecutarán tus pasos de configuración y las actualizaciones se mostrarán en los registros de sesión. Consulta Seguimiento de las sesiones de GitHub Copilot.

Si se produce un error en algún paso de configuración y se devuelve un código de salida distinto de cero, Copilot omitirá los pasos de configuración restantes y comenzará a trabajar con el estado actual de su entorno de desarrollo.

Preinstalación de herramientas o dependencias en el entorno de Copilot

En su entorno de desarrollo efímero, Copilot puede compilar o compilar el proyecto y ejecutar pruebas automatizadas, linters y otras herramientas. Para hacer esto, deberá instalar las dependencias de su proyecto.

Copilot puede detectar e instalar estas dependencias personalmente mediante un proceso de prueba y error, pero esto puede ser lento y poco confiable, dada la naturaleza no determinista de los modelos de lenguaje grandes (LLM) y, en algunos casos, es posible que no pueda descargar estas dependencias, por ejemplo si son privadas.

Puede usar un archivo de pasos de instalación de Copilot para instalar de forma determinista herramientas o dependencias antes de que Copilot inicie el trabajo. Para hacerlo, agregue steps al trabajo copilot-setup-steps:

# ...

jobs:
  copilot-setup-steps:
    # ...

    # You can define any steps you want, and they will run before the agent starts.
    # If you do not check out your code, Copilot will do this for you.
    steps:
      - name: Checkout code
        uses: actions/checkout@v5

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"

      - name: Install JavaScript dependencies
        run: npm ci

Actualización a ejecutores de GitHub Actions hospedados en GitHub de mayor capacidad

De forma predeterminada, Copilot funciona en un ejecutor estándar GitHub Actions . Puede actualizar a ejecutores más grandes para mejorar el rendimiento (CPU y memoria), más espacio en disco y características avanzadas, como Azure redes privadas. Para obtener más información, vea Ejecutores más grandes.

  1. Configure ejecutores más grandes para su organización. Para obtener más información, vea Administración de ejecutores más grandes.

  2. Si usa ejecutores más grandes con redes privadas de Azure, configure su red privada de Azure para permitir el acceso de salida a los hosts necesarios para Agente de programación Copilot:

    • uploads.github.com
    • user-images.githubusercontent.com
    •         `api.individual.githubcopilot.com` (si espera que los usuarios de Copilot Pro o Copilot Pro+ usen Agente de programación Copilot en el repositorio)
      
    •         `api.business.githubcopilot.com` (si espera que los usuarios de Copilot Business usen Agente de programación Copilot en el repositorio)
      
    •         `api.enterprise.githubcopilot.com` (si espera que los usuarios de Copilot Enterprise usen Agente de programación Copilot en el repositorio)
      
    • Si utiliza el agente de un tercero OpenAI Codex (para obtener más información, consulte Acerca de los agentes de terceros):
      • npmjs.org
      • npmjs.com
      • registry.npmjs.com
      • registry.npmjs.org
      • skimdb.npmjs.com
  3. Utiliza un archivo copilot-setup-steps.yml en tu repositorio para configurar Agente de programación Copilot de modo que se ejecute en los ejecutores elegidos. Configure el paso runs-on del trabajo copilot-setup-steps con la etiqueta y/o el grupo para los ejecutores más grandes que desea que Copilot utilice. Para más información sobre la especificación de ejecutores de mayor capacidad con runs-on, consulta Ejecución de trabajos en ejecutores más grandes.

    # ...
    
    jobs:
      copilot-setup-steps:
        runs-on: ubuntu-4-core
        # ...
    

Nota:

  • Agente de programación Copilot solo es compatible con los ejecutores Ubuntu x64 Linux y Windows 64 bits. No se admiten ejecutores con macOS u otros sistemas operativos.

Usar ejecutores de GitHub Actions autohospedados

Puede ejecutar Agente de programación Copilot en ejecutores autohospedados. Es posible que quiera hacer esto para que coincida con la forma en que ejecuta los flujos de trabajo de CI/CD en GitHub Actions, o para dar a Copilot acceso a los recursos internos de su red.

Recomendamos que solo use Agente de programación Copilot con ejecutores efímeros y de un solo uso que no se reutilicen para varios trabajos. La mayoría de los clientes configura esto utilizando ARC (controlador de ejecutor de acciones) o el cliente de configuración de escala de ejecutor GitHub Actions. Para más información, consulta Referencia de ejecutores autohospedados.

Nota:

Agente de programación Copilot solo es compatible con los ejecutores Ubuntu x64 y Windows de 64 bits. No se admiten ejecutores con macOS u otros sistemas operativos.

  1. Configure los controles de seguridad de red para los ejecutores de GitHub Actions para asegurarse de que Agente de programación Copilot no tiene acceso abierto a su red o a Internet pública.

    Debe configurar el firewall para permitir las conexiones a los hosts estándar necesarios para GitHub Actions ejecutores autohospedados, además de los siguientes hosts:

    • uploads.github.com
    • user-images.githubusercontent.com
    •         `api.individual.githubcopilot.com` (si espera que los usuarios de Copilot Pro o Copilot Pro+ usen Agente de programación Copilot en el repositorio)
      
    •         `api.business.githubcopilot.com` (si espera que los usuarios de Copilot Business usen Agente de programación Copilot en el repositorio)
      
    •         `api.enterprise.githubcopilot.com` (si espera que los usuarios de Copilot Enterprise usen Agente de programación Copilot en el repositorio)
      
    • Si utiliza el agente de un tercero OpenAI Codex (para obtener más información, consulte Acerca de los agentes de terceros):
      • npmjs.org
      • npmjs.com
      • registry.npmjs.com
      • registry.npmjs.org
      • skimdb.npmjs.com
  2. Deshabilite el firewall integrado de Agente de programación Copilot en la configuración del repositorio. El firewall no es compatible con los ejecutores autohospedados. A menos que esté deshabilitado, se bloqueará el uso de Agente de programación Copilot . Para más información, consulta Personalización o deshabilitación del firewall para el agente de codificación de GitHub Copilot.

  3. En el archivo copilot-setup-steps.yml, establezca el atributo runs-on al nombre del conjunto de escalado administrado por ARC.

    # ...
    
    jobs:
      copilot-setup-steps:
        runs-on: arc-scale-set-name
        # ...
    
  4. Si desea configurar un servidor proxy para las conexiones de Agente de programación Copilot a la Internet, configure las siguientes variables de entorno según corresponda:

    VariableDescriptionExample
    https_proxyDirección URL del proxy para el tráfico HTTPS. Si es necesario, puede incluir la autenticación básica.http://proxy.local
    http://192.168.1.1:8080
    http://username:password@proxy.local
    http_proxyDirección URL del proxy para el tráfico HTTP. Si es necesario, puede incluir la autenticación básica.http://proxy.local
    http://192.168.1.1:8080
    http://username:password@proxy.local
    no_proxyLista separada por comas de hosts o direcciones IP que deben omitir el proxy. Algunos clientes solo respetan las direcciones IP cuando se realizan conexiones directamente a la dirección IP en lugar de un nombre de host.example.com
    example.com,myserver.local:443,example.org

| ssl_cert_file | La ruta del certificado SSL presentado por el servidor proxy. Tendrá que configurarlo si el proxy intercepta las conexiones SSL. | /path/to/key.pem | | node_extra_ca_certs | Ruta de acceso al certificado SSL presentado por el servidor proxy. Tendrá que configurarlo si el proxy intercepta las conexiones SSL. | /path/to/key.pem |

Puede establecer estas variables de entorno siguiendo las [instrucciones siguientes](#setting-environment-variables-in-copilots-environment) o estableciendolas en el ejecutor directamente, por ejemplo con una imagen de ejecutor personalizada. Para obtener más información sobre cómo crear una imagen personalizada, consulte [AUTOTITLE](/actions/concepts/runners/actions-runner-controller#creating-your-own-runner-image).

Cambiar Copilot a un entorno de desarrollo de Windows

Por defecto, Copilot usa un entorno de desarrollo basado en Ubuntu Linux.

Es posible que quiera usar un entorno de desarrollo de Windows si va a compilar software para Windows o el repositorio usa una cadena de herramientas basada en Windows para que Copilot pueda compilar el project, ejecutar pruebas y validar su trabajo.

El firewall integrado de Agente de programación Copilot no es compatible con Windows, por lo que recomendamos usar únicamente ejecutores autohospedados o ejecutores más grandes hospedados en GitHub con redes privadas de Azure, donde puede implementar sus propios controles de red. Para obtener más información sobre los ejecutores con redes privadas de Azure, consulte Acerca de las redes privadas de Azure para ejecutores hospedados en GitHub en su empresa.

Para usar Windows con ejecutores autohospedados, siga las instrucciones de la sección Uso de ejecutores autohospedados GitHub Actions anterior, utilizando la etiqueta de sus ejecutores de Windows. Para usar Windows con ejecutores hospedados de GitHub más grandes, siga las instrucciones de la sección Actualización a ejecutores más grandes anterior, utilizando la etiqueta de sus ejecutores de Windows.

Habilitación del almacenamiento de archivos grandes de Git (LFS)

Si usa Git Large File Storage (LFS) para almacenar archivos grandes en su repositorio, deberá personalizar el entorno de Copilot para instalar Git LFS y obtener objetos LFS.

Para habilitar Git LFS, agregue un paso actions/checkout al trabajo copilot-setup-steps con la opción lfs establecida en true.

YAML
# ...

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read # for actions/checkout
    steps:
      - uses: actions/checkout@v5
        with:
          lfs: true

Establecer variables de entorno en el entorno de Copilot.

Puede que quieras establecer variables de entorno en el entorno de Copilot para configurar o autenticar herramientas o dependencias a las que tiene acceso.

A fin de establecer una variable de entorno para Copilot, crea una variable o secreto de GitHub Actions en el entorno de copilot. Si el valor contiene información confidencial, por ejemplo, una contraseña o una clave de API, es mejor usar un secreto de GitHub Actions.

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

  2. Debajo del nombre del repositorio, haz clic en Settings. 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 barra lateral de la izquierda, haz clic en Entornos.

  4. Haz clic en el entorno copilot.

  5. Para agregar un secreto, en "Environment secrets", haz clic en Add environment secret. Para agregar una variable, en "Environment variables", haz clic en Add environment variable.

  6. Rellena los campos "Name" y "Value" y, después, haz clic en Add secret o Add variable, según corresponda.

Información adicional

  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent)