Una app de Copilot de solo lectura también puede gastar créditos

Tech
Visualizaciones 3

Un agente nocturno puede depender del inicio de sesión de una persona. El 27 de octubre GitHub abrió una vista previa pública de autenticación entre servidores para GitHub Apps instaladas en organizaciones y conectadas al Copilot SDK. El servicio actúa como instalación. El detalle llamativo es que Read-only puede autorizar solicitudes con coste.

Solo lectura no significa gratis

La app recibe el permiso de organización Copilot Requests en Read-only y utiliza un token de instalación de corta duración. El consumo y la factura corresponden a la organización propietaria de la instalación. En este contexto, leer incluye autorizar solicitudes que consumen créditos de IA.

Comparación original: app de organización con Copilot Requests: Read-only arriba; Actions con GITHUB_TOKEN y copilot-requests: write abajo. No es una captura ni una prueba ejecutada.
Comparación original: app de organización con Copilot Requests: Read-only arriba; Actions con GITHUB_TOKEN y copilot-requests: write abajo. No es una captura ni una prueba ejecutada.

Imaginemos una empresa con una app de análisis y otra de resúmenes. Ambas pueden tener permisos de lectura y generar gasto. No modificar archivos y consumir capacidad del modelo son cosas compatibles. La identidad de la carga de trabajo cambia quién responde por el uso, no el coste de inferencia.

Actions y los servidores externos tienen entradas distintas

Los servicios externos y otros sistemas CI entregan el token mediante una opción explícita del SDK, como gitHubToken. Solo sirven instalaciones de organización; quedan fuera las personales y las empresariales. La disponibilidad de instalaciones empresariales tratada antes tiene otro alcance.

En repositorios de una organización, GitHub Actions puede usar GITHUB_TOKEN. Esa vía requiere copilot-requests: write en YAML y la política Allow use of Copilot CLI billed to the organization. La autenticación de apps instaladas no necesita esa política. Read-only y write describen rutas diferentes.

Mantener la identidad después de una hora

El token de instalación caduca en una hora. Hay que generar el siguiente y entregarlo al proceso. La documentación indica reiniciar el cliente del proceso hijo con el token nuevo, o el anfitrión de un runtime integrado o existente. Cambiar un archivo no garantiza que el proceso adopte el valor.

useLoggedInUser: false desactiva el descubrimiento automático de credenciales, incluidos tokens de variables de entorno. Por eso hay que pasar el token explícitamente al SDK. Si funciona en el portátil pero no en el servidor, conviene distinguir una sesión personal de respaldo del token realmente entregado.

Cronología hipotética: renovar y entregar el token antes de su caducidad de una hora. Ilustración propia, sin datos de telemetría.
Cronología hipotética: renovar y entregar el token antes de su caducidad de una hora. Ilustración propia, sin datos de telemetría.

Atribución por app, presupuesto de organización

Los propietarios identifican uso de apps en CSV mediante organization y app_client_id. El cruce con client_id de la API de instalaciones permite encontrar app_slug. Esta separación no aparece actualmente en la vista web de uso de IA. Tampoco existe presupuesto individual por app; un presupuesto que solo avisa no frena el consumo.

Suspender o desinstalar la app también bloquea sus otros accesos a recursos de la organización. La mejora es una responsabilidad más clara dentro de las políticas de modelos y gasto. Al separar el servicio de una persona, deben acompañarlo la renovación del token y la titularidad del coste.

Fuentes oficiales

GitHub Changelog · 2026-10-27

GitHub Docs · Server-to-server authentication

GitHub Docs · Manage app Copilot access