ریپو اسکرپٹس
ریپو اسکرپٹس وہ شیل اسکرپٹس ہیں جو آپ فی ریپو کنفیگر کرتے ہیں (ترتیبات →
ریپوزٹریز → ریپو کی قطار پر ٹرمینل آئیکن) اور جنہیں Control Center کا سرور اُس
ریپو کے کسی اسپیس کے worktree پر چلاتا ہے — یعنی
<dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/ کے تحت الگ تھلگ چیک
آؤٹ، جہاں ایجنٹ کام کرتے ہیں۔
یہ دو اقسام میں ہوتے ہیں:
| اسکرپٹ | کب چلتا ہے | کس لیے استعمال کریں |
|---|---|---|
| سیٹ اپ | کسی اسپیس کے لیے worktree کی پروویژننگ کے فوراً بعد | ڈیپینڈنسیز انسٹال کرنا، فائلیں جنریٹ کرنا، .env کاپی کرنا |
| آرکائیو | worktree کے تباہ ہونے یا garbage-collect ہونے سے ٹھیک پہلے | worktree سے باہر کے وسائل صاف کرنا (docker نیٹ ورکس، ٹنلز، بیرونی حالت) |
اسکرپٹس کہاں چلتے ہیں
سیکشن کا عنوان “اسکرپٹس کہاں چلتے ہیں”دونوں اسکرپٹس bash -lc کے ذریعے چلتے ہیں (لاگ اِن شیل، چنانچہ Homebrew/nvm سے
انسٹال شدہ ٹولز PATH پر ہوتے ہیں)، worktree بطور ورکنگ ڈائریکٹری، اور یہ
ماحول متغیرات سیٹ ہوتے ہیں:
| متغیر | قدر |
|---|---|
CC_WORKSPACE_PATH |
worktree (اسکرپٹ کی cwd) |
CC_ROOT_PATH |
رجسٹر شدہ سورس ریپو — آپ کا اپنا چیک آؤٹ |
CC_SPACE_ID |
وہ اسپیس جس سے worktree تعلق رکھتا ہے |
CC_SPACE_NAME |
اسپیس کا ڈسپلے نام |
CC_REPO_NAME |
ریپو کا ڈسپلے نام |
مثال کے طور پر، ایک سیٹ اپ اسکرپٹ جو ڈیپینڈنسیز انسٹال کرتا ہے اور ریپو کی
gitignore شدہ .env لے آتا ہے:
pnpm installcp "$CC_ROOT_PATH/.env" .envpnpm run buildناکامی پر رویہ
سیکشن کا عنوان “ناکامی پر رویہ”- کوئی سیٹ اپ اسکرپٹ جو غیر صفر کے ساتھ ختم ہو (یا اپنی 5 منٹ کی ٹائم آؤٹ حد سے بڑھ جائے) اسپیس کی پروویژننگ ناکام کر دیتا ہے: اسپیس ناکام حالت میں دوبارہ کوشش کے ساتھ دکھائی دیتی ہے، اور رن کے آؤٹ پٹ کا ٹیل درج کر لیا جاتا ہے۔ دوبارہ کوشش صاف worktree سے پروویژن کرتی ہے اور اسکرپٹ پھر چلاتی ہے — سیٹ اپ اسکرپٹس ایسے لکھیں کہ جزوی انسٹال کے بعد دوبارہ چلانا کام کرے (پیکیج مینیجرز پہلے ہی ایسا برتاؤ کرتے ہیں)۔
- آرکائیو اسکرپٹ بہترین کوشش کے اصول پر چلتا ہے: ناکامی (یا اس کی 2 منٹ کی ٹائم آؤٹ) درج ہوتی ہے مگر حذف کو کبھی نہیں روکتی۔ آرکائیو اُن GC راستوں پر چلتا ہے جہاں پرامپٹ کا جواب دینے والا کوئی نہیں ہوتا (اسپیس حذف، PR مرج، طے شدہ صفائی)۔
سیٹ اپ صرف نئے worktree پر چلتا ہے: کسی گرم اسپیس میں ایجنٹس دوبارہ ڈسپیچ کرنے پر موجودہ چیک آؤٹ ہی دوبارہ استعمال ہوتا ہے اور انسٹال کا خرچ دوبارہ نہیں اٹھانا پڑتا۔
رن کی تاریخ
سیکشن کا عنوان “رن کی تاریخ”ہر عمل درآمد اپنی حالت، دورانیے، ایگزٹ کوڈ اور ایک محدود آؤٹ پٹ ٹیل کے ساتھ درج
ہوتا ہے، جو اُسی ترتیبات ڈائیلاگ میں “حالیہ رنز” کے تحت نظر آتا ہے
(repos.watchScriptRuns سبسکرپشن اسے براہِ راست اسٹریم کرتی ہے)۔
اجازتیں
سیکشن کا عنوان “اجازتیں”اسکرپٹس وہ شیل ہیں جو سرور چلاتا ہے، چنانچہ انہیں لکھنے کا اختیار صرف
ورک اسپیس ایڈمنز تک محدود ہے اور یہ processSpawn ایکشن کلاس کی حفاظت میں ہیں —
وہی گارڈریل جال جو ہر دوسرے پراسیس اسپان کرنے والے آپریشن کو گیٹ کرتا ہے۔