How GitLab Permissions and Protected Branches Keep Your Code Safe
Nov 26, 2014Job van der Voort

Summary
This post introduces GitLab's permission system, defining roles from Guest to Owner with varying levels of access to repositories and branches. It details the implementation of Protected Branches, which prevent force pushes and deletions on critical branches, enforcing code review workflows via merge requests. The underlying authorization mechanism is explained, highlighting the use of the 'Six' gem and its 'Ability' class for defining and checking user permissions. The post emphasizes how these features protect code from accidental misuse, such as the Jenkins incident described, and promote better collaboration.