تقوم YouTrack الآن بعرض طلبات السحب في المهام

مرحبا هبر!



فريق YouTrack في JetBrains موجود هنا. لدينا أخبار رائعة - بدءًا من YouTrack 2020.3 ، لا تعرض المهام الالتزامات المتعلقة بالمهام فحسب ، بل تعرض أيضًا طلبات السحب. سنخبرك في منشور اليوم بما هو عليه ، ولماذا هو ، وكيف سيساعد في جعل عملية التطوير أكثر كفاءة ومفهومة ، كما سنعرض بقية الابتكارات في أحدث إصدار من YouTrack.



صورة



لمزيد من التفاصيل ، مرحبا بك في المنشور.



ما هو طلب السحب؟



في عدد من نماذج نماذج التطوير ، يبدو التعاون في مشروع كالتالي: تقوم بنسخ المشروع من التحكم بالمصادر ، وإجراء التغييرات محليًا ، ثم إرسال طلب إلى مالك المشروع للموافقة على التغييرات وإدراجها في قاعدة رمز المشروع المشتركة. يسمى هذا الطلب طلب سحب (أو طلب دمج ، اعتمادًا على نظام التحكم في الإصدار).



بشكل تقريبي ، طلب السحب هو طريقة لإخبار مالك المستودع أو فريقك بما فعلته في المشروع واقتراح تضمين تغييراتك في أحد فروع التطوير العام. يمكن لمالك المستودع (أو الشخص الذي سيقوم بمراجعة الكود الخاص بك) إما قبول التغييرات (دمج طلب السحب) أو رفضه - على سبيل المثال ، إذا كانت التغييرات تتعارض مع رؤية مؤلف المشروع أو أثناء عملية مراجعة الكود قرروا أن الكود بحاجة إلى تحسين.



في المشاريع مفتوحة المصدر ، غالبًا ما تكون هناك متطلبات لطلبات السحب ، والتي بدونها لن يتم قبول طلب السحب: على سبيل المثال ، يطلب زملاؤنا من فريق Kotlin من المطورين التأكد من أن وصف طلب السحب يحتوي على رابط إلى المشكلة المقابلة في YouTrack ، وذلك التغييرات في طلب السحب خاصة بالمهام المحددة ، ويتم تشغيل هذا الرمز الجديد وتنفيذه بشكل صحيح وتغطيته بالاختبارات.



لماذا سحب الطلبات في المتعقب؟



يعد إنشاء طلبات السحب وقبولها / رفضها خطوات مهمة في دورة حياة مهمة مثل تغيير الحالة أو ربط الالتزام المقابل. توضح كل هذه الخطوات تقدم المهمة لجميع المراقبين المهتمين - على سبيل المثال ، مجتمع مشروع مفتوح المصدر أو مدير المشروع للفريق. على سبيل المثال ، إذا لم يتم إغلاق مهمة بسبب رفض طلب سحب معين ، فيجب أن تنعكس هذه المعلومات في سجل المهمة - بما في ذلك لأغراض استرجاعية ، عندما تحتاج إلى فهم سبب ترك المهمة مفتوحة لفترة طويلة. تجعل هذه الآلية عملية التطوير أكثر شفافية وتسمح لك بتتبع دورة حياة مهمة ما خطوة بخطوة ، دون فقدان الأحداث المهمة.



عرض طلبات السحب في القضايا



بالعودة إلى YouTrack ، بدءًا من YouTrack 2020.3 ، سيتمكن المطورون من رؤية طلبات السحب من GitHub و GitLab و BitBucket و Gogs و Gitea في المهام بجانب الالتزامات. لكي يتم عرض طلب السحب ، إلى جانب وصفه ، وعدد الملفات المحدثة والمعلومات الخاصة بالمؤلف ، في المهمة ، تحتاج إلى ذكر المهمة المقابلة في اسم طلب السحب (كل شيء هو نفسه تمامًا كما هو الحال مع الالتزامات).



علاوة على ذلك ، بعد قبول أو رفض طلب السحب ، ستقوم YouTrack بتضمين هذا الحدث في تدفق نشاط المهمة جنبًا إلى جنب مع مؤلف الحدث وحالة طلب السحب. اتضح أن موجز تغيير المهمة سيعرض دورة الحياة الكاملة لطلب السحب - إنشائه والقرار النهائي (الرفض أو التضمين في قاعدة الشفرة).



