سكربتات المستودع
سكربتات المستودع سكربتات صدفة تضبطها لكل مستودع (الإعدادات ← المستودعات ← أيقونة الطرفية في صف المستودع)، ويشغّلها خادم Control Center في شجرة عمل المساحة لذلك المستودع — نسخة العمل المعزولة تحت <dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/ حيث يعمل الوكلاء.
هناك نوعان:
| السكربت | متى يعمل | الغرض |
|---|---|---|
| إعداد | فور تجهيز شجرة العمل لمساحة | تثبيت التبعيات، وتوليد الملفات، ونسخ .env |
| أرشفة | مباشرة قبل تدمير شجرة العمل أو جمع مهملاتها | تنظيف الموارد خارج شجرة العمل (شبكات Docker، والأنفاق، والحالة الخارجية) |
أين تعمل السكربتات
قسم بعنوان “أين تعمل السكربتات”يُشغَّل السكربتان عبر bash -lc (صدفة دخول، فتكون الأدوات المثبّتة بـ Homebrew أو nvm على PATH)، وشجرة العمل هي دليل العمل، وتُعيَّن متغيرات البيئة هذه:
| المتغير | القيمة |
|---|---|
CC_WORKSPACE_PATH |
شجرة العمل (دليل العمل الحالي للسكربت) |
CC_ROOT_PATH |
المستودع المصدر المسجّل — نسخة عملك أنت |
CC_SPACE_ID |
المساحة التي تنتمي إليها شجرة العمل |
CC_SPACE_NAME |
الاسم المعروض للمساحة |
CC_REPO_NAME |
الاسم المعروض للمستودع |
ومثاله سكربت إعداد يثبّت التبعيات ويجلب ملف .env الذي يستثنيه Git في المستودع:
pnpm installcp "$CC_ROOT_PATH/.env" .envpnpm run buildسلوك الفشل
قسم بعنوان “سلوك الفشل”- إن خرج سكربت إعداد برمز غير صفري، أو انقضت مهلة الخمس دقائق، فشل تجهيز المساحة: تظهر المساحة في حالة الفشل مع إعادة المحاولة، ويُسجَّل ذيل مخرجات التشغيل. إعادة المحاولة تجهّز من شجرة عمل نظيفة وتشغّل السكربت من جديد — اكتب سكربتات الإعداد بحيث تنجح إعادة التشغيل بعد تثبيت جزئي (مديرو الحزم يتصرفون هكذا أصلًا).
- سكربت الأرشفة يعمل بأفضل جهد: يُسجَّل الفشل (أو انتهاء مهلة الدقيقتين)، لكنه لا يمنع الحذف أبدًا. تُشغَّل الأرشفة في مسارات جمع المهملات، حيث لا أحد يجيب عن سؤال (مساحة محذوفة، أو طلب سحب مُدمَج، أو تنظيف مجدول).
لا يُشغَّل الإعداد إلا على شجرة عمل جديدة: إعادة إرسال الوكلاء إلى مساحة ما زالت قائمة تعيد استخدام نسخة العمل الموجودة، فلا تُدفع تكلفة التثبيت مرة أخرى.
سجل التشغيلات
قسم بعنوان “سجل التشغيلات”يُسجَّل كل تنفيذ بحالته ومدته ورمز خروجه وذيل مخرجات محدود، ويظهر في حوار الإعدادات نفسه تحت «عمليات التشغيل الأخيرة» (يبثّه اشتراك repos.watchScriptRuns مباشرة).
الأذونات
قسم بعنوان “الأذونات”السكربتات صدفة ينفّذها الخادم، فكتابتها مقصورة على مسؤولي مساحة العمل، وتخضع لصنف الإجراء processSpawn — شبكة الضوابط نفسها التي تتحكّم في كل عملية أخرى تُشغِّل عملية.