نقل 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¶
- في GitHub: Settings ← Developer settings ← Personal access tokens ← Tokens (classic).
- اضغط Generate new token (classic).
- اختر الصلاحيات:
repo(كامل)، وread:orgإن كان الـ repository تابعًا لـ organization. - أنشئ الـ token وانسخه فورًا؛ لن يظهر مرة أخرى.
تنبيه
الـ token يعطي وصولًا إلى الـ repositories في حسابك. لا تشاركه، واحذفه من GitHub بعد انتهاء الـ migration.
خطوات الـ migration¶
-
سجّل الدخول إلى https://levantgit.com واضغط زر + في أعلى الصفحة، ثم New Migration.
-
اختر GitHub من قائمة الخدمات.
- في خانة Migrate / Clone From URL الصق رابط الـ repository، مثل
https://github.com/username/repo. - في خانة Access Token الصق الـ token الذي أنشأته. اتركها فارغة للـ repository العام إن اكتفيت بالكود.
-
اختر ما تريد نقله بوضع علامة على الخانات: Wiki، Labels، Issues، Milestones، Releases، Pull Requests. نقل الـ issues والـ pull requests يستلزم الـ token.
-
في الأسفل اختر Owner (حسابك أو organization)، واكتب Repository Name، وحدّد Visibility: private أو public.
- اضغط 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: قائمة تحقق¶
- حدّث الـ remote على جهازك وعلى أجهزة زملائك، وإلا ستظل تنفّذ push إلى GitHub. الخطوات في تغيير الـ remote محليًا.
- ادعُ الـ collaborators من Settings ← Collaborators. الصلاحيات في صفحة Permissions.
- أعد ضبط الـ protected branches من Settings ← Branches. انظر Protected branches.
- أعد إنشاء الـ webhooks للخدمات التي تتصل بالـ repository: Webhooks.
- أعد بناء الـ CI/CD. إن كانت الـ Actions مفعّلة على حسابك فمعظم ملفات
.github/workflowsتعمل مع تعديل بسيط؛ ابدأ من مقارنة مع GitHub Actions وأعد إدخال الـ secrets في صفحة Secrets. - قرّر مصير النسخة على 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 من ليڤانت غيت تنشئه من Settings ← Applications.
أسئلة شائعة¶
كيف أنقل 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.
ماذا بعد؟¶
- تغيير الـ remote محليًا — الخطوة الأولى بعد الـ migration.
- الـ mirror — إبقاء GitHub متزامنًا كنسخة احتياطية.
- GitHub مقابل ليڤانت غيت — ما الذي يختلف بعد الانتقال.
هذه الصفحة مبنية على وثائق Gitea (رخصة MIT) بعد ترجمتها وتبسيطها.