Запретить слияние указанных c веток в GitLab-CI - PullRequest
0 голосов
/ 15 апреля 2020

Как предотвратить слияние веток в dev | этап | мастер, если имя ветки не начинается с соответствующего префикса? Название ветки должно начинаться с имени, куда добавляется код. Например, для принятия запроса на слияние в master ветка должна называться master / new_merge_config.

Помогите, пожалуйста, как создать подобное правило? Или можно обойтись без правил слияния?

1 Ответ

0 голосов
/ 15 апреля 2020
Сценарии

my Bash не самые лучшие, но вы можете создать что-то вроде этого:

merging:
  stage: validation
  only: [merge_requests]
  script:
     - [[ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" =~ ^master$ ]] && [[ ! "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" =~ ^master ]] && echo 'not allowed merge to master' &&  exit 1 || echo 'merge master ok'
     - [[ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" =~ ^stage$ ]] && [[ ! "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" =~ ^stage ]] && echo 'not allowed merge to stage' &&  exit 1 || echo 'merge stage ok'
     - [[ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" =~ ^dev$ ]] && [[ ! "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" =~ ^dev ]] && echo 'not allowed merge to dev' &&  exit 1 || echo 'merge dev ok'

См. этот список с доступными переменными в gitlab-ci

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...