Skip to main content

Otorgar acceso al agente de nube de GitHub Copilot a los recursos de su organización

Aproveche al máximo Copilot concediéndole acceso a los servidores MCP aprobados y a los paquetes internos.

          agente en la nube de Copilot puede conectarse a servidores MCP, usar paquetes privados y acceder a servicios externos, pero solo si los repositorios de la organización están configurados para permitirlo.

Aunque gran parte de la configuración siguiente se realiza en el nivel de repositorio, los propietarios de la organización tienen control sobre qué recursos están en el ámbito y quién puede configurar el acceso a ellos.

Escenario de ejemplo

La organización usa Sentry para realizar un seguimiento de errores en la aplicación Node. Las nuevas excepciones se generan como problemas en GitHuby los desarrolladores quieren asignar estos problemas a Copilot.

Usted quiere:Copilot

  • Conéctese al servidor MCP de Sentry para que pueda acceder a los detalles de la instancia de Sentry.
  • Instalar dependencias, incluidos los paquetes privados hospedados en GitHub, para compilar la aplicación y ejecutar pruebas
  • Siga las convenciones de su organización para el control de errores

Almacenamiento de secretos de forma segura

De forma predeterminada, el ámbito del token de Copilotautenticación se limita al repositorio donde se ejecuta. Esto significa que Copilot no podrá autenticarse en sistemas externos ni acceder a paquetes privados de ámbito de organización.

Los administradores del repositorio deben agregar variables y secretos que Copilot requieren a un entorno dedicado copilotGitHub Actions . Copilot puede acceder a estos datos en su configuración y ejecución de tareas. No podrá acceder a variables ni secretos fuera de este entorno, como secretos de toda GitHub Actions la organización.

Ejemplo: Guardar un secreto

Un administrador del repositorio guarda un token de autenticación para la instancia de Sentry de la organización.

  1. Vaya a la sección Entornos de la configuración del repositorio.
  2. Cree un nuevo entorno denominado copilot.
  3. Guarde un token de acceso para la instancia de Sentry en un secreto de entorno denominado COPILOT_MCP_SENTRY_ACCESS_TOKEN.

Sugerencia

No es necesario guardar un token para el registro privado GitHub Packages , al que accederemos mediante el estándar GitHub ActionsGITHUB_TOKEN. Sin embargo, querrá guardar un token de autenticación si estuviera usando un registro de paquetes externo.

Configuración del acceso a servidores MCP

Los propietarios de la organización y de la empresa pueden establecer una directiva para permitir que los usuarios configuren el acceso a los servidores MCP. Si esta directiva está habilitada, los usuarios pueden configurar servidores MCP para agente en la nube de Copilot en la configuración del repositorio o en perfiles de agente personalizados. Para la coherencia de toda la organización, se recomienda crear perfiles de agente personalizados en el nivel de organización o de empresa.

Una sesión que usa un agente personalizado tiene acceso a los servidores MCP configurados tanto en la configuración del repositorio como en el perfil del agente. Sin embargo, cuantos más casos de uso cubra con agentes personalizados de toda la organización, menos usuarios tendrán que configurar el acceso ad hoc a los servidores MCP en la configuración del repositorio.

Se recomienda navegar por el GitHub Registro MCP para encontrar opciones de confianza y altamente calificadas.

Ejemplo: Creación de un agente personalizado

Un propietario de la organización crea un perfil de agente personalizado para el agente Sentry. Tiene acceso al servidor MCP de Sentry e instrucciones personalizadas para las convenciones de control de errores de la organización.

  1. Cree un repositorio llamado .github-private en la organización. Opcionalmente, un propietario de la empresa puede establecer este repositorio como origen para todos los agentes personalizados de la empresa.

  2. En el repositorio, agregue un agent.md archivo con un perfil como el siguiente. Esto incluye la configuración del servidor MCP, que hace referencia al secreto que hemos guardado.

    ---
    name: sentry-error-fixer
    description: Proposed fixes for exception issues raised from Sentry
    mcp-servers:
      sentry:
        type: 'local'
        command: 'npx'
        args: ['@sentry/mcp-server@latest']
        env:
          SENTRY_ACCESS_TOKEN: ${{ secrets.COPILOT_MCP_SENTRY_ACCESS_TOKEN }}
    ---
    
    You are an error resolution specialist. When you're assigned an issue created by our Sentry integration, check for error details and stack traces using the MCP server, then propose a fix.
    
    Make sure you check that your proposed fix works by building the site with `npm run build` and running the test suite in `npm test`.
    
  3. Cuando los desarrolladores asignan un problema a Copilot, pueden seleccionar el agente personalizado en una lista desplegable.

Instalación de paquetes privados

La mejor manera de conceder Copilot acceso a las dependencias de un proyecto es instalarlas en un copilot-setup-steps.yml archivo de flujo de trabajo. Este archivo define cómo se configura el entorno antes de Copilot empezar a funcionar.

Para permitir que el flujo de trabajo extraiga tus paquetes privados con alcance en la organización, debes actualizar la configuración del paquete para asegurar que el repositorio GITHUB_TOKEN tenga acceso a dicho paquete. Esto es más seguro que usar un personal access token de larga duración con permisos de organización.

Ejemplo: Instalación de dependencias de node

Un desarrollador crea un flujo de trabajo para instalar las dependencias del nodo definidas en el archivo de package-lock.json un repositorio. Esto incluye paquetes privados dentro del ámbito organizacional hospedados en GitHub.

  1. El desarrollador crea un copilot-setup-steps.yml archivo en el repositorio.

  2. Agregan pasos para instalar las dependencias del proyecto. Por ejemplo:

    # ...
    
    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
    
  3. Un administrador de la organización garantiza que el repositorio tenga acceso a los paquetes privados de la organización concediéndole acceso al repositorio en la configuración de cada paquete. Consulte Configurar la visibilidad y el control de accesos de un paquete.

Sugerencia

Si necesita acceder a paquetes hospedados internamente dentro de la red corporativa, es posible que tenga que ejecutarse agente en la nube de Copilot en ejecutores autohospedados GitHub Actions .

Controlar quién puede configurar estas opciones

Ahora ha visto cómo se controla el acceso a los recursos en los niveles de repositorio y organización, tenga en cuenta cuánto ámbito desea conceder a los usuarios que administren esta configuración.

  1.        **Elija qué repositorios tienen acceso** a agente en la nube de Copilot. Si le preocupa un repositorio específico, puede bloquearlo para todos los usuarios.
    
  2.        **Tenga en cuenta quién obtiene acceso de administrador** a estos repositorios. Puede controlarlo en el nivel de organización mediante la creación de un equipo con el rol personalizado **administrador de todo el repositorio** . Estos usuarios podrán administrar _las opciones_ de configuración, como la configuración de MCP y `copilot` los entornos, en todos los repositorios.
    
  3.        **Use conjuntos de reglas y archivos CODEOWNERS** para controlar las modificaciones de _los archivos_ de configuración, como `copilot-setup-steps.yml`, que cualquier persona con acceso de escritura puede editar de forma predeterminada.
    
  4.        **Revise el firewall predeterminado**. El firewall no afecta a las conexiones a servidores MCP ni a los pasos de configuración de `copilot-setup-steps.yml`, pero limita Copilotel acceso a Internet durante la ejecución de la tarea. Consulte [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-firewall).