Claude Platform Docs
Managed AgentsKelola konteks agen

Mengakses GitHub

Hubungkan agen Anda ke repositori GitHub untuk melakukan clone, membaca, dan membuat pull request.

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 mendatang yang menggunakan repositori yang sama akan dimulai lebih cepat.

GitHub MCP dan sumber daya sesi

Pertama, buat agen yang mendeklarasikan server GitHub MCP. Definisi agen menyimpan URL server tetapi tidak menyimpan token autentikasi:

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.

Kemudian buat sesi yang memasang repositori GitHub tersebut:

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

Sumber daya github_repository menerima field berikut:

FieldDeskripsi
typeWajib. Harus bernilai "github_repository".
urlWajib. URL HTTPS repositori dalam bentuk https://github.com/<owner>/<repo>, tanpa akhiran .git. Bentuk lain, termasuk URL SSH, akan ditolak dengan invalid_request_error.
authorization_tokenWajib. Token GitHub yang digunakan untuk melakukan clone repositori. Token ini tidak ditampilkan kembali dalam respons API. Lihat Izin token.
mount_pathOpsional. Direktori di bawah /workspace tempat repositori akan di-clone. Default-nya adalah /workspace/<repo-name>.
checkoutOpsional. Branch ({"type": "branch", "name": "main"}) atau commit ({"type": "commit", "sha": "..."}) yang akan di-checkout. Default-nya adalah branch default repositori.

Memasang repositori juga memuat skill apa pun yang disimpan di direktori root .claude/skills repositori tersebut. Skill ditemukan satu kali per sesi, dari status repositori yang di-checkout saat sesi dimulai. Lihat Memuat skill dari repositori GitHub.

Izin token

Saat menyediakan token GitHub, gunakan izin minimum yang diperlukan:

TindakanScope yang diperlukan
Clone repo privatrepo
Membuat PRrepo
Membaca issuerepo (privat) atau public_repo
Membuat issuerepo (privat) atau public_repo

Beberapa repositori

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

Mengelola repositori pada sesi yang sedang berjalan

Setelah sesi dibuat, Anda dapat melihat 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.

# List resources on the session
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id)  # "sesrsc_01ABC..."

# Rotate the authorization token
client.beta.sessions.resources.update(
    repo_resource_id,
    session_id=session.id,
    authorization_token="ghp_your_new_github_token",
)

Membuat pull request

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

Langkah selanjutnya

Lakukan streaming event dan arahkan agen saat ia membuka pull request

Hubungkan lebih banyak server MCP untuk memberi agen alat tambahan

Pasang file di sandbox bersama repositori Anda

Was this page helpful?