3.5 KiB
MODIFIED Requirements
Requirement: Чтение состояния
refresh SHALL выполняться запросом search (jql, fields = поля зеркала включая issuelinks, comment и спринт,
maxResults = 100, постранично) и отправляться хабу пачками по 100 задач со связями; ключи из issuelinks, которых нет
в выборке и в зеркале хаба (хаб сообщает список известных), агент SHALL дочитать одним search по key in (...)
и отправить с признаком neighbor. Ошибка хаба при запросе известных ключей или отправке пачки SHALL попадать в
error с префиксом «хаб: »; недоступность хаба и его 5xx повторяются, как обрыв связи, с источником «хаб».
Каждая задача в состоянии (с v10) SHALL нести comments — все комментарии задачи в порядке Jira, каждый
{id, author, created, updated, body}: id — строка; author — отображаемое имя автора, иначе его логин, иначе null;
created, updated — время Jira как есть; body — текст как есть (пустой — ""). Если search отдал у задачи меньше
комментариев, чем comment.total, агент SHALL дочитать комментарии этой задачи через GET /issue/{key}/comment
постранично (maxResults = 100) и передать полный список.
Scenario: Полная синхронизация
- WHEN
refresh {jql: "project = AURORA AND labels = AWPCA"}при 180 задачах - THEN 2 вызова
search+ 1 на соседей;sync_run.issues_count = 180 + соседи
Scenario: Хаб не ответил при отправке состояния
- WHEN
refreshчерез папку, реле не ответило на отправку пачки ни в одной из 4 попыток - THEN отчёт
failedс ошибкой «результат неизвестен (обрыв связи с хабом), повтор безопасен: хаб: не ответил через папку …»; в логе повторов — «обрыв связи с хабом»
Scenario: Комментарии в состоянии
- WHEN у AURORA-1620 в Jira два комментария, автор первого —
{name: "petrov", displayName: "Петров Пётр"}, у автора второго нетdisplayName, егоname—ivanov - THEN в состоянии AURORA-1620
commentsиз двух элементов в порядке Jira,author— «Петров Пётр» и «ivanov»; число вызововsearchне изменилось
Scenario: Неполный список комментариев
- WHEN
searchвернул у AURORA-1620 20 комментариев приcomment.total = 130 - THEN агент дочитал комментарии двумя вызовами
GET /issue/AURORA-1620/comment; в состоянии 130 комментариев
Scenario: Задача без комментариев
- WHEN у задачи в Jira нет комментариев
- THEN в её состоянии
comments = []