Нет ну давайте посчитаем путь от кода до прода. Почему я его должен описывать в куче разных мест? Как запускать тесты, рантайм зависимости, правила мержей (сколько ревью , кем, свежесть тестов), сами мержи (фичи бранчи, релиз бранчи, бэкпорты, тэги), сборка и проверка докер образа на всякое, генерация всех этих кубренетис манифестов , куча схем деплоя , успешность деплоя, обработка ошибок на любой стадии, повторить все это для всех окружений и с маленькими вариациями, прибавить контроль доступа и аудит всего. это все одна большая иерархическая стейт машина, почему она размазана на клик-клик в гитлаб интерфейсе, правильные тэги в ранере, .*-ci.yml в коде, операторы, helm/jsonnet, сотни строк портянок на баше если действительно хочется не надеяться на людей, все обмазано вебхуками, ебануться же. Это один процесс за склейку которого отвечает +- одна команда, стейт машины это решенная проблема в мире программирования , в функциональными программистами решена ещё и красиво.