Path to Production with trunk based development in a regulated environment

Hi there, my team practices trunk based development for development on a financial sector type infrastructure project, which is structured something like:

  • gitlab-repo/$app/$stage

I want to continue trunk based development ideally allowing commits to $app/dev, however have more “Approval” on the “stg”, “prd” stages. Btw “stg” & “prd” should be exactly the same.

How can I achieve that without branching and using, IIUC Protected branches | GitLab

Or do I have to use branches in Gitlab for Approval / signing things off in a rigorous manner?