صورة



أتمتة ذلك



نحن نحب الأتمتة ونستخدمها بنشاط ، لذلك لا يمكننا تفويت فرصة استخدام الأحداث من نظام التحكم في الإصدار في البرامج النصية للأتمتة. يمكنك الآن بدء سير عمل YouTrack عند إضافة طلب سحب أو الالتزام. بالإضافة إلى ذلك ، تتمتع مهام سير العمل الآن بإمكانية الوصول إلى خصائص الطلبات والسحب ، مثل اسم المؤلف أو الوصف أو الملاحظة.



ماذا يعني؟ على سبيل المثال ، يمكنك تغيير حالة المشكلة تلقائيًا بناءً على حالة طلب السحب ، أو إرسال طلب لمراجعة الرمز إلى زميل عند إنشاء طلب سحب.



سينقل هذا البرنامج النصي البسيط المهمة تلقائيًا إلى الحالة الثابتة عند دمج طلب سحب ثم تعيينه إلى مسؤول ضمان الجودة برسالة مفادها أن المهمة جاهزة للاختبار:



var entities = require('@jetbrains/youtrack-scripting-api/entities');
var QA_LEAD = 'qa_superman';

exports.rule = entities.Issue.onChange({
  title: 'Set_to_fixed_when_pull_request_is_merged_and_notify',
  guard: function(ctx) {
    return ctx.issue.pullRequests.isNotEmpty() && 
      ctx.issue.pullRequests.last().previousState && 
      ctx.issue.pullRequests.last().state.name !== ctx.issue.pullRequests.last().previousState.name &&
      ctx.issue.pullRequests.last().state.name === "MERGED";
  },
  action: function(ctx) {
    var issue = ctx.issue;
    issue.State = ctx.State.Fixed;
    issue.Assignee = entities.User.findByLogin(QA_LEAD);
    issue.addComment("The issue is ready to be tested");
  },
  requirements: {
    State: {
      type: entities.State.fieldType,
      Fixed: {
        name: "Fixed"
      }
    },
  }
});


كما في السابق ، يمكن تشغيل البرامج النصية وفقًا لجدول زمني أو حدث معين ، اعتمادًا على عمليتك. يمكن العثور على تفاصيل حول سير العمل وكيفية كتابتها هنا .



ما الشيء المثير للاهتمام أيضًا؟



بالطبع ، لم نقتصر على مجرد النظر في طلبات السحب. من بين الابتكارات الأخرى ، أداة جديدة لتتبع الوقت للوحات المعلومات (لوحات المعلومات) ، بحيث يكون أكثر ملاءمة لمراقبة الإنتاجية وعدم الانشغال بالعمل الإضافي في الحجر الصحي.



صورة



من أجل العمل المريح مع قائمة المهام ، أضفنا القدرة على عرض المهام غير المكتملة فقط بنقرة واحدة وفرز المهام حسب عدد التعليقات. حصلت قاعدة المعرفة على تمييز لغوي لكتل ​​التعليمات البرمجية مع الكشف التلقائي عن لغة البرمجة ، وبالنسبة لمحبي Markdown ، فقد جعلنا من الممكن تغيير حجم الصور ومقاطع الفيديو وملفات الوسائط الأخرى المضمنة في المهام والمقالات.



هناك أخبار لأولئك الذين يستخدمون خادم LDAP لإدارة بيانات اعتماد المستخدم. تستخدم YouTrack للسماح لك بالمصادقة باستخدام بيانات الاعتماد من خادم LDAP ، والآن أضاف المزامنة المجدولة لمجموعات المستخدمين والسمات إلى خادم LDAP. سيؤدي ذلك إلى الحفاظ على بيانات الاعتماد ومعلومات عضوية مجموعة LDAP محدثة - على سبيل المثال ، سيساعد على تجنب الوصول غير المصرح به إلى البيانات في المتعقب إذا لم يكن المستخدم بالفعل عضوًا في مجموعة على خادم LDAP ، ولكن لا يزال يحصل على الوصول المقابل في المتتبع بسبب التأخير في المزامنة بين خادم LDAP و YouTrack.



يمكن الاطلاع على تفاصيل جميع التغييرات على موقعنا .



وإذا كنت جديدًا على YouTrack أو بدأت للتو ، فمرحبًا بك في العرض التوضيحي المجاني لأساسيات YouTrack.



All Articles