इस guide के अंत तक, osFoundry से जुड़ी एक Claude conversation किसी GitNest repository को पढ़ सकेगी, उसके code में search कर सकेगी और उसमें changes तैयार कर सकेगी: एक task, एक file commit, एक change set, किसी check का retry, या एक pull request। Claude के माँगने पर इनमें से कुछ भी नहीं होता। हर action osFoundry में "Needs your approval" (आपकी approval का इंतज़ार) के नीचे एक proposal के रूप में आता है, card पर files, branch और exact commit के साथ, और तभी चलता है जब आप Approve पर click करते हैं। Claude के पास ऐसा कोई tool नहीं है जो खुद repository में लिखे।
कौन क्या करता है
| Claude की तरफ़ | osFoundry की तरफ़ | |
|---|---|---|
| Login | आपका Claude account, बिना बदलाव के | आपके osFoundry account ने connection को एक बार approve किया है |
| क्या दिखता है | जो read tools लौटाते हैं | उन projects को assign की गई GitNest repositories जिनमें connection है |
| Code पढ़ना |
search_gitnest_code: सीमित line excerpts |
कोई binary file नहीं, पूरी files का dump नहीं, credentials या local bindings नहीं |
| Code बदलना | सात propose_gitnest_… tools |
हर call पर एक proposal, जो आपका इंतज़ार करता है |
| कौन approve करता है | Claude की तरफ़ कोई नहीं | आप, यानी connection owner, जब तक आपके पास repository role है |
| कौन लिखता है | कोई नहीं | approved action osFoundry चलाता है, connection के नाम से |
| Provider tokens | कभी नहीं भेजे जाते | आपका linked GitHub/GitLab account सिर्फ़ तब इस्तेमाल होता है जब आप provider PR approve करते हैं |
Setup
1. Chat को एक बार connect करें
अगर Claude chat अभी osFoundry से connected नहीं है, तो यह हिस्सा सामान्य custom-connector flow है: key icon → Connected में एक connection बनाइए, उसका server address Claude में custom connector के रूप में जोड़िए, और एक workspace approve कीजिए। Claude की तरफ़ के steps Anthropic ने अपनी custom connector guide में बताए हैं। इस walkthrough का बाकी हिस्सा मानकर चलता है कि connection पर "Connected." लिखा है।
2. Repository को किसी project में डालें
कोई connection GitNest repository को अपने आप कभी नहीं देखता। Repository का उस project में होना ज़रूरी है जिसमें connection है।
GitNest में repository खोलिए और Project section ढूँढिए। उसका text है "Connected agents in this project can use approved GitNest read tools when their connection owner still has repository access." Project चुनने वाला picker सिर्फ़ repository owner को मिलता है। बाकी सबको project का नाम सिर्फ़ plain text में दिखता है। Project चुनिए। osFoundry "Repository project updated." के साथ confirm करता है।
3. Connection को उसी project में जोड़ें
वापस key icon → Connected में जाकर connection चुनिए, और Projects के नीचे उसे उसी project में जोड़िए। उस project की GitNest repositories भी साथ आ जाती हैं, उसके Notes, knowledge bases और दूसरे synced content के साथ।
Tools खोलिए। "All supported tools are on by default", और list में हर tool underscores की जगह spaces के साथ दिखता है। GitNest वाले ये हैं:
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
उदाहरण: एक Claude connection की Tools checklist, default में सब on
अगर आप चाहते हैं कि Claude commits पर रुक जाए और कभी pull request तैयार न करे, तो दोनों publication tools को untick करके Save tools पर click कीजिए। Proposals को हर हाल में आपकी approval चाहिए। Untick करने का मतलब बस इतना है कि Claude यह माँग ही नहीं सकता।
4. Chat में कहें
Claude conversation में + menu → Connectors से osFoundry connector enable कीजिए और सीधी भाषा में कहिए। अगर आपने वही server Claude Code में osfoundry नाम से जोड़ा है, तो वहाँ tools mcp__osfoundry__propose_gitnest_file_import जैसे नामों से दिखते हैं।
एक असली run
नीचे के tool names और argument names वही हैं जो osFoundry का server tools/list में देता है। Repository, prompts, IDs और replies example content हैं।
उदाहरण
आप: osFoundry में demo-api में एक CONTRIBUTING.md जोड़ो जो बताए कि tests कैसे
चलाते हैं (tests/ में pytest इस्तेमाल होता है), और README से इसे link करने
के लिए एक low-priority task खोलो।
Claude → list_granted_resources {}
← project "API" · GitNest repository "demo-api"
Claude → read_gitnest_repository {"repository_id": "…"}
← native repository, default branch 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": "…"}
← proposal owner का इंतज़ार कर रहा है
Claude → propose_gitnest_work {"repository_id": "…",
"title": "Link CONTRIBUTING.md from README", "priority": "low",
"idempotency_key": "…"}
← proposal owner का इंतज़ार कर रहा है
Claude: मैंने osFoundry में दो proposals तैयार किए हैं: एक commit जो main में
CONTRIBUTING.md जोड़ता है, और एक task जो README से उसे link करने के लिए है।
अभी कुछ भी commit नहीं हुआ है। दोनों आपकी approval का इंतज़ार कर रहे हैं।
osFoundry में header पर "Claude research proposes GitNest file changes" दिखता है, और connection का panel दोनों को "Needs your approval" के नीचे दिखाता है। Commit card पर "Commit GitNest files in demo-api" लिखा होता है, फिर "Commit to branch: main", commit message, और एक collapsed "Review all proposed files (1)" जो खोलने पर पूरा CONTRIBUTING.md दिखाता है। उसके नीचे: "Expires …", Approve and create, Decline।
उदाहरण: Needs your approval के नीचे एक GitNest publish proposal
दूसरा prompt, एक ऐसे change set पर जो पहले से मौजूद है:
उदाहरण
आप: क्या rate-limit change set green है? अगर integration fail हुआ है तो उसे retry करो,
और pass होने पर उसे pull request के लिए तैयार कर दो।
Claude → list_gitnest_work {"repository_id": "…", "kind": "changes"}
← "Rate-limit fix" · version 3
Claude → list_gitnest_checks {"repository_id": "…", "change_set_id": "…"}
← composed commit 9c1e47a…: unit passed · integration failed (finished)
Claude → propose_gitnest_check_rerun {"repository_id": "…", "change_set_id": "…",
"check_name": "integration", "expected_change_set_version": 3,
"expected_composition_oid": "9c1e47a…", "idempotency_key": "…"}
← proposal owner का इंतज़ार कर रहा है
… आप retry approve करते हैं, वह pass हो जाता है …
Claude → propose_gitnest_native_publication {"repository_id": "…", "change_set_id": "…",
"expected_change_set_version": 3,
"expected_composition_oid": "9c1e47a…", "idempotency_key": "…"}
← proposal owner का इंतज़ार कर रहा है
देखिए कि Claude को क्या भेजना पड़ता है। Retry और publication दोनों में change-set version और वह composed commit लिखा होता है जो Claude ने देखा था। अगर आपके click करने से पहले कोई change set को recompose कर दे, तो जिस version या commit को आप approve करने वाले थे वह अब card वाला नहीं रहता, और approval के समय osFoundry की दोबारा जाँच उसे चलाने से मना कर देती है।
हर card आपसे क्या approve करवाता है
| Tool | Card title | Button | Approval से क्या होता है |
|---|---|---|---|
propose_gitnest_work |
Create GitNest work | Approve and create | एक Todo और एक GitNest work item बनाता है |
propose_gitnest_change_set |
Create GitNest draft change set | Approve and create | saved run results से एक draft change set बनाता है। कुछ भी compose या publish नहीं होता |
propose_gitnest_server_composition |
Compose GitNest change set | Approve and create | version दोबारा जाँचने के बाद server पर change set compose करता है |
propose_gitnest_file_import |
Commit GitNest files | Approve and create | card पर लिखे branch में ज़्यादा से ज़्यादा 20 UTF-8 files (कुल 200 KB) commit करता है |
propose_gitnest_check_rerun |
Retry GitNest check | Approve retry | उस version और commit के लिए एक finished check को फिर से queue करता है |
propose_gitnest_native_publication |
Publish GitNest pull request | Approve and publish | एक publication branch बनाता है और native repository में pull request खोलता है |
propose_gitnest_provider_publication |
Open a draft GitHub or GitLab pull request | Approve and publish | आपके linked provider account से सिर्फ़ उस change set की branch push करता है और draft PR खोलता है |
जो cards किसी change set से जुड़े हैं, उन पर "Change set: … · expected version N", "Reviewed commit: …" और एक "Review change set before approving" link होता है जो उसे GitNest में खोलता है। दोनों publication cards पर एक-एक line और होती है कि क्या होने वाला है, जैसे "Approval creates a publication branch and opens a pull request in this native repository."
सीमा कहाँ है
Claude का connection GitNest में नहीं लिख सकता। GitNest के अपने write routes agent-scoped access को मना कर देते हैं (osFoundry के GitNest routes में denyAgentScope), और Connected tools उन्हें call नहीं करते। Claude chat सिर्फ़ एक proposal दर्ज कर सकती है, और आपकी approval के बाद action osFoundry खुद चलाता है, connection को source के रूप में record करते हुए। इससे हर agent write के लिए एक ही रास्ता रहता है, और आप उसका audit कर सकते हैं।
Click करने के पल approval दोबारा जाँची जाती है। osFoundry फिर से check करता है कि connection अभी भी active है, repository अभी भी उस project में है जिसका connection हिस्सा है, आपके पास अभी भी repository role है, और proposal expire नहीं हुआ है। Composition, retry या publication के लिए वह change-set version और commit भी check करता है, और publication के लिए repository की risk policy, required checks और target branch भी। Declined, expired या stale proposal नहीं चलता। हर propose tool एक idempotency_key लेता है, इसलिए अगर reply छूट जाने के बाद Claude वही call दोहराए, तो वह दूसरी request नहीं बनती।
यहाँ कुछ भी deploy नहीं होता। एक proposal ज़्यादा से ज़्यादा pull request तक जाता है: एक native GitNest PR, या GitHub या GitLab पर draft PR। उसे merge करना, और merge से जो कुछ भी trigger हो, वह GitNest में या provider पर आपके हाथ में रहता है।
आपका Git provider token कभी Claude तक नहीं पहुँचता। Provider PR approval के समय वह account इस्तेमाल करता है जो आपने osFoundry में link किया है, और सिर्फ़ change set की dedicated branch push करता है, आपके दूसरे refs कभी नहीं।
Reads जानबूझकर सीमित रखे गए हैं। search_gitnest_code capped line excerpts लौटाता है, कभी binary files या पूरी files नहीं। Work, run और saved-result reads में local bindings और credentials नहीं होते। किसी मौजूदा file को बदलने के लिए उसका current content chat में paste कीजिए ताकि Claude पूरा नया version propose कर सके। नई files जोड़ना सीधे excerpts से हो जाता है।
आगे क्या
सबसे छोटे write से शुरुआत कीजिए: Claude से सिर्फ़ एक नई file propose करवाइए, जैसे CONTRIBUTING.md, फिर approve करने से पहले card खोलकर "Review all proposed files" expand कीजिए। GitNest खुद clone, push और access tokens को कैसे संभालता है, यह GitNest feature page पर है।


Top comments (0)