38 lines
3.0 KiB
Markdown
38 lines
3.0 KiB
Markdown
# migration Specification
|
||
|
||
## Purpose
|
||
TBD - created by archiving change bridge-core. Update Purpose after archive.
|
||
|
||
## Requirements
|
||
|
||
### Requirement: Инициализация настроек
|
||
`jira-hub init --config <admin/jira-sync/config.example.json>` SHALL перенести в `setting`: `project_key`, типы задач,
|
||
`epic_name_field_id`, `fields`, `epic_link`, `priority_map`, `labels`, `status_labels`, `kind_labels`, `comment_marker`,
|
||
`pacing` (в новую форму по типам команд), `transitions.map`, `link_types`, `sprints.board_id`; сгенерировать два токена;
|
||
установить `base_jql = "project = AURORA AND labels = AWPCA"`. Поля `auth`, `base_url`, `verify_ssl`, `ca_bundle`
|
||
MUST NOT переноситься (они у агента).
|
||
|
||
#### Scenario: Повторный init
|
||
- **WHEN** `init` вызван на уже инициализированной базе
|
||
- **THEN** настройки не перезаписываются без `--force`, токены сохраняются
|
||
|
||
### Requirement: Импорт CSV-пакета
|
||
`jira-hub import <папка admin/jira-sync>` SHALL прочитать `tasks.csv`, `new_tasks.csv`, `epics.csv` и заполнить
|
||
`issue_note` (ключ Jira; для строк без ключа — `new:<номер строки>`): статус по факту, вид работы, что сделано, что
|
||
осталось, внутренние колонки. `links.csv` SHALL импортироваться как сверочный набор в отчёт импорта (ожидаемые связи
|
||
против зеркала после первого `refresh`), не как команды. Импорт идемпотентен: повтор обновляет заметки, не дублирует.
|
||
|
||
#### Scenario: Импорт и первая синхронизация
|
||
- **WHEN** выполнены `init`, `import`, запущены хаб и агент, `refresh full` завершён
|
||
- **THEN** число задач зеркала ≥ числа строк `tasks.csv` + созданных из `new_tasks.csv`; отчёт импорта перечисляет ключи
|
||
из CSV, которых нет в зеркале, и связи из `links.csv`, которых нет в `issue_link`
|
||
|
||
### Requirement: Что остаётся в admin/
|
||
После ввода моста `admin/jira-sync/README.md` SHALL получить в начале пометку «заменено мостом jira-hub/jira-agent,
|
||
CSV заморожены <дата>»; `jira_sync.py`, CSV, `runs/`, `summary.md`, `_generator/` остаются как история без изменений.
|
||
Артефакт просмотрщика на claude.ai MUST NOT переопубликовываться.
|
||
|
||
#### Scenario: Пометка в README
|
||
- **WHEN** мост запущен и первая синхронизация сверена с CSV
|
||
- **THEN** README пакета начинается с пометки и ссылки на репозитории моста
|