3.4 KiB
3.4 KiB
ADDED Requirements
Requirement: Журнал изменений в refresh
Отметка журнала — started_at последнего sync_run с history_at IS NOT NULL (любой query). JQL стартовой загрузки
— (<базовая JQL>) AND sprint in openSprints() AND statusCategory != Done. Хаб SHALL при каждой выдаче refresh
(первой и повторной) дописывать в параметры history (в базе params без него, как boards):
- полный прогон (
refreshпо базовой JQL), отметка есть —{since: <отметка − 15 минут, ISO-8601 UTC с Z>}; еслиqueryпрогона-отметки не равна текущей базовой JQL — такжеjql: <JQL стартовой загрузки>; - полный прогон, отметки нет —
{jql: <JQL стартовой загрузки>}; refresh {keys}иrefreshпо небазовой JQL —{since: …}, если отметка есть; иначеhistoryне дописывается;- без базовой JQL (нет проектов) —
historyне дописывается.
Результат refresh MAY содержать history (см. agent, «Журнал изменений»); хаб SHALL принимать результат и без
него. Отметку (sync_run.history_at) хаб SHALL проставлять по правилам data-model, «Отметка журнала в журнале
синхронизаций».
Scenario: Первый refresh после выкатки
- WHEN проект
AWPCA, прогонов сhistory_atнет; выдаётся полныйrefresh - THEN в выданных параметрах
history = {jql: '(project = AURORA AND labels in ("AWPCA")) AND sprint in openSprints() AND statusCategory != Done'}; в базеparamsбезhistory
Scenario: Регулярный refresh
- WHEN последний полный прогон с
history_atначат в2026-10-22T09:00:00+00:00по текущей базовой JQL; выдаётся автообновление - THEN
history = {since: "2026-10-22T08:45:00Z"}
Scenario: Журнал не дочитан
- WHEN прогон в 10:00 завершился
doneсhistory.error, прогон в 09:00 — с принятым журналом; выдаётся следующий полныйrefresh - THEN
history.since— от прогона 09:00
Scenario: Новый проект
- WHEN прогон с
history_atв 09:00 по JQL только сAWPCA; затем создан проектSTOCKS_DRRK; выдаётся полныйrefresh - THEN
history = {since: "…T08:45:00Z", jql: <стартовая по новой базовой JQL>}
Scenario: Хвост пакета
- WHEN выдаётся хвостовой
refresh {keys: [X]}, отметка есть - THEN
history = {since: …}; по завершенииdoneсresult.historyу егоsync_runhistory_at = NULL
Scenario: Хвост пакета до первой отметки
- WHEN выдаётся хвостовой
refresh {keys: [X]}, прогонов сhistory_atнет - THEN в выданных параметрах нет
history