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

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 إن كانت أخرى بالاسم نفسه والإصدار نفسه موجودة؛ احذف القديمة أولًا.

PUT https://levantgit.com/api/packages/{owner}/go/upload
المعامل الوصف
owner الـ owner: اسم المستخدم أو الـ organization.

للمصادقة استخدم المصادقة الأساسية (HTTP Basic) باسم المستخدم وكلمة المرور، أو access token تنشئه من SettingsApplications بصلاحية 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) بعد ترجمتها وتبسيطها.