انتقل إلى المحتوى

نقل repository من GitHub

تنقل repository من GitHub إلى ليڤانت غيت (LevantGit) من الواجهة مباشرة: اضغط + ثم New Migration، اختر GitHub، الصق الرابط و access token، وحدّد ما تريد نقله من issues و pull requests و labels و releases. تستغرق العملية دقائق، والـ repository الأصلي على GitHub لا يتغيّر لأن ليڤانت غيت يقرأ منه فقط.

قبل أن تبدأ

  • حساب على ليڤانت غيت. إن لم يكن لديك: إنشاء حساب.
  • access token من GitHub إن كان الـ repository خاصًا، أو إن أردت نقل الـ issues والـ pull requests (حتى لو كان عامًا). الـ repository العام بلا issues لا يحتاج token.

إنشاء الـ access token في GitHub

  1. في GitHub: SettingsDeveloper settingsPersonal access tokensTokens (classic).
  2. اضغط Generate new token (classic).
  3. اختر الصلاحيات: repo (كامل)، وread:org إن كان الـ repository تابعًا لـ organization.
  4. أنشئ الـ token وانسخه فورًا؛ لن يظهر مرة أخرى.

تنبيه

الـ token يعطي وصولًا إلى الـ repositories في حسابك. لا تشاركه، واحذفه من GitHub بعد انتهاء الـ migration.

خطوات الـ migration

  1. سجّل الدخول إلى https://levantgit.com واضغط زر + في أعلى الصفحة، ثم New Migration.

  2. اختر GitHub من قائمة الخدمات.

  3. في خانة Migrate / Clone From URL الصق رابط الـ repository، مثل https://github.com/username/repo.
  4. في خانة Access Token الصق الـ token الذي أنشأته. اتركها فارغة للـ repository العام إن اكتفيت بالكود.
  5. اختر ما تريد نقله بوضع علامة على الخانات: Wiki، Labels، Issues، Milestones، Releases، Pull Requests. نقل الـ issues والـ pull requests يستلزم الـ token.

  6. في الأسفل اختر Owner (حسابك أو organization)، واكتب Repository Name، وحدّد Visibility: private أو public.

  7. اضغط Migrate Repository.

تظهر صفحة انتظار ثم يفتح الـ repository الجديد على https://levantgit.com/<user>/<repo>.

ملاحظة

الـ repositories الكبيرة، أو التي فيها آلاف الـ issues والتعليقات، تحتاج دقائق وربما أكثر، لأن GitHub يحدّ من عدد الطلبات في الساعة. اترك الصفحة مفتوحة أو ارجع إليها لاحقًا.

ما الذي يُنقل بالضبط؟

يُنقل لا يُنقل
الكود بكل الـ branches والـ tags والـ commits إعدادات GitHub Actions و secrets الخاصة بها
الـ wiki Projects
الـ issues وتعليقاتها، والـ labels، والـ milestones Discussions
الـ pull requests وتعليقاتها (تُنشأ كـ pull requests في ليڤانت غيت) الـ collaborators وصلاحياتهم
الـ releases وملفاتها المرفقة protected branches والـ webhooks
الـ stars والـ watchers

الأرقام والمؤلّفون. تحافظ الـ issues والـ pull requests عادةً على أرقامها الأصلية، فيبقى «#42» يشير إلى الشيء نفسه. أمّا المؤلّفون فلا يُربطون بحسابات على ليڤانت غيت؛ يظهر اسم كاتب الـ issue أو التعليق الأصلي وتاريخه كنصّ في بداية المحتوى، ويُنسب الإنشاء إلى حسابك أنت.

