{"slug": "cara-membuat-claude-code-membaca-check-gitnest-dan-mengusulkan-retry-yang-kamu", "title": "Cara membuat Claude Code membaca check GitNest dan mengusulkan retry yang kamu setujui di osFoundry", "summary": "A developer documented how to connect Claude Code to osFoundry via an HTTP MCP endpoint, letting the agent read GitNest check status for a change set's composed commit and propose retrying a single flaky check. Retries are not executed on request: the proposal lands in osFoundry as a \"Retry GitNest check\" card tied to a specific change set version and commit, and only runs after the user clicks Approve retry. The setup requires a registered runner, a checks.yaml defining required checks, and scoped osfoundry:read and osfoundry:write connections limited to repositories assigned to the project.", "body_md": "Setelah mengikuti panduan ini, kamu bisa bertanya ke Claude Code \"apakah change set checkout sudah hijau?\" dan mendapat jawaban yang dibaca dari [osFoundry](https://osfoundry.io/id), bukan ditebak dari hasil test lokalmu. Claude Code menampilkan daftar check pada composed commit milik change set, memberi tahu mana yang gagal, dan kalau kelihatannya flaky, mengajukan retry untuk satu check itu saja. Retry tidak langsung jalan saat Claude Code memintanya. Permintaan itu masuk ke osFoundry sebagai kartu \"Retry GitNest check\" lengkap dengan versi change set dan commit persisnya, dan baru dijalankan ketika kamu mengklik Approve retry.\n\n|  | Claude Code | osFoundry | \n|---|---|---|\n| Login | Login miliknya sendiri di mesinmu | Koneksi yang sudah kamu setujui sekali untuk satu workspace, dengan scope `osfoundry:read` dan`osfoundry:write` | \n| Repository mana | Memilih dari yang didaftarkan server | Hanya repository GitNest yang ditetapkan ke project tempat koneksi itu berada | \n| Membaca check | `list_gitnest_checks` pada satu change set | Mengembalikan status terbatas untuk composed commit change set saat ini | \n| Menjalankan check | Tidak pernah | Mesin runner yang kamu daftarkan yang menjalankannya. osFoundry tidak mengeksekusi kodemu | \n| Retry check | `propose_gitnest_check_rerun` , yang ditandai destruktif, jadi Claude Code bertanya dulu | Sebuah kartu di bawah \"Needs your approval\" (menunggu persetujuanmu). Approve retry memasukkan ulang satu check yang sudah selesai itu ke antrean | \n| Apa yang dicek ulang | Tidak ada | Saat disetujui: akses repository, versi change set, commit, dan status check | \n\n``` bash\n$ claude mcp add --transport http -s user osfoundry https://api.osfoundry.io/api/v1/external-mcp\n```\n\nCLI osFoundry mencetak baris yang sama lewat `osfoundry agent connect claude --print`. Di Claude Code, jalankan `/mcp`, pilih `osfoundry`, lalu pilih Authenticate. Browser akan membuka osFoundry, dan kamu memilih satu workspace. Setelah itu tool-nya muncul sebagai `mcp__osfoundry__…`.\n\nCheck yang belum pernah jalan tidak bisa dibaca atau di-retry. Di GitNest, buka halaman pengaturan repository. Ada dua panel yang penting di sini:\n\n`OSF_RUNNER_TOKEN=… osfoundry-runner --api https://api.osfoundry.io`. Tanpa runner, panel memberi peringatan \"Checks will stay queued until one is.\"`.osfoundry/checks.yaml`. \"A change set cannot merge until every check named here has passed on its commit.\"\nDi GitNest, bagian Project pada repository bertuliskan \"Connected agents in this project can use approved GitNest read tools when their connection owner still has repository access.\" Hanya pemilik repository yang mendapat pemilihnya. Pilih sebuah project, dan osFoundry mengonfirmasi \"Repository project updated\".\n\nLalu buka ikon kunci → Connected, pilih koneksi Claude Code, dan di bawah Projects tambahkan ke project tersebut.\n\n*Contoh: Menambahkan koneksi Claude Code ke project yang berisi repository*\n\nDi bawah Tools pada panel yang sama, \"All supported tools are on by default.\" Tool yang dipakai di panduan ini muncul sebagai `list gitnest work`, `list gitnest checks`, `list gitnest saved results`, `read gitnest work`, dan `propose gitnest check rerun`. Kalau mau Claude Code hanya bisa membaca check, hapus centang `propose gitnest check rerun` lalu klik Save tools.\n\nNama tool dan argumen adalah yang dikembalikan server osFoundry dari `tools/list`. Repository, change set, ID, nama check, dan balasannya adalah konten contoh.\n\n```\nExample\n\nYou: Is the checkout-retry change set in shop-api green? If a check failed\n     for a reason that isn't the code, ask osFoundry to retry it.\n\nClaude Code → mcp__osfoundry__list_granted_resources {}\n            ← project \"Payments\" · GitNest repository \"shop-api\"\nClaude Code → mcp__osfoundry__list_gitnest_work {\"repository_id\": \"…\", \"kind\": \"changes\"}\n            ← \"Fix double charge on checkout retry\" (cs_4e81a0) · version 3\nClaude Code → mcp__osfoundry__list_gitnest_checks {\"repository_id\": \"…\", \"change_set_id\": \"cs_4e81a0\"}\n            ← composed commit 9c1e47a…: unit passed · lint passed · e2e failed\nClaude Code → mcp__osfoundry__list_gitnest_saved_results {\"repository_id\": \"…\", \"limit\": 10}\n            ← 2 saved results behind this change set\nClaude Code → mcp__osfoundry__read_gitnest_work {\"repository_id\": \"…\", \"kind\": \"runs\", \"item_id\": \"…\"}\n            ← run summary: payment client tests passed locally\n\nClaude Code: unit and lint passed on 9c1e47a. e2e failed. The change only\n             touches the payment client, and its tests passed in the saved\n             run, so a retry is reasonable. Shall I propose one?\n\nYou: Yes.\n\nClaude Code → mcp__osfoundry__propose_gitnest_check_rerun\n                {\"repository_id\": \"…\", \"change_set_id\": \"cs_4e81a0\",\n                 \"check_name\": \"e2e\", \"expected_change_set_version\": 3,\n                 \"expected_composition_oid\": \"9c1e47a…\",\n                 \"idempotency_key\": \"rerun-5b0c…\"}\n            ← proposal waiting for the owner\n\nClaude Code: The retry is waiting under Connected → Needs your approval.\n             Tell me when you've approved it and I'll read the checks again.\n```\n\nClaude Code bertanya sebelum memanggil propose karena tool itu diberi anotasi `destructiveHint: true`. Itu prompt izin milik Claude Code sendiri, terpisah dari persetujuan di osFoundry.\n\nSebelum menyetujui, lihat dulu change set-nya. Di halaman review-nya di GitNest, panel check ada di atas tab dan merangkum composed commit dalam satu baris, di sini \"Checks did not pass: e2e\", dengan tiap check dan statusnya di bawahnya. Change set yang belum di-compose tidak menampilkan panel sama sekali, dan commit tanpa check menampilkan \"No checks have run against this commit\" alih-alih tanda centang.\n\nLonceng notifikasi menampilkan \" proposes retrying a GitNest check\". Di ikon kunci → Connected → koneksimu → Needs your approval, kartunya berbunyi:\n\n```\nRetry GitNest check in shop-api\nChange set: cs_4e81a0 · expected version 3\nReviewed commit: 9c1e47a…\nCheck to retry: e2e\nReview change set before approving\nExpires …\n[ Approve retry ]  [ Decline ]\n```\n\n*Contoh: Usulan Retry GitNest check di bawah Needs your approval*\n\n\"Review change set before approving\" membuka halaman review yang sama. Kalau commit di kartu adalah commit yang sudah kamu lihat, klik Approve retry. Check e2e masuk antrean lagi untuk commit itu, lalu runner-mu mengambilnya. Setelah itu beri tahu Claude Code, dan ia akan memanggil `list_gitnest_checks` sekali lagi.\n\nRetry menyebut commit, bukan branch. `propose_gitnest_check_rerun` mewajibkan `expected_change_set_version` dan `expected_composition_oid`, jadi kartu selalu menunjukkan composed commit mana yang dilihat Claude Code gagal. Kalau ada yang me-recompose change set saat kartu masih menunggu, commit yang akan kamu setujui sudah bukan yang tertera di kartu. osFoundry mengecek ulang versi, commit, dan status check saat kamu mengklik, dan kartu yang sudah usang tidak dijalankan. Panel lalu menampilkan \"Could not decide this proposal. Its access may have changed.\" Minta Claude Code membaca check lagi dan mengusulkan untuk commit yang baru.\n\nHanya check yang sudah selesai yang bisa di-retry. Deskripsi tool-nya berbunyi \"retry one finished check\", dan status check termasuk dalam pengecekan ulang. Check yang sudah masuk antrean atau sedang berjalan lagi, karena orang lain sudah me-retry-nya atau change set di-recompose, tidak akan diantrekan untuk kedua kalinya.\n\nSatu check per usulan. `check_name` adalah satu string dengan panjang maksimal 200 karakter. Me-retry seluruh suite berarti satu kartu per check, dan setiap kartu kamu yang memutuskan. Dengan begitu, retry e2e yang flaky tidak diam-diam ikut menjalankan ulang security scan yang lebih baik tetap gagal.\n\nTidak ada bagian dari alur ini yang berjalan di mesin osFoundry atau mengubah kode. Check berjalan di runner yang kamu daftarkan. Menyetujui retry hanya memasukkan ulang satu check ke antrean, tidak lebih. Tidak ada recompose, merge, atau publish. Merge tetap menunggu sampai semua required check lolos pada commit itu.\n\nData yang dibaca tetap minim. `list_gitnest_checks` mengembalikan status terbatas hanya untuk composed commit saat ini. `list_gitnest_saved_results` dan `read_gitnest_work` tidak menyertakan binding lokal dan kredensial, jadi Claude Code bisa memberi tahu bahwa sebuah test gagal, tetapi tidak pernah melihat token runner atau path checkout lokalmu.\n\nUntuk mencobanya, daftarkan satu runner di mesin cadangan, push change set dengan check yang kamu tahu flaky, lalu tanyakan ke Claude Code apakah sudah hijau. [Halaman GitNest](https://osfoundry.io/id/platform/gitnest) menampilkan layar repository, change set, dan check, sedangkan [halaman Connected](https://osfoundry.io/id/platform/connectors-connected) membahas panel persetujuan.", "url": "https://wpnews.pro/news/cara-membuat-claude-code-membaca-check-gitnest-dan-mengusulkan-retry-yang-kamu", "canonical_source": "https://dev.to/bbt-id/cara-membuat-claude-code-membaca-check-gitnest-dan-mengusulkan-retry-yang-kamu-setujui-di-osfoundry-3m5n", "published_at": "2026-11-13 07:05:01+00:00", "updated_at": "2026-11-13 07:19:56.421416+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "developer-tools"], "entities": ["Claude Code", "osFoundry", "GitNest", "Anthropic"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/cara-membuat-claude-code-membaca-check-gitnest-dan-mengusulkan-retry-yang-kamu", "markdown": "https://wpnews.pro/news/cara-membuat-claude-code-membaca-check-gitnest-dan-mengusulkan-retry-yang-kamu.md", "text": "https://wpnews.pro/news/cara-membuat-claude-code-membaca-check-gitnest-dan-mengusulkan-retry-yang-kamu.txt", "jsonld": "https://wpnews.pro/news/cara-membuat-claude-code-membaca-check-gitnest-dan-mengusulkan-retry-yang-kamu.jsonld"}}