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)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: githubPoi 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:
| Campo | Descrizione |
|---|---|
type | Obbligatorio. Deve essere "github_repository". |
url | Obbligatorio. 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_token | Obbligatorio. Il token GitHub utilizzato per clonare il repository. Non viene restituito nelle risposte API. Consulta Permessi del token. |
mount_path | Opzionale. La directory sotto /workspace in cui clonare il repository. Il valore predefinito è /workspace/<repo-name>. |
checkout | Opzionale. 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:
| Azione | Scope richiesti |
|---|---|
| Clonare repo privati | repo |
| Creare PR | repo |
| Leggere issue | repo (privato) o public_repo |
| Creare issue | repo (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?