بعد الـ migration: قائمة تحقق

  1. حدّث الـ remote على جهازك وعلى أجهزة زملائك، وإلا ستظل تنفّذ push إلى GitHub. الخطوات في تغيير الـ remote محليًا.
  2. ادعُ الـ collaborators من SettingsCollaborators. الصلاحيات في صفحة Permissions.
  3. أعد ضبط الـ protected branches من SettingsBranches. انظر Protected branches.
  4. أعد إنشاء الـ webhooks للخدمات التي تتصل بالـ repository: Webhooks.
  5. أعد بناء الـ CI/CD. إن كانت الـ Actions مفعّلة على حسابك فمعظم ملفات .github/workflows تعمل مع تعديل بسيط؛ ابدأ من مقارنة مع GitHub Actions وأعد إدخال الـ secrets في صفحة Secrets.
  6. قرّر مصير النسخة على GitHub: archive لها، أو أبقِها متزامنة عبر الـ mirror.

الـ migration من خدمات أخرى

النموذج نفسه يدعم مصادر غير GitHub. اختر الخدمة في الخطوة الثانية:

  • GitLab: الصق رابط المشروع و access token من GitLab؛ تُنقل الـ issues والـ pull requests أيضًا.
  • Gitea أو Gogs: الطريقة نفسها، مع token من الخدمة المصدر.
  • AWS CodeCommit: يحتاج معرّف مفتاح وصول ومفتاحًا سريًا لمستخدم IAM بأقل الصلاحيات (codecommit:GetRepository وcodecommit:GitPull، وصلاحيات الـ pull requests إن أردت نقلها)، إضافة إلى بيانات اعتماد HTTPS لـ Git.
  • Git عام: أي repository يمكن تنفيذ clone له عبر HTTPS؛ يُنقل الكود فقط.

migration لعدة repositories دفعة واحدة

إن كان لديك عشرات الـ repositories فالـ API في Gitea يدعم الـ migration برمجيًا، فتستطيع كتابة سكربت يكرّر العملية. انظر وثائق استخدام API (بالإنجليزية). تحتاج access token من ليڤانت غيت تنشئه من SettingsApplications.

أسئلة شائعة

كيف أنقل repository من جيتهاب إلى ليڤانت غيت؟

سجّل الدخول إلى levantgit.com، اضغط زر + ثم New Migration، اختر GitHub، الصق رابط الـ repository وأدخل access token، ثم علّم ما تريد نقله: Wiki و Labels و Issues و Milestones و Releases و Pull Requests. حدّد بعدها الـ owner والاسم والـ visibility واضغط Migrate Repository.

هل أحتاج access token لنقل مستودع عام؟

لا تحتاجه إن اكتفيت بالكود وحده في repository عام. تحتاج token إن كان الـ repository خاصًا، أو إن أردت نقل الـ issues والـ pull requests حتى لو كان عامًا. أنشئه من GitHub بصلاحية repo، وأضف read:org إن كان الـ repository تابعًا لـ organization، ثم احذفه بعد انتهاء النقل.

ماذا يحدث للمؤلّفين وأرقام الـ issues بعد النقل؟

تحتفظ الـ issues والـ pull requests بأرقامها الأصلية غالبًا، فتبقى الإشارة إلى «#42» صحيحة. أمّا المؤلّفون فلا يُربطون بحسابات على ليڤانت غيت: يظهر اسم الكاتب الأصلي وتاريخ كتابته كنصّ في بداية المحتوى، بينما يُنسب إنشاء العنصر نفسه إلى حسابك أنت.

ماذا أفعل بعد نقل الـ repository مباشرة؟

غيّر الـ remote على جهازك وأجهزة زملائك أولًا، وإلا بقي الـ push يذهب إلى GitHub. ثم ادعُ الـ collaborators، وأعد ضبط الـ protected branches، وأعد إنشاء الـ webhooks، وأعد إدخال أسرار الـ CI/CD إن كانت الـ Actions مفعّلة، وقرّر أخيرًا مصير النسخة القديمة على GitHub.

ماذا بعد؟


هذه الصفحة مبنية على وثائق Gitea (رخصة MIT) بعد ترجمتها وتبسيطها.