وضع الحماية في Copilot: دليل مصوّر خطوة بخطوة
تُبقي الحماية المحلية أوامر shell وأدوات الملفات واتصالات الشبكة الخاصة بـ GitHub Copilot داخل عزلة على مستوى نظام التشغيل. يستعرض هذا الدليل العرض الرسمي من GitHub: التفعيل عبر /sandbox، ثم تشكيل السياسة، ثم الإيقاف، ثم تسليم جلسات كاملة للسحابة.
الخلاصة
- يشغّل وضع الحماية أوامر shell وأدوات الملفات وخوادم MCP وLSP الخاصة بـ Copilot داخل صندوق حماية نظام التشغيل — مع تقييد الملفات والشبكة وبيانات الاعتماد دون آلة افتراضية أو حاوية (Seatbelt على macOS، وbubblewrap على Linux، وProcessContainer على Windows).
- في تطبيق Copilot تكون الحماية متوقفة افتراضيًا: افتح إعدادات التطبيق، واختر المشروع، ثم فعّل "Sandbox new sessions". في الواجهة النصية نفّذ /sandbox enable (ميزة تجريبية).
- نفّذ /sandbox لتشكيل السياسة — تبويبات General وFilesystem وNetwork في الواجهة النصية؛ ومسارات قراءة/كتابة إضافية ومسارات للقراءة فقط ومسارات مرفوضة مع مفاتيح الشبكة وبيانات الاعتماد في التطبيق. تُطبَّق التغييرات على الجلسات الجديدة أو عبر /restart-session.
- ينقل الأمر copilot --cloud الجلسة بأكملها إلى صندوق حماية سحابي تستضيفه GitHub؛ وتعود إليها عبر رابط github.com/copilot/tasks أو تبويب Agents في المستودع. إعدادات الحماية المحلية لا تنطبق على الجلسات السحابية.
How to run GitHub Copilot in local and cloud sandboxes | demo
القناة:GitHub (official channel)1:31
GitHub Copilot Sandboxes are SO COOL
القناة:Gwyneth Peña-Siguenza1:50
Local sandboxing in the GitHub Copilot app (public preview)
الوثائق:github.blog/changelog
Configuring local sandboxing in the GitHub Copilot app
الوثائق:docs.github.com
About cloud and local sandboxes for GitHub Copilot
الوثائق:docs.github.com
إطارات هذا الدليل مأخوذة من العرض الرسمي لصندوق الحماية من GitHub — تسجيل طرفية نظيف. كُتب النص اعتمادًا على الفيديو ووثائق GitHub، وأسماء الإعدادات مقتبسة حرفيًا.
تبقى لقطات الشاشة ملكًا لأصحابها وتُستخدم بالإسناد كمراجع بصرية. الحماية المحلية في معاينة عامة — قد تتغير الأسماء والسلوك.
الاستعراض: 12 خطوة
1 · تفعيل الحماية المحلية
- 1
شغّل Copilot في مستودعك
شغّل Copilot CLI في مشروعك. الحماية ميزة تجريبية في الواجهة النصية — يظهر شعار /experimental في اللافتة، ويحمل شريط الحالة مؤشر صندوق الحماية الذي ستتعلم قراءته.

بدء تشغيل Copilot CLI مع شعار /experimental ومؤشر الحماية في شريط الحالة.شاهد عند 0:08 - 2
نفّذ /sandbox enable
اكتب /sandbox وستعرض لوحة الأوامر مفتاحين اثنين فقط: enable وdisable. اختر enable — تنطبق الحماية على جلسة Copilot هذه وعلى كل أمر shell ينفّذها.
![Copilot CLI slash-command menu listing /sandbox enable and /sandbox disable above the /sandbox [enable|disable] prompt hint Copilot CLI slash-command menu listing /sandbox enable and /sandbox disable above the /sandbox [enable|disable] prompt hint](/images/guides/copilot-sandbox-tutorial/copilot-sandbox-tutorial-sandbox-enable-autocomplete.webp)
الإكمال التلقائي لـ /sandbox يعرض enable وdisable.شاهد عند 0:24 - 3
تأكد من أن الجلسة داخل الحماية
يطبع Copilot رسالة "Sandboxing has been enabled." ويعرض شريط الحالة "sandbox enabled" بجوار AI Credits. من هنا فصاعدًا، تُنفَّذ أوامر الوكيل داخل صندوق الحماية.

