Anda dapat memasang (mount) repositori GitHub ke sandbox sesi Anda dan terhubung ke GitHub MCP untuk membuat pull request.
Repositori GitHub di-cache, sehingga sesi berikutnya yang menggunakan repositori yang sama akan dimulai lebih cepat.
Semua permintaan Managed Agents API memerlukan beta header managed-agents-2026-04-01. SDK menetapkan beta header tersebut secara otomatis.
Pertama, buat agen yang mendeklarasikan server GitHub MCP. Definisi agen menyimpan URL server tetapi tidak menyimpan token autentikasi:
AGENT_ID=$(ant beta:agents create \
--name "Code Reviewer" \
--model '{id: claude-opus-4-8}' \
--system "You are a code review assistant with access to GitHub." \
--mcp-server '{type: url, name: github, url: https://api.githubcopilot.com/mcp/}' \
--tool '{type: agent_toolset_20260401}' \
--tool '{type: mcp_toolset, mcp_server_name: github}' \
--transform id --raw-output)Kemudian buat sesi yang memasang repositori 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",
},
],
)resources[].authorization_token mengautentikasi operasi clone repositori dan tidak ditampilkan kembali dalam respons API.
Saat menyediakan token GitHub, gunakan izin minimum yang diperlukan:
| Tindakan | Scope yang diperlukan |
|---|---|
| Clone repositori privat | repo |
| Membuat PR | repo |
| Membaca issue | repo (privat) atau public_repo |
| Membuat issue | repo (privat) atau public_repo |
Gunakan fine-grained personal access token dengan izin minimum yang diperlukan. Hindari menggunakan token dengan akses luas ke akun GitHub Anda.
Pasang beberapa repositori dengan menambahkan entri ke 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",
},
]Setelah sesi dibuat, Anda dapat menampilkan daftar sumber daya repositorinya dan merotasi token otorisasinya. Setiap sumber daya memiliki id yang dikembalikan pada saat pembuatan sesi (atau melalui resources.list) yang Anda gunakan untuk pembaruan. Repositori terpasang selama masa hidup sesi; untuk mengubah repositori mana yang dipasang, buat sesi baru.
# Daftar resource pada sesi
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# Rotasi token otorisasi
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)Dengan server GitHub MCP, agen dapat membuat branch, melakukan commit perubahan, dan melakukan push:
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.",
},
],
},
],
)Lakukan streaming event dan arahkan agen saat membuka pull request
Hubungkan lebih banyak server MCP untuk memberikan alat tambahan kepada agen
Pasang file di sandbox bersama dengan repositori Anda
Was this page helpful?