Published on: August 7, 2020
10 min read
There are many ways in which hosting intellectual property in GitLab is not only secure but also flexible and invites collaboration.

One of the main assets of any company is stored in the shape of code. The originality of the code makes it intellectual property, and thus companies would like it to be protected. But storing it safely away from others will hinder the same effort that brought it to life: Collaboration. So how can companies keep their IP safe while allowing their employees to work on its maintenance and development? GitLab repos, whether hosted online or privately, store one of the most valuable things your company is able to create: The digital assets used to build software products and services. GitLab is designed to make versioning and the collaboration over those assets as seamless and productive as possible. Albeit that, is GitLab a safe place to store such valuable assets? Let's explore user access within GitLab and to what extent these users can access your company's IP.
For the self-managed solution, GitLab is able to connect to any Lightweight Direct Access Portal (LDAP) service that is already set up and validate which users have access permissions. Users that access GitLab instances with LDAP on will have access only to the groups and projects assigned to them. The same is applicable to active directory. If you are using GitLab.com, Security Assertion Markup Language (SAML) technology will mostly do the same described above. System for Cross-domain Identity Management (SCIM), the open standards running beneath SAML, is currently supported for Okta and and Azure but it will have broader support in the future. For example, check single sign-on (SSO) for enterprises or the general direction of this category.
Assigning roles with permissions is an easy way to know which user will be able to access and make changes to the IP. There are six roles: | Guest | Auditor | Developer | Reporter | Maintainer | Owner | |:--|:--|:--|:--|:--|:--| | | | | | | | By default all users have the following permissions in a project:
Intellectual property is stored in repos, projects, and groups. Let's first step back and explain what the structure of these elements in GitLab looks like. Once we have a clear understanding of what and where information is stored, we can then jump to explaining who can access what information.
A repo is a folder that lives either on your machine or on GitLab.com. It is what Git tracks every time you add and commit a change. It hosts your code and all the branches.
Repos are the core part of every project. This is where GitLab's core version control and collaboration capabilities shine. GitLab has project management features such as epics, subepics and issues, Wikis, GitLab pages, a Web IDE and many more features that make the repo the central part of a fully-featured source code workflow.
Groups are a collection of projects. Members of groups with permissions will keep those permissions on every project included in the Group. 5. Admin-only features can only be found in /admin. Outside of that, admins are the same as the highest possible permission (owner). 6. Owners are essentially group-admins. They can give access to groups and have destructive capabilities. Watch the video below for a deep dive into repos, projects, and groups.
Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum.
Share your feedback