هناك تطبيق T-REC الرائع الذي يسمح لك بتتبع الوقت الذي تقضيه في المهام في Youtrack ، ويكتبه إلى المهمة. لكن المؤلف تخلى عنها قبل أكثر من عامين ، بالإضافة إلى التبعيات القديمة ، والتحميل المستمر لنواة واحدة (يبدو أن الإلكترون هو المسؤول) ، وأدى وقوع أعطال دورية إلى حقيقة أنه أصبح "غير مريح" لاستخدامه. قررت أن أكتب عني ، بنفس الوظيفة ، فقط على المحترفين ، لذلك ظهر هونسو ...
الوثائق الحالية حول العمل مع Youtrack هنا .كيف يعمل:للوصول إلى Youtrack من تطبيق تابع لجهة خارجية ، تحتاج إلى رمز مميز للعمل.- تسجيل الدخول إلى YouTrack في المستعرض
- انتقل إلى الملف الشخصي " example.youtrack.com/users/me "
- ابحث عن العنصر "تحديث المعلومات الشخصية وإدارة تسجيلات الدخول"
- افتح علامة التبويب "المصادقة"
- انقر فوق الزر "New token ..."
- املأ حقل العميل "YoutrackTimerec"
- اختيار الأنظمة الفرعية التي نحتاج إلى الوصول إليها - "YouTrack" أولاً
- انقر فوق الزر إنشاء رمز
- نقوم بنسخ الرمز المميز ، لأنه يظهر مرة واحدة فقط.
الأمثلة على شكل طلبات cURL ، ولكن من السهل التحول إلى النموذج المطلوب.تحتاج أولاً إلى التحقق من صحة العنوان الذي تم إدخاله ومن وجود REST API على جانب الخادم. إذا كانت الخدمة متاحة وكان المفتاح صحيحًا ، فسيتم إرجاع json مع بيانات المحاسبةcurl -X GET "https://example.myjetbrains.com/api/admin/users/me?fields=id,login,name,email"
-H "Accept: application/json"
-H "Authorization: Bearer perm:token"
-H "Cache-Control: no-cache"
-H "Content-Type: application/json"
{"login":"s.user",
"email":"s.user@example.team",
"name":"S User",
"id":"1-325",
"$type":"Me"}
ما رشيقة بدون مهام؟ المبسطة ، عادة ما تعيش المهام في العدو السريع ، والعدو السريع في اللوحات. إنها فقط اللوحات النشطة التي تحتاج إلى الحصول عليها لتحديد المهام لاحقًا لتتبع الوقت. تحتوي الإجابة على قائمة باللوحات المتوفرة لمستخدم معين:curl -X GET "https://example.myjetbrains.com/api/agiles?fields=name,id,projects(id,shortName,name),columnSettings(columns(presentation))&$top=100"
-H "Accept: application/json"
-H "Authorization: Bearer perm:token"
-H "Cache-Control: no-cache"
-H "Content-Type: application/json"
[
{
"projects":[{ "shortName":"OPS", "name":"Operations",
"id":"04", "$type":"Project" }],
"columnSettings":{
"columns":[
{ "presentation":"Open", "$type":"AgileColumn"},
{ "presentation":"In Progress, Paused","$type":"AgileColumn" },
{ "presentation":"Postponed", "$type":"AgileColumn" },
{ "presentation":"Closed, Resolved", "$type":"AgileColumn" },
{ "presentation":"Feedback, On Review", "$type":"AgileColumn" }
],
"$type":"ColumnSettings"
},
"name":"Web",
"id":"15",
"$type":"Agile"
}
]
الخطوة التالية هي الحصول على المهام مناللوحة : - `Board Some Name:` الاسم بعد الإشارة إلى المسافة ، ينتهي بـ `:`- `{Current sprint}`يتم أخذ المهام فقط من العدو الحالي - `# لم يتم حلها` فقط المهام التي تم إغلاقها ستأتي المهام مع مجموعة من الكائنات ، هناك عدد غير قليل من الخصائص ، ولكن من أجل حساب الوقت ، ستكون هناك حاجة إلى حقول المعرّف ، الملخص - العنوان ، الوقت المستغرق - الوقت المستغرق في دقائق ، والعدو - معرف العدو ، إذا كنت بحاجة إلى العمل معه.curl -X GET "https://example.myjetbrains.com/rest/issue?filter=for:me%20Board%20Some%20Name:%7BCurrent%20sprint%7D%20%23Unresolved%20"
-H "Accept: application/json"
-H "Authorization: Bearer perm:token"
-H "Cache-Control: no-cache"
-H "Content-Type: application/json"
{
"issue":[
{
"id":"38-1234",
"entityId":"2-12345",
"jiraId":null,
"field":[
{ "name":"projectShortName", "value":"38" },
{ "name":"summary", "value":"[system] [tech] Huge hard task" },
{ "name":"created", "value":"1582624816973" },
{ "name":"Spent time", "value":[ "399" ], "valueId":["6h 39m"],"color":null },
{ "name":"sprint", "value":[ { "value":"Value", "id":"ID" } ] }
],
}]
}
البيانات التي تم الحصول عليها كافية للتعيينات والتنقل عبر قائمة المهام. الفكرة الرئيسية للتطبيق هي النظر في الوقت الذي يقضيه في العمل على مهمة محددة. للقيام بذلك ، أرسل للخادم عدد الدقائق (WorkItem) ، مع الاستعلام التالي لماذا XML؟ لسبب ما ، لا يقبل خادم الاختبار WorkItem ككائن json. محفوظات المهام اليومية: يمكنك طلب المهام التي يمكن للحقل Spent Time> 0 ، بعد معالجة WorkItem ، تجميع محفوظات العمل. طلب جميع المهام في العدو الحالي. بعد ذلك ، نعالج مجموعة المهام الواردة ، ونقدم طلبات للذين قاموا بشطب الوقت. بعد معالجة البيانات المستلمة ، يمكنك عرضها في شكل مناسب أين يعيش Honsu: github.com/dalerank/nanogui/tree/master/honsucurl -i -X POST "https://example.myjetbrains.com/rest/issue/38-1234/timetracking/workitem"
-H "Accept: application/json"
-H "Authorization: Bearer perm:token"
-H "Cache-Control: no-cache"
-H "Content-Type: application/xml"
-d <?xml version=\"1.0\" encoding=\"UTF-8\"?>
<workItem>
<date>UnixEpocTime*1000</date>
<duration>10</duration>
<description>added by Honsu</description>
<worktype>
<name>Development</name>
</worktype>
</workItem>

