Claude Platform Docs
Managed AgentsGestire il contesto dell'agente

Accesso a GitHub

Connetti il tuo agente ai repository GitHub per clonare, leggere e creare pull request.

Puoi montare un repository GitHub nel sandbox della tua sessione e connetterti al GitHub MCP per creare pull request.

I repository GitHub vengono memorizzati nella cache, quindi le sessioni future che utilizzano lo stesso repository si avviano più velocemente.

GitHub MCP e risorse della sessione

Per prima cosa, crea un agente che dichiara il server GitHub MCP. La definizione dell'agente contiene l'URL del server ma nessun token di autenticazione:

AGENT_ID=$(ant beta:agents create --transform id --raw-output < code-reviewer.agent.yaml)
code-reviewer.agent.yaml
name: Code Reviewer
model:
  id: claude-opus-5
system: You are a code review assistant with access to GitHub.
mcp_servers:
  - type: url
    name: github
    url: https://api.githubcopilot.com/mcp/
tools:
  - type: agent_toolset_20260401
  - type: mcp_toolset
    mcp_server_name: github

Poi crea una sessione che monta il repository 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",
        },
    ],
)

Una risorsa github_repository accetta i seguenti campi:

CampoDescrizione
typeObbligatorio. Deve essere "github_repository".
urlObbligatorio. L'URL HTTPS del repository nella forma https://github.com/<owner>/<repo>, senza il suffisso .git. Altre forme, inclusi gli URL SSH, vengono rifiutate con un invalid_request_error.
authorization_tokenObbligatorio. Il token GitHub utilizzato per clonare il repository. Non viene restituito nelle risposte API. Consulta Permessi del token.
mount_pathOpzionale. La directory sotto /workspace in cui clonare il repository. Il valore predefinito è /workspace/<repo-name>.
checkoutOpzionale. Un branch ({"type": "branch", "name": "main"}) o commit ({"type": "commit", "sha": "..."}) da effettuare il checkout. Il valore predefinito è il branch predefinito del repository.

Il montaggio di un repository carica anche eventuali skill memorizzate nella sua directory radice .claude/skills. Le skill vengono individuate una volta per sessione, dallo stato del repository sottoposto a checkout all'avvio della sessione. Consulta Caricare skill da un repository GitHub.

Permessi del token

Quando fornisci un token GitHub, usa i permessi minimi richiesti:

AzioneScope richiesti
Clonare repo privatirepo
Creare PRrepo
Leggere issuerepo (privato) o public_repo
Creare issuerepo (privato) o public_repo

Repository multipli

Monta più repository aggiungendo voci all'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",
    },
]

Gestione dei repository su una sessione in esecuzione

Dopo che una sessione è stata creata, puoi elencare le sue risorse repository e ruotare i loro token di autorizzazione. Ogni risorsa ha un id restituito al momento della creazione della sessione (o tramite resources.list) che usi per gli aggiornamenti. I repository sono collegati per tutta la durata della sessione; per cambiare quali repository sono montati, crea una nuova sessione.

# Elenca le risorse nella sessione
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id)  # "sesrsc_01ABC..."

# Ruota il token di autorizzazione
client.beta.sessions.resources.update(
    repo_resource_id,
    session_id=session.id,
    authorization_token="ghp_your_new_github_token",
)

Creazione di pull request

Con il server GitHub MCP, l'agente può creare branch, effettuare il commit delle modifiche e inviarle:

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

Prossimi passi

Trasmetti eventi in streaming e guida l'agente mentre apre la pull request

Connetti altri server MCP per fornire all'agente strumenti aggiuntivi

Monta file nel sandbox insieme ai tuoi repository

Was this page helpful?