Vous pouvez monter un dépôt GitHub dans le bac à sable de votre session et vous connecter au MCP GitHub pour créer des pull requests.
Les dépôts GitHub sont mis en cache, de sorte que les sessions futures utilisant le même dépôt démarrent plus rapidement.
Commencez par créer un agent qui déclare le serveur MCP GitHub. La définition de l'agent contient l'URL du serveur, mais aucun jeton d'authentification :
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: githubCréez ensuite une session qui monte le dépôt 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",
},
],
)Le champ resources[].authorization_token authentifie l'opération de clonage du dépôt et n'est pas renvoyé dans les réponses de l'API.
Le montage d'un dépôt charge également toutes les compétences stockées dans son répertoire racine .claude/skills. Les compétences sont découvertes une seule fois par session, à partir de l'état du dépôt extrait au démarrage de la session. Consultez Charger des compétences depuis un dépôt GitHub.
Lorsque vous fournissez un jeton GitHub, utilisez les permissions minimales requises :
| Action | Portées requises |
|---|---|
| Cloner des dépôts privés | repo |
| Créer des PR | repo |
| Lire des issues | repo (privé) ou public_repo |
| Créer des issues | repo (privé) ou public_repo |
Montez plusieurs dépôts en ajoutant des entrées au tableau 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",
},
]Une fois la session créée, vous pouvez lister ses ressources de dépôt et renouveler leurs jetons d'autorisation. Chaque ressource possède un id renvoyé au moment de la création de la session (ou via resources.list) que vous utilisez pour les mises à jour. Les dépôts sont attachés pour toute la durée de vie de la session ; pour modifier les dépôts montés, créez une nouvelle session.
# Lister les ressources de la session
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# Effectuer la rotation du jeton d'autorisation
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)Avec le serveur MCP GitHub, l'agent peut créer des branches, valider des modifications et les pousser :
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.",
},
],
},
],
)Diffusez les événements et orientez l'agent pendant qu'il ouvre la pull request
Connectez davantage de serveurs MCP pour donner à l'agent des outils supplémentaires
Montez des fichiers dans le bac à sable aux côtés de vos dépôts
Was this page helpful?