5.1 KiB
5.1 KiB
ADDED Requirements
Requirement: Приём досок и спринтов
POST /agent/state (агент v15) SHALL принимать необязательные поля:
- у задачи —
rank(строка илиnull),story_points(число илиnull),sprint_ids(список целых); присланныеrankиstory_pointsзаписываются вissue; присланныйsprint_idsзаменяет все строкиissue_sprintзадачи; задача без поля свои значения сохраняет; - в пачке —
boards: список{id, type, columns, kanban_backlog, sprints};columns— список{name, statuses}илиnull,kanban_backlog—true/false/null,sprints— список{id, name, state, start_date, end_date, complete_date, goal}. Доска изboardsSHALL заменять свою строкуjira_boardи все строкиjira_sprintэтой доски; доски, которых нет вboards, не меняются. Форму хаб SHALL проверять до записи, какcomments: нарушение — 422bad_stateс ключом задачи или номером доски и именем поля, пачка не применяется.stateспринта внеactive/future/closed,sprint_idsне список целых (в том числеnull) — нарушение;rank: nullиstory_points: null— очистить поле. Тип доски изboards(scrum/kanban) хаб SHALL записывать и вjira_project.board_typeпроектов этой доски;nullтип не меняет. Пачка может быть пустой (issues: []) и нести толькоboards.
Scenario: Пачка с досками
- WHEN пачка
refreshнесётboards: [{id: 4216, type: "scrum", columns: […], kanban_backlog: null, sprints: [101 closed, 102 active, 103 future]}], раньше у доски были спринты 101 и 102 - THEN у доски 4216 строки
jira_sprint101, 102, 103 с присланными полями; колонки заменены
Scenario: Агент v14
- WHEN пачка без
boards, задачи безrank,story_points,sprint_ids - THEN данные досок и эти поля задач не меняются
Requirement: Маршрут планирования
GET /agile?project=<метка> (клиентский токен) SHALL отдавать для проекта (неизвестный — 404; без project — 422):
{board, sprints, backlog, board_issues}.
board—{id, type, columns, kanban_backlog, fetched_at}доски проекта; доски нет —null(остальные поля —[]/null); доска есть, а её данных от агента нет —{id, type, columns: null, kanban_backlog: null, fetched_at: null}.sprints— все спринты доски:{id, name, state, start_date, end_date, complete_date, goal, count, count_done, unestimated, points, points_done, issues};issues— свои задачи проекта в этом спринте (поissue_sprint);count/count_done— их число и число выполненных,points/points_done— суммаstory_pointsвсех и выполненных,unestimated— число без оценки. Порядок:activeпоstart_date,futureпо id,closedпоcomplete_date, новые сверху. У kanban-доски —[].backlog— scrum: свои задачи не в активном и не в будущем спринте и не выполненные; kanban: свои задачи в статусах первой колонки, еслиkanban_backlog = true, иначеnull.board_issues— только kanban: свои задачи в статусах остальных колонок (приkanban_backlogнеtrue— и первой) и без колонки; выполненные — только сjira_updatedне старше 14 дней; scrum —null. Строка задачи —{key, summary, issue_type, status, priority, assignee, epic_key, story_points, rank, done}; списки — поrank(строки сравниваются как есть;null— в конце), затем поkey.
Scenario: Спринт и бэклог
- WHEN у
AWPCAактивный спринт 102 с задачами A (3 SP, в последней колонке), B (без оценки), в бэклоге C и выполненная D без спринта - THEN спринт 102:
count = 2,count_done = 1,points = 3,points_done = 3,unestimated = 1;backlog— только C
Scenario: Проект без доски
- WHEN
GET /agile?project=STOCKS_DRRK, у проекта нет доски - THEN 200,
board = null,sprints = [],backlog = null,board_issues = null