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:

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.

Quindi crea una sessione che monti il repository GitHub. Con un ambiente limited, la creazione della sessione fallisce con un errore 400 quando l'agente dichiara un server MCP il cui host non è presente in allowed_hosts. Impostare allow_mcp_servers su true nella configurazione di rete dell'ambiente disattiva questo controllo.

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 aver creato una sessione, puoi elencarne le risorse repository e ruotarne i token di autorizzazione. Ogni risorsa ha un id restituito al momento della creazione della sessione (o tramite client.beta.sessions.resources.list()) che usi per gli aggiornamenti. I repository restano collegati per tutta la durata della sessione; per cambiare i repository 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?