Du kannst ein GitHub-Repository in die Sandbox deiner Session einbinden und dich mit dem GitHub MCP verbinden, um Pull Requests zu erstellen.
GitHub-Repositories werden gecacht, sodass zukünftige Sessions, die dasselbe Repository verwenden, schneller starten.
Alle Managed Agents API-Anfragen erfordern den Beta-Header managed-agents-2026-04-01. Das SDK setzt den Beta-Header automatisch.
Erstelle zunächst einen Agenten, der den GitHub MCP-Server deklariert. Die Agentendefinition enthält die Server-URL, aber kein Auth-Token:
AGENT_ID=$(ant beta:agents create \
--name "Code Reviewer" \
--model '{id: claude-opus-4-8}' \
--system "You are a code review assistant with access to GitHub." \
--mcp-server '{type: url, name: github, url: https://api.githubcopilot.com/mcp/}' \
--tool '{type: agent_toolset_20260401}' \
--tool '{type: mcp_toolset, mcp_server_name: github}' \
--transform id --raw-output)Erstelle dann eine Session, die das GitHub-Repository einbindet:
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",
},
],
)Das resources[].authorization_token authentifiziert den Klonvorgang des Repositories und wird in API-Antworten nicht zurückgegeben.
Wenn du ein GitHub-Token bereitstellst, verwende die minimal erforderlichen Berechtigungen:
| Aktion | Erforderliche Scopes |
|---|---|
| Private Repos klonen | repo |
| PRs erstellen | repo |
| Issues lesen | repo (privat) oder public_repo |
| Issues erstellen | repo (privat) oder public_repo |
Verwende fein abgestufte Personal Access Tokens mit den minimal erforderlichen Berechtigungen. Vermeide die Verwendung von Tokens mit weitreichendem Zugriff auf dein GitHub-Konto.
Binde mehrere Repositories ein, indem du Einträge zum resources-Array hinzufügst:
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",
},
]Nachdem eine Session erstellt wurde, kannst du ihre Repository-Ressourcen auflisten und deren Authorization-Tokens rotieren. Jede Ressource hat eine id, die bei der Session-Erstellung (oder über resources.list) zurückgegeben wird und die du für Updates verwendest. Repositories sind für die Lebensdauer der Session angehängt; um zu ändern, welche Repositories eingebunden sind, erstelle eine neue Session.
# Liste die Ressourcen der Session auf
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# Rotiere das Autorisierungs-Token
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)Mit dem GitHub MCP-Server kann der Agent Branches erstellen, Änderungen committen und sie pushen:
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.",
},
],
},
],
)Streame Events und steuere den Agenten, während er den Pull Request öffnet
Verbinde weitere MCP-Server, um dem Agenten zusätzliche Tools zur Verfügung zu stellen
Binde Dateien neben deinen Repositories in die Sandbox ein
Was this page helpful?