GitLab на самом деле не предназначен для сценария, который вы описываете.Общая идея заключается в том, что разработчики сами следят за конфигурацией CI.
Вы можете попробовать использовать функцию , включающую , чтобы сохранить основную часть конфигурации CI в отдельном репозитории.
В хранилище приложения у вас будет файл .gitlab-ci.yml
, который извлекает конфигурацию CI из другого хранилища с помощью include-project:
include:
- project: 'my-group/my-ciproject'
ref: master
file: '/ci/.gitlab-ci-myappproject.yml'
Тогда в хранилище my-group / my-ciproject вы будете иметьфайл .gitlab-ci-myappproject.yml
, содержащий конфигурацию заданий GitLab CI.
build:
script:
- dobuild
Только команда DevOps будет иметь доступ к репозиторию my-group / my-ciproject, поэтому разработчики не смогут редактировать конфигурацию CI (хотяможет связываться с файлом .gitlab-ci.yml` в репозитории приложения).
В качестве альтернативы вы можете защитить основную ветку и одобрить все изменения перед слиянием с мастером.Тогда разработчики не смогут вносить изменения в CI без одобрения.