"Sandboxing has been enabled." — التأكيد الذي تريد رؤيته.شاهد عند 0:12
2 · تحديد ما يمكن أن يصل إليه صندوق الحماية
- 4
افتح /sandbox لتشكيل السياسة
يفتح الأمر /sandbox وحده لوحة Configure sandbox المحفوظة في settings.json تحت `sandbox`. يقرر تبويب General ما الذي يعمل بالداخل: أوامر shell، وخوادم MCP، وخوادم LSP، والوصول إلى Keychain في macOS لمساعدي بيانات اعتماد git وgh.

تبويب General: أوامر shell وخوادم MCP وLSP والوصول إلى Keychain.شاهد عند 0:30 - 5
حدّد نطاق نظام الملفات
يضيف تبويب Filesystem مجلد عملك تلقائيًا إلى مسارات القراءة/الكتابة ويمكنه تصفير الأذونات عند خروج صندوق الحماية. مسارات الأدوات مثل ~/.nvm و~/.npm تُركَّب للقراءة فقط — وسّع القائمة إذا احتاجت أدواتك إلى المزيد.

مسارات القراءة فقط لـ nvm وnpm، مع إدراج مجلد العمل تلقائيًا.شاهد عند 0:32 - 6
حدّد نطاق الشبكة
يعرض تبويب Network ثلاثة مقابض: السماح بالاتصال الصادر بالإنترنت، والسماح بالشبكة المحلية، وقائمة Access لكل مضيف. شدّد هذه المقابض أولًا إن كانت المهمة لا تحتاج تنزيلات.

سياسة الشبكة: الصادر، والشبكة المحلية، وقائمة سماح لكل مضيف.شاهد عند 0:36 - 7
اكتب الكود كالمعتاد — تبقى الأوامر داخل الحماية
اعمل كعادتك. يخطط الوكيل ويحرر وينفّذ الأوامر بينما يواصل شريط الحالة عرض "sandbox enabled". وإذا احتاج أمر ما شيئًا ترفضه السياسة، يفشل Copilot بصوت عالٍ بدلًا من التسلل خارج الصندوق بصمت.

ترحيل SQLAlchemy مخطط ومنفَّذ مع "sandbox enabled" في شريط الحالة.شاهد عند 0:20
3 · اعمل، أو أوقفه، أو انتقل إلى السحابة
- 8
عُد بالأمسيات مع /sandbox disable
تحتاج خطوة خارج الصندوق؟ يوقف /sandbox disable الحماية — تظهر "Sandboxing has been disabled." ويختفي شعار الحماية من شريط الحالة. ويمكنك التبديل ذهابًا وإيابًا كما تتطلب المهمة.

"Sandboxing has been disabled." — لاحظ اختفاء شعار الحماية من شريط الحالة.شاهد عند 0:38 - 9
أطلق صندوق حماية سحابيًا عبر copilot --cloud
للأعمال الأثقل، شغّل Copilot بخيار --cloud (يقترنه العرض الرسمي بـ --yolo، وتُظهر وثائق GitHub مثال --cloud --experimental). تعمل الجلسة في بيئة مؤقتة تستضيفها GitHub بدلًا من جهازك.

copilot --cloud --yolo — الجلسة بأكملها على وشك مغادرة حاسوبك.شاهد عند 0:50 - 10
احصل على رابط التحكم عن بُعد
بعد تجهيز الجلسة البعيدة، يصل Copilot بالتحكم عن بُعد ويطبع رابط github.com/copilot/tasks/... — ويعرض ctrl+e رمز QR. توجد شجرة العمل في /workspaces/<repo> داخل صندوق الحماية السحابي.

التحكم عن بُعد متصل، مع رابط الجلسة واختصار رمز QR.شاهد عند 1:00 - 11
اتركه يبني ويختبر في السحابة
ينشئ الوكيل الملفات ويثبّت الاعتماديات ويشغّل نصوص الاختبار داخل صندوق الحماية السحابي — هنا يُنشئ test_auth.py ويشغّل حزمة اختبارات الواجهة الخلفية. يبقى جهازك خاملًا بينما تتقدم الأرصدة في شريط الحالة.

