Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

სამუშაო ნაკად-სტატუსები

OpenPR-ში ყოველ issue-ს სტატუსი აქვს, რომელიც სამუშაო ნაკადში მის პოზიციას წარმოადგენს. Kanban-დაფ-სვეტები პირდაპირ ამ სტატუსებზე გადაისახება.

OpenPR ოთხ ნაგულისხმევ სტატუსს გამოაქვს, მაგრამ 3-ფენიანი გამოვლენ-სისტემის გავლით სრულად custom სამუშაო ნაკადებს მხარს უჭერს. თითოეულ პროექტზე, სამუშაო სივრცეზე ან სისტემ-ნაგულისხმევებზე სხვადასხვა სამუშაო ნაკადი შეიძლება განისაზღვროს.

ნაგულისხმევი სტატუსები

mermaid
graph LR
    BL["Backlog"] --> TD["To Do"]
    TD --> IP["In Progress"]
    IP --> DN["Done"]

    IP -.->|"blocked"| TD
    DN -.->|"reopened"| IP
    BL -.->|"prioritized"| IP
სტატუსიმნიშვნელობააღწერა
Backlogbacklogიდეები, მომავლის სამუშაო და დაუგეგმავი ერთეულები. ჯერ განრიგში არ შეტანილი.
To Dotodoდაგეგმილი და პრიორიტეტიზებული. ასაღებად მზადაა.
In Progressin_progressპასუხისმგებლის მიერ აქტიურად მიმდინარე.
Donedoneდასრულებული და დადასტურებული.

ეს ჩაშენებული სტატუსებია, საიდანაც ყოველი ახალი სამუშაო სივრცე იწყება. ქვემოთ Custom სამუშაო ნაკადებში ახსნილია მათი კასტომიზება ან დამატებითი სტატუსების დამატება.

სტატუს-გადასვლები

OpenPR მოქნილ სტატუს-გადასვლებს იძლევა. გამარტივებული შეზღუდვები არ არსებობს -- ნებისმიერი სტატუსი ნებისმიერ სხვაზე გადავიდეს. გავრცელებული შაბლონები:

გადასვლაგამომწვევიმაგალითი
Backlog -> To DoSprint-დაგეგმვა, პრიორიტეტიზებაIssue მომდევნო sprint-ში
To Do -> In Progressდეველოპერი სამუშაოს ირჩევსპასუხისმგებელი იმპლემენტაციას იწყებს
In Progress -> Doneსამუშაო დასრულდაPull request შეიზარდა
In Progress -> To Doსამუშაო დაბლოკილია ან შეჩერებულიაგარე დამოკიდებულების ლოდინი
Done -> In ProgressIssue გაიხსნაბაგ-რეგრესია გამოვლინდა
Backlog -> In Progressსასწრაფო hotfixკრიტიკული წარმოებ-issue

Custom სამუშაო ნაკადები

OpenPR 3-ფენიანი გამოვლენ-სისტემის გავლით custom სამუშაო ნაკად-სტატუსებს მხარს უჭერს. API work item-ისთვის სტატუსს ავლიდებს, ეფექტური სამუშაო ნაკადის განსაზღვრისას სამ დონეს ამოწმებს:

Project workflow  >  Workspace workflow  >  System defaults

პროექტს თავისი სამუშაო ნაკადის განსაზღვრისას ის პრიორიტეტი ენიჭება. სხვა შემთხვევაში სამუშაო სივრც-დონის სამუშაო ნაკადი გამოიყენება. არც ერთის არარსებობის შემთხვევაში ოთხი სისტემ-ნაგულისხმევი სტატუსი.

მონაცემ-ბაზ-სქემა

Custom სამუშაო ნაკადები ორ ცხრილში ინახება (მიგრაციაში 0024_workflow_config.sql):

  • workflows -- პროექტს ან სამუშაო სივრცეს მიმაგრებული სახელდებული სამუშაო ნაკადის განმარტება.
  • workflow_states -- სამუშაო ნაკადის ცალ-ცალკე სტატუსები.

ყოველ სტატუსს შემდეგი თვისებები აქვს:

