Claude Platform Docs
Managed AgentsAgentenkontext verwalten

Zugriff auf GitHub

Verbinde deinen Agenten mit GitHub-Repositories zum Klonen, Lesen und Erstellen von Pull Requests.

Du kannst ein GitHub-Repository in deine Session-Sandbox einbinden und dich mit dem GitHub MCP verbinden, um Pull Requests zu erstellen.

GitHub-Repositories werden zwischengespeichert, sodass zukünftige Sessions, die dasselbe Repository verwenden, schneller starten.

GitHub MCP und Session-Ressourcen

Erstelle zunächst einen Agenten, der den GitHub-MCP-Server deklariert. Die Agentendefinition enthält die Server-URL, aber kein Authentifizierungstoken:

ant apply code-reviewer.md
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.

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",
        },
    ],
)

Eine github_repository-Ressource akzeptiert die folgenden Felder:

FeldBeschreibung
typeErforderlich. Muss "github_repository" sein.
urlErforderlich. Die HTTPS-URL des Repositorys in der Form https://github.com/<owner>/<repo>, ohne .git-Suffix. Andere Formen, einschließlich SSH-URLs, werden mit einem invalid_request_error abgelehnt.
authorization_tokenErforderlich. Das GitHub-Token, das zum Klonen des Repositorys verwendet wird. Es wird in API-Antworten nicht zurückgegeben. Siehe Token-Berechtigungen.
mount_pathOptional. Das Verzeichnis unter /workspace, in das das Repository geklont wird. Standardmäßig /workspace/<repo-name>.
checkoutOptional. Ein Branch ({"type": "branch", "name": "main"}) oder Commit ({"type": "commit", "sha": "..."}), der ausgecheckt werden soll. Standardmäßig der Standard-Branch des Repositorys.

Das Einbinden eines Repositorys lädt außerdem alle Skills, die in dessen Stammverzeichnis .claude/skills gespeichert sind. Skills werden einmal pro Session erkannt, und zwar aus dem Repository-Zustand, der beim Start der Session ausgecheckt ist. Siehe Skills aus einem GitHub-Repository laden.

Token-Berechtigungen

Wenn du ein GitHub-Token bereitstellst, verwende die minimal erforderlichen Berechtigungen:

AktionErforderliche Scopes
Private Repos klonenrepo
PRs erstellenrepo
Issues lesenrepo (privat) oder public_repo
Issues erstellenrepo (privat) oder public_repo

Mehrere Repositories

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",
    },
]

Repositories in einer laufenden Session verwalten

Nachdem eine Session erstellt wurde, kannst du ihre Repository-Ressourcen auflisten und deren Autorisierungstoken rotieren. Jede Ressource hat eine id, die bei der Erstellung der Session (oder über resources.list) zurückgegeben wird und die du für Aktualisierungen verwendest. Repositories bleiben für die gesamte Lebensdauer der Session angebunden; um zu ändern, welche Repositories eingebunden sind, erstelle 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",
)

Pull Requests erstellen

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.",
                },
            ],
        },
    ],
)

Nächste Schritte

Streame Events und steuere den Agenten, während er den Pull Request öffnet

Verbinde weitere MCP-Server, um dem Agenten zusätzliche Tools zu geben

Binde Dateien neben deinen Repositories in der Sandbox ein

Was this page helpful?