2.8 KiB
ADDED Requirements
Requirement: Спринты, ранг и оценки
Агент v15 SHALL в каждом refresh (по JQL и по ключам) для каждой доски из boards команды с типом scrum или
kanban (известным или только что определённым) прочитать настройки доски (GET /rest/agile/1.0/board/{id}/configuration:
колонки и их статусы — по именам статусов; признак kanban-бэклога, если Jira его отдаёт, иначе null) и, у scrum,
все спринты доски любого состояния (GET /rest/agile/1.0/board/{id}/sprint постранично) и приложить к первой пачке
состояния boards (см. hub-api, «Приём досок и спринтов»). Ошибка чтения настроек или спринтов доски — доска с
columns: null и прежними правилами для спринтов (v12), причина в лог; refresh продолжается.
Каждая задача в состоянии (с v15) SHALL нести rank — значение поля ранга Jira (поле типа LexoRank), story_points —
значение поля оценки (field_ids.story_points, если задано, иначе поле Jira с именем «Story Points»; поля нет —
null), и sprint_ids — id всех спринтов задачи из поля спринта Jira (любого состояния). Поле не найдено — значение
null у всех задач и запись в лог один раз за refresh.
Агент v15 SHALL выполнять ensure_sprint_meta, ensure_sprint_state, ensure_rank и story_points в
ensure_fields по контракту commands; сравнение — до записи, повтор без изменений — done без записи.
Scenario: Доска с закрытыми спринтами
- WHEN
refresh {jql: …, boards: [{id: 4216, type: "scrum"}]}, у доски закрытые спринты 1–2, активный 3, будущий 4 - THEN первая пачка состояния несёт
boardsс доской 4216, четырьмя спринтами и колонками; у задачи спринта 2, перенесённой в 3, —sprint_ids: [2, 3]
Scenario: Нет поля оценки
- WHEN в Jira нет поля «Story Points»,
field_ids.story_pointsне задан - THEN у всех задач
story_points: null;ensure_fields {key: X, story_points: 3}—failed«поле оценки не найдено в Jira: задайте field_ids.story_points»