Sie können ein GitHub-Repository in Ihren Session-Container einbinden und eine Verbindung zum GitHub MCP herstellen, um Pull Requests zu erstellen.
GitHub-Repositories werden zwischengespeichert, sodass zukünftige Sessions, die dasselbe Repository verwenden, schneller starten.
Alle Managed Agents API-Anfragen erfordern den managed-agents-2026-04-01 Beta-Header. Das SDK setzt den Beta-Header automatisch.
Erstellen Sie 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-7}' \
--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)Erstellen Sie 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 Repository-Klonvorgang und wird in API-Antworten nicht zurückgegeben.
Verwenden Sie beim Bereitstellen eines GitHub-Tokens 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 |
Verwenden Sie fein abgestufte persönliche Zugriffstoken mit minimal erforderlichen Berechtigungen. Vermeiden Sie die Verwendung von Token mit umfassendem Zugriff auf Ihr GitHub-Konto.
Binden Sie mehrere Repositories ein, indem Sie Einträge zum resources-Array hinzufügen:
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, können Sie ihre Repository-Ressourcen auflisten und deren Autorisierungstoken rotieren. Jede Ressource hat eine id, die zum Zeitpunkt der Session-Erstellung zurückgegeben wird (oder über resources.list), die Sie für Aktualisierungen verwenden. Repositories sind für die Lebensdauer der Session eingebunden; um zu ändern, welche Repositories eingebunden sind, erstellen Sie eine neue Session.
# 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",
)Mit dem GitHub MCP-Server kann der Agent Branches erstellen, Änderungen committen und diese 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.",
},
],
},
],
)Was this page helpful?