Перегляд стану складових версії регламенту реєстру та формування запиту на внесення змін

Функціональні сценарії

  • Перегляд поточного стану HEAD основної гілки репозиторію регламенту / перелік файлів UI-форм

  • Отримання контенту файлу HEAD основної гілки репозиторію регламенту / JSON-контент UI-форми

  • Перегляд переліку сформованих запитів на внесення змін до регламенту (Користувач, Версія, Опис зміни, Дата створення, Дата останньої модифікації, Статус інспекції, Наявність конфліктів з HEAD)

  • Створення запиту на внесення змін до регламенту з описом зміни ([<version>] <Опис запиту на зміни>)

  • Створення нових файлів схем UI-форм

  • Зміна існуючих файлів схем UI-форм

  • Видалення існуючих файлів схем UI-форм

  • Внесення зміни до створеного запиту на внесення змін до регламенту

  • Перегляд поточного стану / переліку змін окремого запиту на внесення змін до регламенту

  • Перегляд поточного стану регламенту з урахуванням стану HEAD основної гілки та переліку змін, виконаних в рамках окремого запиту на внесення змін до регламенту

  • Отримання контенту файлу з урахуванням стану HEAD основної гілки та переліку змін, виконаних в рамках окремого запиту на внесення змін до регламенту

  • Маркування запиту на внесення змін, як того, який пройшов інспекцію адміністратором (Code-Review)

  • Маркування запиту на внесення змін, як того, який був відхилений інспекцією адміністратором (Code-Review)

  • Інтеграція запиту на внесення зміни до основної гілки репозиторію регламенту

  • Ініціювання <rebase> запиту на внесення змін у разі наявності конфліктів з HEAD версією

Дизайн рішення

git-gerrit-integration

Технологічний стек

Технологія / Бібліотека Версія Ліцензія Документація Опис

jGit

6.1.0.202203080745-r

EDL license

Документація

JGit - це EDL ліцензована Java бібліотека, яка реалізує систему контролю версій Git.

gerrit-rest-java-client

0.9.4

Apache-2.0 license

Документація

Java імплементація Gerrit Code Review REST API.

Аналіз опцій по роботі з копією репозиторію користувача

Сценарій In Memory File System

clone

+

+

fetch / pull

+

+

commit

-

+

push

-

+

Рішення за результатами аналізу

В результаті аналізу було виявлено, що InMemoryRepository обмежена та призначена лише для тестування, тому вирішили відмовитись від даної реалізації репозиторія: