Gitlab слияния из определенной исходной ветви - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть ветка в gitlab с именем devops, и я хочу объединить мою ветку master с веткой devops.Однако я не хочу, чтобы какая-либо другая ветвь выдавала запрос на слияние с devops веткой.Возможно ли это?

В основном, для devops в качестве целевой ветви при объединении, только master может быть исходной ветвью.Можно ли сделать некоторые настройки, чтобы сделать это?Или с помощью каких-либо сценариев?

1 Ответ

0 голосов
/ 11 февраля 2019

Насколько я знаю, нет простого способа сообщить GitLab, какие ветви разрешено объединять с какими другими.Если вы используете GitLab CI, есть способ добиться того, чего вы хотите.

Если вы идете в свой проект на GitLab, то в Настройки -> Общие -> Запросы на слияние.Там вы найдете флажок, который гласит: «Разрешать объединение запросов на объединение только в случае успешного выполнения конвейера».

Затем вам нужно настроить конвейер для вашего проекта, и вы сможете найти учебники и документацию.за это.Затем существуют две переменные среды с именами «CI_MERGE_REQUEST_SOURCE_BRANCH_NAME» и «CI_MERGE_REQUEST_TARGET_BRANCH_NAME».Они устанавливаются GitLab, когда конвейер работает в контексте запроса на слияние.

Вот список всех предопределенных переменных.https://docs.gitlab.com/ce/ci/variables/#predefined-environment-variables

Затем можно настроить задание, которое будет запускаться перед всеми другими заданиями, но только при наличии запроса на слияние.В противном случае нет смысла проверять эти переменные!Пример может выглядеть следующим образом:

stages:
  - merge-check
  - build
  - test

allowed-merge:
  stage: merge-check
  script:
    - check-branches # This command is different depending on if you run cmd/bash 
  only:
   - merge_requests

Скрипт для проверки имени ветки может выглядеть по-разному в зависимости от того, где выполняется ваш бегун gitlab.Он должен проверить эти две переменные окружения и вернуть 0, если ветви верны, и вернуть 1 в противном случае.

Выполнение этого не останавливает создание запросов на слияние, но нет способа принять слияниезапрос, который не следует правилам, которые вы хотите.

...