الاختبارات تعمل في صندوق الحماية السحابي، وقد أُنفقت 80.4 من AI Credits حتى الآن.شاهد عند 1:10 - 12
راقِب وعُد للانضمام من GitHub.com
تظهر الجلسة في تبويب Agents الخاص بالمستودع كـ Remote CLI session — تابع التقدم وأرسل الرسائل من المتصفح، ثم استأنف لاحقًا عبر copilot --resume الذي يسرد الجلسات المحلية والبعيدة معًا.

تبويب Agents لمستودع tailspin-toys يتتبع الجلسة السحابية مباشرة.شاهد عند 1:14
أين تعيش الإعدادات: تطبيق Copilot مقابل Copilot CLI
توجد الحماية المحلية على سطحين، وتُضبط إعداداتهما كلٌّ على حدة — تغيير أحدهما لا يغيّر الآخر أبدًا.
- 1تطبيق Copilot: متوقف افتراضيًا. افتح إعدادات التطبيق، واختر المشروع، ثم فعّل "Sandbox new sessions" تحت "Sandbox". تصف سياسة المشروع ما يمكن أن تطلبه الجلسة المحمية.
- 2سياسة التطبيق: يبدأ الوصول إلى نظام الملفات بالقراءة/الكتابة لمساحة العمل ومجلد العمل، مع قوائم قراءة/كتابة إضافية وقراءة فقط ومسارات مرفوضة؛ ويغطي الوصول إلى الشبكة الإنترنت الصادر والشبكة المحلية؛ وتغطي بيانات الاعتماد git وGitHub CLI.
- 3Copilot CLI: الحماية تجريبية — شغّل بخيار --experimental (أو نفّذ /experimental on)، ثم استخدم /sandbox enable أو /sandbox disable أو /sandbox وحدها لفتح لوحة الإعداد. تُحفظ الإعدادات في settings.json تحت `sandbox`.
- 4الأوامر المائلة حساسة للتوقيت: كتابة /sandbox on أو /sandbox off أثناء جلسة نشطة تعني تجاوزًا لتلك الجلسة فقط، أما قبل بدء الجلسة فتغيّر الافتراضي للمشروع. واستخدم /restart-session لتطبيق تغييرات السياسة دون فقدان السجل.
- 5الجلسات السحابية عالم آخر: إعدادات الحماية المحلية لا تنطبق على صناديق الحماية السحابية ولا على جلسات المضيف البعيد، كما يجب أن يفعّل مالك المؤسسة سياسة وصول Cloud Sandbox قبل ظهورها.
عرض CLI في هذا الدليل هو المسار الأسرع؛ ومفتاح المشروع في التطبيق هو الافتراضي الدائم بعد أن تحسم السياسة التي تريدها.
حين يقول صندوق الحماية لا: فشل مغلق بالتصميم
صُمم صندوق الحماية ليفشل مغلقًا — إذا لم يستطع نظام التشغيل فرض السياسة المطلوبة، يتعطل الأمر بخطأ بدلًا من العمل بلا حماية.
- 1منصة أو سياسة غير مدعومة: إذا تعذّر فرض السياسة المطلوبة، تفشل الصدفة المحمية بخطأ — ولا يتراجع أبدًا بصمت إلى العمل دون صندوق حماية.
- 2"Sandbox unavailable": يُشير التطبيق إلى المشكلة ويوفر زر Retry sandbox بعد إصلاح السبب.
- 3المخرج الطارئ: قد يعرض تنبيه "Run outside the sandbox?" الإلغاء أو التشغيل مرة واحدة خارج الحماية أو إيقاف الحماية لتلك الجلسة — ويعيدها "Re-enable sandbox". ينتهي ذلك عند إعادة التشغيل ولا يغيّر افتراضيات المشروع أبدًا.
- 4يمكن لمالكي المؤسسة حسم الكلمة الأخيرة: يمكن للإعدادات المُدارة سد مخرج التشغيل خارج الحماية، والفرض هناك فاشل مغلق أيضًا.
ملاحظات الأنظمة: يُوصى بـ macOS 15 فأحدث (Seatbelt)؛ ويحتاج Linux إلى bubblewrap 0.5.0 فأحدث في PATH مع slirp4netns وutil-linux 2.35 فأحدث وiptables و/dev/net/tun؛ وتستخدم Windows مستوى BaseContainer من ProcessContainer — والمسار المرفوض الذي لا يمكن ضمانه يُفشل الأمر برسالة unsupported-policy.
