> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# التكامل مع Git

التكامل مع Git متاح حاليًا فقط في [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf).

<Info>
  طُوّرت هذه الميزة في البداية من قِبل [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
</Info>

<Steps>
  <Step title="تفعيل git-bridge (لمستخدمي Toolkit فقط)">
    إذا كنت تستخدم Toolkit، فعّل `git-bridge` عبر تعيين ما يلي في الملف `config/overleaf.rc`:

    ```text title="config/overleaf.rc" theme={null}
    GIT_BRIDGE_ENABLED=true
    ```
  </Step>

  <Step title="إضافة حاوية git-bridge (لمستخدمي Docker-compose فقط)">
    بالنسبة للمستخدمين الذين يشغّلون ملف `docker-compose.yml` مخصصًا، أضف إعداد الحاوية التالي إلى ملف compose الخاص بك:

    ```yaml title="docker-compose.yml (git-bridge service)" wrap theme={null}
    git-bridge:
        restart: always
        image: ghcr.io/ayaka-notes/overleaf-pro/git-bridge:6.3.0 # tag should match the `sharelatex` container tag
        volumes:
            - ~/git_bridge_data:/data/git-bridge
        container_name: git-bridge
        expose:
            - "8000"
        environment:
            GIT_BRIDGE_API_BASE_URL: "http://sharelatex:3000/api/v0/" 
            # "http://sharelatex/api/v0/" for version 4.1.6 and earlier
            GIT_BRIDGE_OAUTH2_SERVER: "http://sharelatex"
            GIT_BRIDGE_POSTBACK_BASE_URL: "http://git-bridge:8000"
            GIT_BRIDGE_ROOT_DIR: "/data/git-bridge"
        user: root
        command: ["/server-pro-start.sh"]
    ```
  </Step>

  <Step title="تحديث إعداد حاوية sharelatex">
    ستحتاج أيضًا إلى ربط الحاوية `git-bridge` في الحاوية `sharelatex` وتعريف متغيرات البيئة التالية، ويُرجى الانتباه إلى `V1_HISTORY_URL`:

    ```yaml title="docker-compose.yml (sharelatex service)" theme={null}
    sharelatex:
        links:
            - git-bridge
        environment:
             GIT_BRIDGE_ENABLED: true
             GIT_BRIDGE_HOST: "git-bridge"
             GIT_BRIDGE_PORT: "8000"
             # We use v1 now, if you used to set V1_HISTORY_URL, please update now
             V1_HISTORY_URL: "http://sharelatex:3100/api"
    ```
  </Step>

  <Step title="المصادقة">
    عند مصادقة عميل git، يحتاج المستخدمون إلى رمز وصول شخصي (Personal Access Token). ويمكن للمستخدمين إدارة رموز الوصول الشخصية عبر واجهة التطبيق (راجع التوثيق):

    <Frame caption="رمز الوصول الشخصي للتكامل مع Git">
      <img src="https://mintcdn.com/ayakaleaf-pro/x9kfDjtWlyyhG_mR/images/on-premises/image-28.png?fit=max&auto=format&n=x9kfDjtWlyyhG_mR&q=85&s=08935524562eec75d1fcd20d14791f9a" alt="" width="1374" height="869" data-path="images/on-premises/image-28.png" />
    </Frame>
  </Step>

  <Step title="المراقبة واعتبارات الموارد">
    نوصي بمراقبة موارد الجهاز المضيف بعد تفعيل `git-bridge`. وستعتمد زيادة الحمل على:

    * عدد المستخدمين الذين يستخدمون الميزة
    * أنواع المشاريع المستضافة في نسختك (المشاريع الأكبر تستهلك عمومًا موارد أكثر)
  </Step>
</Steps>

### نقل المشاريع إلى S3

يخزّن التكامل مع Git مستودع git كاملًا على القرص لكل مشروع يستنسخه مستخدم. إذا كانت مساحة القرص لديك محدودة، يمكنك تفعيل مهمة تبديل (swap job) تنقل المستودعات الأقل استخدامًا إلى AWS S3. وإذا احتيج إلى مستودع تم نقله مرة أخرى، فسيُعاد إلى القرص. تتحكم متغيرات البيئة التالية في مهمة التبديل:

| الاسم | الوصف |
| - | - |
| `GIT_BRIDGE_SWAPSTORE_TYPE` | عيّن هذه القيمة إلى "s3" لتفعيل مهمة التبديل. |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | مفتاح الوصول إلى AWS الخاص بك |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET` | المفتاح السري لـ AWS الخاص بك |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | ستحتوي هذه الحاوية (bucket) على مستودعات git المضغوطة |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION` | منطقة الحاوية (bucket) |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS` | <p>الحد الأدنى لعدد المشاريع التي يجب الاحتفاظ بها على القرص.<br /><br /><strong>- القيمة الافتراضية:</strong> 50</p> |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB` | <p>الحد الأدنى للتبديل. ستنقل مهمة التبديل المشاريع حتى يصبح استخدام القرص أقل من هذه القيمة.<br /><br /><strong>- القيمة الافتراضية:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB` | <p>الحد الأعلى للتبديل. ستبدأ مهمة التبديل بالعمل عندما يصل استخدام القرص إلى هذه القيمة.<br /><br /><strong>- القيمة الافتراضية:</strong> 256 GB</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS` | <p>الفترة الزمنية بين فحص استخدام القرص وتشغيل مهمة التبديل.<br /><br /><strong>- القيمة الافتراضية:</strong> 3600000 ms = ساعة واحدة</p> |

### أسئلة وأجوبة

<Accordion title="إذا شاركت مشروعي مع شخص آخر، كيف يعمل نموذج الأذونات في Git Bridge؟">
  يمكن للمستخدمين الذين لديهم صلاحية القراءة فقط استنساخ هذا المشروع فقط؛ أما المستخدمون الذين لديهم صلاحية القراءة والكتابة فيمكنهم استنساخ المشاريع ودفع التغييرات إليها (push). ملاحظة: يجب أن يكون المستخدمون مسجّلين الدخول للانضمام إلى هذا المشروع.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.