Gitlab Project Structure

Hello Team,

we are Migrating from Github to Gitlab. Here is my requirement I want Organization under organization I need all my Projects/ repo should be placed. I came up with a strategy please find below image

Problem: problem with the current structure is if we delete Company group all our projects and teams will go away. so I need the following solutions

  1. if we have an option to restore the deleted group?
  2. if not, I want to place all my projects under one hood but that should not be a group. as we have a problem if we create projects under one group


to prevent unwanted deletion of groups, I’d recommend assigning fine granular permissions and roles, and only give ownership to admins of your org.

  • Company group
    • owner can delete, limited access
    • maintainers can manage settings, create projects
    • developers can create issues, branches, merge requests in projects
  • Teams
    • Mnts team group - owner is again limited to the team manager
      • maintainers do MR merges after reviews, manage project settings
      • developers create issues, MRs, etc. in projects

And so on.

If you are running a self-managed GitLab instance, I highly recommend backups to being able to restore any unwanted deletion. As a customer on SaaS you can request restores, although regular data export for backups is recommended here too.


Thank you for the response. Is there any best practice that I can replace my organization/Company with? like namespace or something else instead of a Group? so that all my organization projects will maintain under that


something like

     company group
          team1 group
                team1 project1
                team1 project2
           team2 group
                team2 project1
     oss group

You can model many things with groups and sub groups, and treat them as namespace too. The important bits are the roles assigned to each - a team1 group member does not need to have owner access to the company group for example.


Sure Thank you Mike