Наша команда переходит на BitBucket.Наш рабочий процесс требует определенного форматирования для сообщений коммита для кода, который объединен с основным репо-источником.
У каждого разработчика есть один (или более) форк (-ы).Наш рабочий процесс заключается в том, чтобы перенести ветвь функции / ошибки на ветвь и создать запрос извлечения из этой ветки.Два других разработчика должны просмотреть и +1 запрос на получение, прежде чем его можно будет объединить.
Когда кто-то нажимает кнопку «Объединить», BitBucket отображает диалоговое окно с заголовком «Запрос на объединение слиянием».На этом этапе разработчик может редактировать текстовое сообщение, которое регистрируется для слияния, прежде чем нажать вторую кнопку слияния.Это сообщение, которое должно соответствовать определенному формату.
Я прочитал документацию здесь: https://scriptrunner.adaptavist.com/latest/bitbucket/StashMergeChecks.html В нем есть несколько очень конкретных примеров, но ничего, что относится к нашему варианту использования.Мне не удалось найти хорошую ссылку общего назначения о том, как создавать проверки слияния.
Я могу написать условие, которое проверяет определенное строковое значение:
mergeRequest.message == "My Message"
НоМне нужно это, чтобы проверить регулярное выражение.Как я могу написать ловушку перед слиянием, чтобы отклонить слияние, если сообщение не соответствует регулярному выражению?
Добавление
Из документации кажется, чтокод сценария проверки условий будет правильным местом для применения этого условия.Сценарий может быть добавлен в Repository Settings > SCRIPTRUNNER > Script Merge Checks > Conditional merge check
.Для проверки условного слияния приведен длинный список примеров, в том числе:
- Текущий пользователь в определенной группе
- Измененные файлы содержат файлы .XYZ
- Измененные файлы в секретном каталоге
- Целевой веткой является релиз
После некоторого поиска и эксперимента я обнаружил, что могу блокировать слияния на основе сообщения фиксации.Но пока я нашел только примеры сравнения целых строк с константными строковыми выражениями.Я не нашел, как использовать регулярное выражение в этом сравнении.