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

الإشارات المرتبطة تلقائيًا

يحوّل ليڤانت غيت (LevantGit) نصوصًا مثل #123 و@username و SHA الـ commit إلى روابط تلقائيًا حيثما كتبتها: في الـ issues والـ pull requests والتعليقات ورسائل الـ commits. وبعض هذه الإشارات ينفّذ فعلًا: fixes #12 تغلق الـ issue عند الـ merge، و@1.5h تسجّل الوقت الذي قضيته عليها.

حين تكتب issue أو pull request أو تعليقًا، يفحص ليڤانت غيت النص بحثًا عن إشارات ويحوّلها إلى روابط، وبعضها ينفّذ أفعالًا مثل إغلاق issue. ورسائل الـ commits تُفحص أيضًا عند عرضها، وتُنفَّذ أفعالها عند الـ push إلى الـ default branch.

لكي تُتعرَّف الإشارة يجب ألّا تكون داخل كود (بين علامتي `) وأن تكون مفصولة عمّا حولها بمسافات.

الإشارة إلى مستخدم أو team

اكتب @username وإن وُجد المستخدم صار النص رابطًا إلى الـ profile الخاص به، ووصله إشعار إن كانت له صلاحية قراءة المحتوى:

@John, can you give this a look?

الصيغة نفسها تعمل مع الـ teams والـ organizations:

@Documenters, we need to plan for this.

تصل الإشعارات للـ teams، لا للـ organization كاملة. ورسائل الـ commits لا تنشئ إشعارات للمستخدمين.

الإشارة إلى commit

اكتب SHA1 الخاص بالـ commit، أو أول سبعة أحرف منه على الأقل، فيصير رابطًا إلى الـ commit:

This bug was introduced in e59ff077

الإشارة إلى issue أو pull request

  • #1234: الـ issue أو الـ pull request رقم 1234 في الـ repository نفسه.
  • owner/repository#1234: في repository آخر، مثل mike/compiler#1234.

This seems related to #1234

إلى جانب الرابط، يُضاف في الـ issue المُشار إليها سطرٌ يقول إن أحدًا أشار إليها من هنا (إن كانت لك صلاحية قراءتها).

يمكنك أيضًا كتابة !1234. الفرق: #1234 يشير إلى issue، و!1234 يشير إلى pull request، وفي الحالتين يعيد ليڤانت غيت توجيهك إلى الصواب إن أخطأت؛ فالـ pull request في ليڤانت غيت نوع من الـ issues. الفرق يصبح مهمًا فقط مع متتبّع الـ issues الخارجي (انظر أدناه).

إغلاق issue من pull request أو commit

ضع كلمة مفتاحية قبل الإشارة ليُغلق ليڤانت غيت الـ issue تلقائيًا:

This PR closes #1234

الكلمات المعتمدة:

  • للإغلاق: close، closes، closed، fix، fixes، fixed، resolve، resolves، resolved
  • لإعادة الفتح: reopen، reopens، reopened

حين تُقبل الإشارة يظهر في الـ issue تنبيه بأنها ستُغلق عند الـ merge. ولكي تُقبل يجب أن يتحقق واحد على الأقل مما يلي:

  • لك صلاحية إغلاق الـ issue وقت كتابة الإشارة.
  • الإشارة داخل رسالة commit.
  • الإشارة في وصف الـ pull request (لا في تعليق)؛ وعندها تُغلق الـ issue فقط إن كان لمن نفّذ الـ merge صلاحية إغلاقها.

الأفعال تأتي من الـ pull requests ورسائل الـ commits فقط، ولا تُغلق بها إلا الـ issues (لا الـ pull requests).

نصيحة

اكتب fixes #12 في وصف الـ pull request، لا في تعليق لاحق، لتُغلق الـ issue عند الـ merge وتظهر علاقتها بالطلب من البداية.

تسجيل الوقت في رسالة الـ commit

حين تُغلق commit أو pull request إحدى الـ issues، تستطيع تسجيل الوقت الذي قضيته عليها بإضافة @<number><time-unit> بعد رقم الـ issue. الوحدات:

  • m: دقائق
  • h: ساعات
  • d: أيام (اليوم = 8 ساعات)
  • w: أسابيع (الأسبوع = 5 أيام)
  • mo: أشهر (الشهر = 4 أسابيع)

الأرقام قد تكون عشرية (@1.5h = ساعة ونصف)، وتُجمع الوحدات (@1h10m = ساعة وعشر دقائق). ويمكن في رسالة واحدة ذكر عدة issues مع وقت كل منها:

Fixed #123 spent @1h, refs #102, fixes #124 @1.5h

هذا يضيف ساعة إلى الـ issue #123 وساعة ونصفًا إلى #124.

متتبّع الـ issues الخارجي

يستطيع owner الـ repository، من Settings، أن يستبدل بالـ issues الداخلية متتبّعًا خارجيًا (على موقع آخر). إن فعّلها في الإعدادات، تصبح #1234 رابطًا إلى الـ issue الخارجية، وتبقى !1234 رابطًا إلى الـ pull request في ليڤانت غيت:

This is issue #1234, and links to the external tracker. This is pull request !1234, and links to a pull request in LevantGit.

لذلك في الـ repositories ذات المتتبّع الخارجي تستخدم رسالة الـ squash الصيغة ! تلقائيًا.

ملخّص الصيغ

في الجدول User1/Repo1 هو الـ repository الذي تكتب فيه، وUserZ/RepoZ repository آخر.

الإشارة في User1/Repo1 issues الـ Repo1 خارجية؟ issues الـ RepoZ خارجية؟ النتيجة
#1234 لا - رابط إلى الـ issue/pull request رقم 1234 في User1/Repo1
!1234 لا - رابط إلى الـ issue/pull request رقم 1234 في User1/Repo1
#1234 نعم - رابط إلى الـ issue الخارجية 1234 لـ User1/Repo1
!1234 نعم - رابط إلى الـ pull request رقم 1234 في User1/Repo1
User1/Repo1#1234 لا - رابط إلى الـ issue/pull request رقم 1234 في User1/Repo1
User1/Repo1!1234 لا - رابط إلى الـ issue/pull request رقم 1234 في User1/Repo1
User1/Repo1#1234 نعم - رابط إلى الـ issue الخارجية 1234 لـ User1/Repo1
User1/Repo1!1234 نعم - رابط إلى الـ pull request رقم 1234 في User1/Repo1
UserZ/RepoZ#1234 - لا رابط إلى الـ issue/pull request رقم 1234 في UserZ/RepoZ
UserZ/RepoZ!1234 - لا رابط إلى الـ issue/pull request رقم 1234 في UserZ/RepoZ
UserZ/RepoZ#1234 - نعم رابط إلى الـ issue الخارجية 1234 لـ UserZ/RepoZ
UserZ/RepoZ!1234 - نعم رابط إلى الـ pull request رقم 1234 في UserZ/RepoZ
معرّفات حرفية-رقمية: - - -
AAA-1234 نعم - رابط إلى الـ issue الخارجية AAA-1234 لـ User1/Repo1
!1234 نعم - رابط إلى الـ pull request رقم 1234 في User1/Repo1
User1/Repo1!1234 نعم - رابط إلى الـ pull request رقم 1234 في User1/Repo1
غير مدعوم - نعم رابط إلى الـ issue الخارجية AAA-1234 لـ UserZ/RepoZ
UserZ/RepoZ!1234 - نعم رابط إلى الـ pull request رقم 1234 في UserZ/RepoZ

القسم الأخير للـ repositories التي يستخدم متتبّعها الخارجي معرّفات حرفية-رقمية. و«-» تعني «لا ينطبق».

ملاحظة

الإشارات بين repository بـ issues داخلية وآخر بمتتبّع خارجي غير مدعومة بالكامل وقد تنتج روابط غير صحيحة.

ماذا بعد؟


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