GitFlow Gate
Расширение VS Code для командной работы по GitFlow в GitLab: старт веток от
правильной базы, завершение веток через серверные merge request и статусы
автоматического ревью — всё из одной панели, без ручной хореографии.
Возможности
- Дерево веток GitFlow.
develop, master и группы Releases / Features /
BugFixes / HotFixes с индикаторами состояния: отставание/опережение от origin,
статус ревью, статус merge request.
- Старт веток от правильной базы. release/feature/bugfix — от
develop,
hotfix — от master. Ветка создаётся через GitLab API, так что неправильная
база исключена по построению. У release/hotfix проверяется ещё и версия:
имя — это номер релиза, поэтому оно обязано быть вида X.Y.Z, выше
последней выпущенной, а при живой встречной ветке — ещё и в правильном
порядке (хотфикс выходит раньше релиза, значит и версия у него ниже). Подсказку следующей версии расширение подставляет само,
а несогласную версию показывает ошибкой прямо в поле ввода.
- Завершение одной кнопкой. Для release/hotfix — вся последовательность:
merge request в
develop (auto-merge по зелёному пайплайну) и в master.
Порядок «сначала develop, потом master» соблюдается автоматически.
- Описание релиза. Если в
variables: .gitlab-ci.yml задан
RELEASE_NOTES_MODE (required или optional), при завершении
release/hotfix расширение спросит описание релиза и положит его в описание
MR в master. При required без текста ветку не завершить, при optional
шаг можно пропустить. В мобильном репозитории CI выгружает этот текст в
Google Play, RuStore и App Store как «Что нового» — окно предупреждает об
этом, а счётчик не даёт превысить 500 символов (лимит Google Play). В
остальных репозиториях текст остаётся в MR. Повторное завершение
подставляет уже записанный текст.
- Статусы ревью и MR прямо в дереве. Видно, прошло ли ревью, ждёт ли MR
аппрува или уже готов к слиянию. Умный таймер опрашивает API только когда есть
чего ждать.
- Свернуть окно можно. Часть схемы выполняет само расширение: перевзводит
сброшенный auto-merge, перезапускает проверку аппрува, когда коллега его
поставил, и вливает MR в master в режиме без аппрувов. Свёрнутое окно эти шаги
не останавливает — расширение доводит начатое в фоне, реже обращаясь к API и
не перестраивая дерево. Первые пять минут после сворачивания состояние всё ещё
обновляется целиком, чтобы при быстром возврате дерево было готово сразу.
- Текст ревью — не выходя из редактора. Находки и рекомендации открываются
отдельной вкладкой по ссылке в подсказке ветки — и когда ревью нашло ошибку,
и когда прошло: во втором случае в ответе остаются замечания, которые ничего
не блокируют, но полезны. Ходить за ними в GitLab не нужно.
- Результаты проверок пайплайна — в дереве. Видно, какой именно джоб упал
(«не прошёл lint», «не прошли тесты»), а не общее «ждёт зелёного пайплайна» от
GitLab. Находки предупреждающих проверок — уязвимости в зависимостях и секреты
в коде — открываются вкладкой: их джобы пайплайн не держат, он от них зелёный,
и без показа их не читает никто. Красное ревью в advisory-режиме не
пропадает после auto-merge — бейдж и текст остаются на влитой ветке, а о самой
находке расширение сообщает уведомлением.
- Синхронизация и уборка. Подтягивание всех веток одной командой,
подчистка смерженных локальных веток, подтягивание master/develop в ветку для
раннего разрешения конфликтов.
Требования
- GitLab (SaaS или self-hosted). Базовый URL задаётся в настройках
(
gitflowGate.gitlabHost).
- Репозиторий с ветками
develop и master и настроенной защитой.
- Personal Access Token GitLab со scope
api — расширение запросит его при
первом запуске и сохранит в защищённом хранилище ОС. SSH-ключ для git
остаётся нужен для clone и push; токен — только для REST API.
Начало работы
- Откройте панель GitFlow Gate в activity bar.
- Пока токена нет, панель покажет кнопку «Задать токен GitLab» — нажмите её
и следуйте подсказке (откроется предзаполненная страница создания токена).
- Дальше работайте с ветками прямо из дерева: кнопка ▶ создаёт ветку,
⑃ завершает её.
Настройки
| Параметр |
По умолчанию |
Назначение |
gitflowGate.gitlabHost |
https://gitlab.com |
Базовый URL GitLab |
gitflowGate.poll.intervalSeconds |
30 |
Интервал опроса статусов при активном окне |
gitflowGate.poll.fullModeGraceMinutes |
5 |
Сколько минут после сворачивания окна состояние ещё обновляется целиком |
gitflowGate.poll.backgroundIntervalSeconds |
120 |
Интервал фонового режима; 0 отключает его |
Имена веток — master, develop и префиксы feature/, bugfix/, release/, hotfix/ — не настраиваются: их знает CI-шаблон, и переименование сняло бы проверки, а не настроило их.
Приватность
Токен GitLab хранится в SecretStorage операционной системы — не в настройках и
не в репозитории. Расширение обращается только к API вашего экземпляра GitLab.
| |