All of our projects are located in our GitLab.

Make sure you’ve configured the following settings in your project.


Under Naming, tags, avatar set:

  • Project name

  • Project description

  • Project avatar

Under Visibility, project features, permissions activate only these:

  • Issues

  • Repository

  • Merge requests

  • Pipelines (only if required)

  • Git Large File Storage (only if required)

Under Merge requests set:

  • Merge method: Fast-forward merge

  • Only allow merge requests to be merged if the pipeline succeeds

  • Only allow merge requests to be merged if all discussions are resolved

  • Show link to create/view merge request when pushing from the command line


Under Members, ensure only the required members have access.


Under Integrations, ensure the Mattermost notifications integration is configured like this:

  • The channel handle is either empty (i.e. defaults to gitlab) or explicitly specified

  • All triggers, except Merge Request & Deployment are activated

  • Notify only broken pipelines is checked

  • Only the Default branch is selected on Branches to be notified


Merge Request is disabled, because the team shouldn’t be bothered with bilateral stuff. Deployment is disabled, because notifications will always be sent for all branches and the team shouldn’t be bothered with feature branches.


Under Default Branch, select master as default branch.

Under Protected Branches make sure the master branch is protected :

  • Allowed to merge: Maintainers

  • Allowed to push: No one

Under Protected Tags: make sure the wildcard * is protected:

  • Allowed to create: Maintainers