Go¶
لنشر package بلغة Go على ليڤانت غيت (LevantGit)، اضغط الوحدة في أرشيف zip يتبع بنية وحدات Go،
وارفعه بطلب PUT مع access token بصلاحية package. ولتثبيتها في مشروع آخر، وجّه GOPROXY
إلى عنوان الـ registry ثم نفّذ go get. النشر متاح لحسابك الشخصي وللـ organization التي تديرها
معًا.
ملاحظة
الـ package registry متاح إن كان مفعّلاً على levantgit.com؛ تظهر تبويبة Packages في ملفك الشخصي أو في الـ repository عندها.
نشر package¶
النشر طلب HTTP من نوع PUT يحمل محتوى الـ package في جسمه. يجب أن تتبع الـ package
البنية الموثّقة لملفات zip الخاصة بوحدات Go (ملف
go.mod وترتيب المسارات داخل الأرشيف).
لا يمكن نشر package إن كانت أخرى بالاسم نفسه والإصدار نفسه موجودة؛ احذف القديمة أولًا.
| المعامل | الوصف |
|---|---|
owner |
الـ owner: اسم المستخدم أو الـ organization. |
للمصادقة استخدم المصادقة الأساسية (HTTP Basic) باسم المستخدم وكلمة المرور، أو access token
تنشئه من Settings ← Applications بصلاحية package:
curl --user your_username:your_password_or_token \
--upload-file path/to/file.zip \
https://levantgit.com/api/packages/testuser/go/upload
إن كنت تستخدم 2FA أو OAuth فلا بد من الـ access token بدل كلمة المرور.
يردّ الخادم بأحد رموز الحالة التالية:
| رمز الحالة | المعنى |
|---|---|
201 Created |
نُشرت الـ package. |
400 Bad Request |
الـ package غير صالحة. |
409 Conflict |
توجد package بالاسم نفسه. |
تثبيت package¶
وجّه Go إلى استخدام الـ registry كـ proxy عبر متغيّر البيئة GOPROXY:
# use latest version
GOPROXY=https://levantgit.com/api/packages/{owner}/go go install {package_name}
# or
GOPROXY=https://levantgit.com/api/packages/{owner}/go go install {package_name}@latest
# use specific version
GOPROXY=https://levantgit.com/api/packages/{owner}/go go install {package_name}@{package_version}
| المعامل | الوصف |
|---|---|
owner |
الـ owner. |
package_name |
اسم الـ package. |
package_version |
إصدار الـ package. |
الأمر نفسه ينطبق على go get داخل مشروع لإضافة الـ package إلى go.mod.
إن كان الـ owner من نوع private فعليك
تمرير بيانات الدخول إلى الـ proxy (عبر ملف
.netrc مثلًا).
نصيحة
تجد في وثائق Go مزيدًا عن متغيّر GOPROXY وكيف تحمي نفسك من تسرّب أسماء وحداتك الخاصة
إلى proxies عامّة في صفحة الوحدات الخاصة
(متغيّرا GOPRIVATE وGONOSUMCHECK).
ماذا بعد؟¶
هذه الصفحة مبنية على وثائق Gitea (رخصة MIT) بعد ترجمتها وتبسيطها.