ველიტიპიაღწერა
keystringმანქანა-წასაკითხი იდენტიფიკატორი (მაგ. in_review)
display_namestringადამიან-წასაკითხი სახელი (მაგ. "In Review")
categorystringსტატუსის დაჯგუფებ-კატეგორია
positionintegerkanban-დაფ-ჩვენ-რიგი
colorstringსტატუს-ნიშ-ჰექს-ფერ-კოდი
is_initialbooleanახალი issue-ების ნაგულისხმევი სტატუსია თუ არა
is_terminalbooleanეს სტატუსი დასრულებას წარმოადგენს თუ არა

API-ის გავლით Custom სამუშაო ნაკადის შექმნა

ნაბიჯი 1 -- პროექტისთვის სამუშაო ნაკადის შექმნა:

bash
curl -X POST http://localhost:8080/api/workflows \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "name": "Engineering Flow",
    "project_id": "<project_uuid>"
  }'

ნაბიჯი 2 -- სამუშაო ნაკადში სტატუსების დამატება:

bash
curl -X POST http://localhost:8080/api/workflows/<workflow_id>/states \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "key": "in_review",
    "display_name": "In Review",
    "category": "active",
    "position": 3,
    "color": "#f59e0b",
    "is_initial": false,
    "is_terminal": false
  }'

მაგალითი: 6-სტატუსიანი ინჟინ-სამუშაო ნაკადი

mermaid
graph LR
    BL["Backlog"] --> TD["To Do"]
    TD --> IP["In Progress"]
    IP --> IR["In Review"]
    IR --> QA["QA"]
    QA --> DN["Done"]

    IR -.->|"changes requested"| IP
    QA -.->|"failed"| IP
სტატუსიკლუჩიკატეგორიაInitialTerminal
Backlogbacklogbacklogდიახარა
To Dotodoplannedარაარა
In Progressin_progressactiveარაარა
In Reviewin_reviewactiveარაარა
QAqaactiveარაარა
Donedonecompletedარადიახ

დინამიური ვალიდაცია

Work item-ის სტატუს-განახლებისას API ახალ სტატუსს ამ პროექტისთვის ეფექტური სამუშაო ნაკადის გავლით ავლიდებს. გამოვლენილ სამუშაო ნაკადში არარსებული სტატუს-კლუჩის დაყენებისას API 422 Unprocessable Entity შეცდომას აბრუნებს. სტატუსები hardcoded არ არის -- ისინი მოთხოვნის დროს დინამიურად ძებნება.

Kanban-დაფა

Board-ხედი issue-ებს სამუშაო ნაკად-სტატუსების შესაბამის სვეტებში ბარათებად ასახავს. სტატუსის შეცვლისთვის ბარათის სვეტებს შორის გადათრევა. Custom სამუშაო ნაკადების ჩართვისას Board ავტომატურად ასახავს custom სტატუსებსა და მათ კონფიგურირებულ რიგს.

ყოველ ბარათს ეჩვენება:

  • Issue-იდენტიფიკატორი (მაგ., API-42)
  • სათაური
  • პრიორიტეტ-ინდიკატორი
  • პასუხისმგებლ-ავატარი
  • ეტიკეტ-ნიშნები

API-ის გავლით სტატუს-განახლება

bash
# Move issue to "in_progress"
curl -X PATCH http://localhost:8080/api/issues/<issue_id> \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{"state": "in_progress"}'

MCP-ის გავლით სტატუს-განახლება

json
{
  "method": "tools/call",
  "params": {
    "name": "work_items.update",
    "arguments": {
      "work_item_id": "<issue_uuid>",
      "state": "in_progress"
    }
  }
}

პრიორიტეტ-დონეები

სტატუსებთან ერთად, ყოველ issue-ს პრიორიტეტ-დონე შეიძლება ჰქონდეს:

პრიორიტეტიმნიშვნელობააღწერა
Lowlowკარგი იქნებოდა ჰქონოდა, დრო-ზეწოლა არ არის
Mediummediumსტანდარტული პრიორიტეტი, დაგეგმილი სამუშაო
Highhighმნიშვნელოვანი, მალე განხილვა
Urgenturgentკრიტიკული, მყისიერი ყურადღება

საქმიანობ-თვალყური

ყოველი სტატუს-ცვლილება issue-ის საქმიანობ-feed-ში ჩაიწერება აქტორით, დროით და ძველი/ახალი მნიშვნელობებით. ეს სრულ აუდიტ-კვალს გვაძლევს.

შემდეგი ნაბიჯები

Released under the Apache-2.0 License.