curl -X GET "https://example.myjetbrains.com/rest/issue?filter=for:me%20Board%20Some%20Name:%7BCurrent%20sprint%7D"
-H "Accept: application/json"
-H "Authorization: Bearer perm:token"
-H "Cache-Control: no-cache"
-H "Content-Type: application/json"
curl -X GET "https://example.myjetbrains.com/rest/issue/38-1234/timetracking/workitem"
-H "Accept: application/json"
-H "Authorization: Bearer perm:token"
-H "Cache-Control: no-cache"
-H "Content-Type: application/json"
يتم تجميعها مع أمثلة أخرىأو هنا في شكل exe (Windows): github.com/dalerank/nanogui/releasesلماذا يتم ذلك:+ تتبع الوقت الذي تقضيه في المهام+ انظر كيف يعمل الباقي في مسارك+ إذا أمكن ، قم بعمل monoapp ، بدون تبعيات+ مثيرة للاهتمام :)ما يمكن القيام به:+ التقاط المهام من مسارك+ إظهار اللوحات النشطة+ تحديد الوقت الذي تم جمعه كعنصر عمل في المهمة+ قطع وقت التوقف+ تذكير بغياب مهمة عند اكتشاف نشاط+ إظهار سجل تتبع الوقت بالأيام+ لا يخزن البيانات محليًا ، باستثناء المفتاح والخادمما الذي لا يعرف كيف:+ استخدام حسابات متعددة+ تخزين الوقت المتصدع إذا لم يكن هناك إنترنت+ إنشاء مهام جديدة inapp+ عرض لون المهام+ بناء المخططات الزمنية +التحديث من إصدارات الحفلةماذا تقول:+ CMake + C ++ 11 + OpenGL (أو فجوة أخرى)+ OpenSSL+ cpp-htplib+ نسخة مدعومة بنشاط لنظام Windows ، على منصات أخرى (Ubuntu \ MacOS) بنيت وحتى تعمل