Acceso a GitHub
Conecta tu agente a repositorios de GitHub para clonar, leer y crear pull requests.
Puedes montar un repositorio de GitHub en el sandbox de tu sesión y conectarte al MCP de GitHub para crear pull requests.
Los repositorios de GitHub se almacenan en caché, por lo que las sesiones futuras que usen el mismo repositorio se inician más rápido.
MCP de GitHub y recursos de sesión
Primero, crea un agente que declare el servidor MCP de GitHub. La definición del agente contiene la URL del servidor pero ningún token de autenticación:
ant apply code-reviewer.md---
name: Code Reviewer
model: claude-opus-5-5
mcp_servers:
- type: url
name: github
url: https://api.githubcopilot.com/mcp/
tools:
- type: agent_toolset_20260401
- type: mcp_toolset
mcp_server_name: github
---
You are a code review assistant with access to GitHub.Luego crea una sesión que monte el repositorio de GitHub:
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
resources=[
{
"type": "github_repository",
"url": "https://github.com/org/repo",
"mount_path": "/workspace/repo",
"authorization_token": "ghp_your_github_token",
},
],
)Un recurso github_repository acepta los siguientes campos:
| Campo | Descripción |
|---|---|
type | Obligatorio. Debe ser "github_repository". |
url | Obligatorio. La URL HTTPS del repositorio en la forma https://github.com/<owner>/<repo>, sin un sufijo .git. Otras formas, incluidas las URL SSH, se rechazan con un invalid_request_error. |
authorization_token | Obligatorio. El token de GitHub usado para clonar el repositorio. No se muestra en las respuestas de la API. Consulta Permisos de token. |
mount_path | Opcional. El directorio bajo /workspace en el que clonar el repositorio. Por defecto es /workspace/<repo-name>. |
checkout | Opcional. Una rama ({"type": "branch", "name": "main"}) o commit ({"type": "commit", "sha": "..."}) a revisar. Por defecto es la rama predeterminada del repositorio. |
Montar un repositorio también carga cualquier skill almacenada en su directorio raíz .claude/skills. Las skills se descubren una vez por sesión, a partir del estado del repositorio revisado al inicio de la sesión. Consulta Cargar skills desde un repositorio de GitHub.
Permisos de token
Al proporcionar un token de GitHub, usa los permisos mínimos requeridos:
| Acción | Scopes requeridos |
|---|---|
| Clonar repos privados | repo |
| Crear PRs | repo |
| Leer issues | repo (privado) o public_repo |
| Crear issues | repo (privado) o public_repo |
Múltiples repositorios
Monta múltiples repositorios agregando entradas al array resources:
resources = [
{
"type": "github_repository",
"url": "https://github.com/org/frontend",
"mount_path": "/workspace/frontend",
"authorization_token": "ghp_your_github_token",
},
{
"type": "github_repository",
"url": "https://github.com/org/backend",
"mount_path": "/workspace/backend",
"authorization_token": "ghp_your_github_token",
},
]Gestión de repositorios en una sesión en ejecución
Después de crear una sesión, puedes listar sus recursos de repositorio y rotar sus tokens de autorización. Cada recurso tiene un id devuelto en el momento de la creación de la sesión (o a través de resources.list) que usas para las actualizaciones. Los repositorios se adjuntan durante toda la vida de la sesión; para cambiar qué repositorios están montados, crea una nueva sesión.
# List resources on the session
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# Rotate the authorization token
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)Creación de pull requests
Con el servidor MCP de GitHub, el agente puede crear ramas, confirmar cambios y enviarlos:
client.beta.sessions.events.send(
session.id,
events=[
{
"type": "user.message",
"content": [
{
"type": "text",
"text": "Fix the type error in src/utils.ts, commit it to a new branch, and push it.",
},
],
},
],
)Próximos pasos
Transmite eventos y dirige al agente mientras abre el pull request
Conecta más servidores MCP para dar al agente herramientas adicionales
Monta archivos en el sandbox junto con tus repositorios
Was this page helpful?