Di akhir panduan ini, percakapan Claude yang terhubung ke osFoundry bisa membaca repository GitNest, mencari di kodenya, dan menyiapkan perubahan: sebuah task, commit file, change set, retry check, atau pull request. Tidak ada yang terjadi saat Claude memintanya. Setiap aksi masuk sebagai usulan di "Needs your approval" (menunggu persetujuanmu) di osFoundry, lengkap dengan file, branch, dan commit persisnya di kartu, dan baru berjalan saat kamu klik Approve. Claude tidak punya tool yang menulis langsung ke repository.
Siapa mengerjakan apa
| Sisi Claude | Sisi osFoundry | |
|---|---|---|
| Login | Akun Claude kamu, tidak berubah | Akun osFoundry kamu sudah menyetujui koneksi sekali |
| Yang bisa dilihat | Apa yang dikembalikan tool baca | Repository GitNest yang ditetapkan ke project tempat koneksi berada |
| Membaca kode |
search_gitnest_code: potongan baris yang dibatasi |
Tanpa file biner, tanpa isi file utuh, tanpa kredensial atau binding lokal |
| Mengubah kode | Tujuh tool propose_gitnest_…
|
Satu usulan per panggilan, menunggu kamu |
| Siapa yang menyetujui | Tidak ada di sisi Claude | Kamu, pemilik koneksi, selama masih punya peran di repository |
| Siapa yang menulis | Tidak ada | osFoundry menjalankan aksi yang disetujui, tercatat atas nama koneksi |
| Token provider | Tidak pernah dikirim | Akun GitHub/GitLab yang kamu tautkan hanya dipakai saat kamu menyetujui PR provider |
Persiapan
1. Hubungkan chat sekali saja
Kalau chat Claude belum terhubung ke osFoundry, bagian ini adalah alur custom connector biasa: buat koneksi lewat ikon kunci → Connected, tambahkan alamat servernya di Claude sebagai custom connector, lalu setujui satu workspace. Anthropic menjelaskan sisi Claude di panduan custom connector miliknya. Sisa panduan ini mengasumsikan koneksi sudah menampilkan "Connected."
2. Masukkan repository ke sebuah project
Koneksi tidak pernah melihat repository GitNest dengan sendirinya. Repository harus termasuk dalam project tempat koneksi berada.
Buka repository di GitNest dan cari bagian Project. Teksnya berbunyi "Connected agents in this project can use approved GitNest read tools when their connection owner still has repository access." Hanya pemilik repository yang mendapat pemilih project; orang lain hanya melihat nama project sebagai teks biasa. Pilih project-nya. osFoundry mengonfirmasi dengan "Repository project updated."
3. Tambahkan koneksi ke project itu
Kembali ke ikon kunci → Connected, pilih koneksinya, dan di bawah Projects tambahkan ke project yang sama. Repository GitNest milik project itu ikut masuk, bersama Notes, knowledge base, dan konten tersinkron lainnya.
Buka Tools. "All supported tools are on by default", dan daftarnya menampilkan setiap tool dengan spasi sebagai pengganti garis bawah. Yang untuk GitNest adalah:
read gitnest repository propose gitnest work
search gitnest code propose gitnest change set
list gitnest work propose gitnest server composition
read gitnest work propose gitnest file import
list gitnest saved results propose gitnest check rerun
list gitnest checks propose gitnest native publication
propose gitnest provider publication
Contoh: Checklist Tools sebuah koneksi Claude, semuanya aktif secara default
Kalau kamu ingin Claude berhenti di commit dan tidak pernah menyiapkan pull request, hapus centang dua tool publication lalu klik Save tools. Bagaimanapun, usulan tetap butuh persetujuanmu. Menghapus centang hanya berarti Claude tidak bisa memintanya.
4. Minta lewat chat
Di percakapan Claude, aktifkan connector osFoundry dari menu + → Connectors lalu minta dengan bahasa biasa. Kalau kamu menambahkan server yang sama ke Claude Code dengan nama osfoundry, tool-nya muncul di sana sebagai mcp__osfoundry__propose_gitnest_file_import dan seterusnya.
Contoh jalannya
Nama tool dan nama argumen di bawah ini adalah yang didaftarkan server osFoundry di tools/list. Repository, prompt, ID, dan balasannya adalah konten contoh.
Contoh
Kamu: Di osFoundry, tambahkan CONTRIBUTING.md ke demo-api yang menjelaskan cara
menjalankan test (pakai pytest di tests/), dan buka task prioritas rendah
untuk menautkannya dari README.
Claude → list_granted_resources {}
← project "API" · repository GitNest "demo-api"
Claude → read_gitnest_repository {"repository_id": "…"}
← repository native, branch default main
Claude → search_gitnest_code {"repository_id": "…", "query": "pytest", "branch": "main"}
← pyproject.toml: [tool.pytest.ini_options] · tests/test_limits.py: import pytest
Claude → propose_gitnest_file_import {"repository_id": "…", "branch": "main",
"message": "Add CONTRIBUTING.md with test instructions",
"files": [{"path": "CONTRIBUTING.md", "content": "# Contributing\n…"}],
"idempotency_key": "…"}
← usulan menunggu pemilik
Claude → propose_gitnest_work {"repository_id": "…",
"title": "Link CONTRIBUTING.md from README", "priority": "low",
"idempotency_key": "…"}
← usulan menunggu pemilik
Claude: Saya sudah menyiapkan dua usulan di osFoundry: satu commit yang menambahkan
CONTRIBUTING.md ke main, dan satu task untuk menautkannya dari README.
Belum ada yang di-commit. Keduanya menunggu persetujuanmu.
Di osFoundry, header menampilkan "Claude research proposes GitNest file changes", dan panel koneksi mencantumkan keduanya di bawah "Needs your approval". Kartu commit bertuliskan "Commit GitNest files in demo-api", lalu "Commit to branch: main", pesan commit, dan "Review all proposed files (1)" yang terlipat dan bisa dibuka untuk melihat CONTRIBUTING.md lengkap. Di bawahnya: "Expires …", Approve and create, Decline.
Contoh: Usulan publish GitNest di bawah Needs your approval
Prompt kedua, untuk change set yang sudah ada:
Contoh
Kamu: Change set rate-limit sudah hijau? Kalau integration gagal, ulangi,
dan begitu lolos, siapkan sebagai pull request.
Claude → list_gitnest_work {"repository_id": "…", "kind": "changes"}
← "Rate-limit fix" · versi 3
Claude → list_gitnest_checks {"repository_id": "…", "change_set_id": "…"}
← commit tersusun 9c1e47a…: unit lolos · integration gagal (selesai)
Claude → propose_gitnest_check_rerun {"repository_id": "…", "change_set_id": "…",
"check_name": "integration", "expected_change_set_version": 3,
"expected_composition_oid": "9c1e47a…", "idempotency_key": "…"}
← usulan menunggu pemilik
… kamu menyetujui retry, hasilnya lolos …
Claude → propose_gitnest_native_publication {"repository_id": "…", "change_set_id": "…",
"expected_change_set_version": 3,
"expected_composition_oid": "9c1e47a…", "idempotency_key": "…"}
← usulan menunggu pemilik
Perhatikan apa yang harus dikirim Claude. Retry dan publication sama-sama menyebut versi change set dan commit tersusun yang dilihat Claude. Kalau ada yang menyusun ulang change set sebelum kamu klik, versi atau commit yang akan kamu setujui sudah bukan yang ada di kartu, dan pengecekan ulang osFoundry saat persetujuan menolak menjalankannya.
Apa yang diminta setiap kartu untuk kamu setujui
| Tool | Judul kartu | Tombol | Yang terjadi saat disetujui |
|---|---|---|---|
propose_gitnest_work |
Create GitNest work | Approve and create | Membuat Todo dan work item GitNest |
propose_gitnest_change_set |
Create GitNest draft change set | Approve and create | Membuat change set draft dari hasil run yang tersimpan. Tidak ada yang disusun atau dipublikasikan |
propose_gitnest_server_composition |
Compose GitNest change set | Approve and create | Menyusun change set di server setelah mengecek ulang versinya |
propose_gitnest_file_import |
Commit GitNest files | Approve and create | Meng-commit hingga 20 file UTF-8 (total 200 KB) ke branch yang tertera di kartu |
propose_gitnest_check_rerun |
Retry GitNest check | Approve retry | Memasukkan ulang satu check yang sudah selesai ke antrean untuk versi dan commit itu |
propose_gitnest_native_publication |
Publish GitNest pull request | Approve and publish | Membuat branch publication dan membuka pull request di repository native |
propose_gitnest_provider_publication |
Open a draft GitHub or GitLab pull request | Approve and publish | Push hanya branch change set tersebut dengan akun provider yang kamu tautkan dan membuka draft PR |
Kartu yang merujuk ke change set memuat "Change set: … · expected version N", "Reviewed commit: …", dan tautan "Review change set before approving" yang membukanya di GitNest. Dua kartu publication masing-masing menambahkan satu baris tentang apa yang akan terjadi, misalnya "Approval creates a publication branch and opens a pull request in this native repository."
Di mana batasnya
Koneksi Claude tidak bisa menulis ke GitNest. Route tulis milik GitNest sendiri menolak akses dengan scope agen (denyAgentScope di route GitNest osFoundry), dan tool Connected tidak memanggilnya. Chat Claude hanya bisa mengajukan usulan, dan osFoundry sendiri yang menjalankan aksinya setelah kamu menyetujui, tercatat dengan koneksi sebagai sumbernya. Dengan begitu hanya ada satu jalur untuk setiap penulisan oleh agen, dan kamu bisa mengauditnya.
Persetujuan dicek ulang tepat saat kamu klik. osFoundry memeriksa lagi bahwa koneksi masih aktif, repository masih berada di project tempat koneksi bergabung, kamu masih memegang peran di repository, dan usulan belum kedaluwarsa. Untuk composition, retry, atau publication, osFoundry juga mengecek versi change set dan commit-nya, dan untuk publication juga kebijakan risiko repository, check wajib, dan branch tujuan. Usulan yang ditolak, kedaluwarsa, atau usang tidak akan berjalan. Setiap tool propose menerima idempotency_key, jadi panggilan yang diulang Claude setelah balasan terputus tidak dihitung sebagai permintaan kedua.
Tidak ada yang di-deploy di sini. Paling jauh, sebuah usulan sampai di pull request: PR native GitNest, atau draft PR di GitHub atau GitLab. Merge, dan apa pun yang dipicu merge, tetap di tanganmu di GitNest atau di provider.
Token provider Git kamu tidak pernah sampai ke Claude. PR provider memakai akun yang kamu tautkan di osFoundry, pada saat persetujuan, dan hanya push branch khusus milik change set itu, tidak pernah ref kamu yang lain.
Pembacaan sengaja dibatasi. search_gitnest_code mengembalikan potongan baris yang dibatasi, tidak pernah file biner atau file utuh. Pembacaan work, run, dan hasil tersimpan tidak menyertakan binding lokal dan kredensial. Untuk mengubah file yang sudah ada, tempel isi terbarunya ke chat supaya Claude bisa mengusulkan versi baru secara utuh. Menambah file baru bisa langsung dari potongan barisnya.
Selanjutnya
Coba penulisan terkecil dulu: minta Claude mengusulkan satu file baru saja, misalnya CONTRIBUTING.md, lalu buka kartunya dan bentangkan "Review all proposed files" sebelum kamu menyetujui. Cara GitNest sendiri menangani clone, push, dan access token ada di halaman fitur GitNest.


Top comments (0)