Hi, we prefer using projects as Git repository entities, each on its own. Roles and permissions are granted for the group in general, with fine granular permissions based on the projects whenever needed. In terms of issues, you may want to switch to group level milestones and dashboards. In case y… Answer from dnsmichi on forum.gitlab.com
🌐
CLIMB
climbtheladder.com › 10-gitlab-project-structure-best-practices
10 Gitlab Project Structure Best Practices - CLIMB
July 16, 2025 - Projects are the highest level of organization in Gitlab and should be used to represent the overall goal or objective of the organization. Subgroups can then be created within each project to further organize related tasks and resources.
🌐
GitLab
docs.gitlab.com › gitlab docs › use gitlab › organize work with projects
Organize work with projects | GitLab Docs
In GitLab, a project is a broad container for all aspects of your development work. Projects contain a code repository, collaborative tools, project management features, and CI/CD capabilities. Use your project to organize all the data for your development project: · Projects can be available ...
Discussions

Group Organization Best Practices
I work for a large organization, and my department has a self-install for our department. Yes I also went with: /myOrg/myDeptarment/appGroup1 /myOrg/sharedProjects/app4 My departmental projects live under our department group. If any parent Org collaboration occurs we make a project under the sharedProjwcts group and add the user to our local LDAP instance for access. Under myDeptarment we add subgroups per Services or Application projects we maintain. Eg, we have a frontend website, backend site, provisioning CI task projects, etc. These are all individual projects nested under appGroup1. We don't nest as you for Devops, Security, Infrastructure. I find that a Project will need its own set of these items per Project so these would live all as sub-projects within a named Group of our Department. Rather than set Development, Security and Infrastructure as Groups .... Consider setting those names as Tags on your gitlab project(s). More on reddit.com
🌐 r/gitlab
4
6
May 17, 2021
Gitlab project best practice
Actually we followed the documentation, ... is the best practice when you have to create projects. We understood correctly the group and project relation but something is not totally clear on projects. So the question is: When we have to manage project where with a multi architecture structure, as Spring ... More on forum.gitlab.com
🌐 forum.gitlab.com
2
0
January 12, 2020
Group/project structure
We switched to provisioning the whole group/project structure with Terraform. So we just keep the groups in Terraform variables and end up with "plain" users in the projects. No assigning groups to other groups or projects. It's not ideal if you wanna use the UI for audits. But it's far better to maintain. More on reddit.com
🌐 r/gitlab
8
1
November 22, 2022
How to Organize Many Scripts in Gitlab (Groups vs Projects vs Repository Folders)
Organise like scripts into sets of cmdlets and perhaps generalise a bit if needed? Could also use CI to publish them to a PSRepository or chocolatey? More on reddit.com
🌐 r/gitlab
10
8
August 11, 2020
🌐
GitLab
forum.gitlab.com › general
Gitlab Project Structure - General - GitLab Forum
July 30, 2021 - 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 if we have an option to restore the deleted group? if not, I want to place all my projects under one hood but that should not be a gro...
🌐
GitLab
about.gitlab.com › blog › agile planning › best practices to set up organizational hierarchies that scale
Best practices to set up organizational hierarchies that scale
July 22, 2024 - Learn how to model organizational hierarchy in GitLab. Create structures with clear lines of communication, strategic alignment, and more, while following Agile principles.
🌐
Reddit
reddit.com › r/gitlab › group organization best practices
r/gitlab on Reddit: Group Organization Best Practices
May 17, 2021 -

I finally got approval to start the process to migrate us away from the Atlassian Suite to self-hosted GitLab (Free EE to start, maybe Premium eventually) and want to make sure I'm putting us in a good spot moving forward. We're most likely sticking with Confluence longer term, and Jira in the intermediate while we initially focus on maturing our CI/CD. I'd like to get off of Jira sooner than later howerver.

I'm aware that GitLab can have many levels of groups and subgroups, but I'm having difficulty finding information on best practices on how to actually organize our projects besides some of the examples in the documentation.

Does anybody have some good examples of how to organize their projects? I'm looking at something like the following:

  • Development

    • Internal Tools

    • Products

      • Project A

      • Project B

  • Infrastructure

    • Cloud Provider Tools

    • IaC

      • Ansible

      • Terraform

    • System Configurations

  • Security

  • [Other departments as needed]

A few questions:

  1. Even though we will be the only organization within this self-hosted instance, should we still create a root group for our organization? I'm of the understanding that this will allow issues across the organization to be viewed on a single board/list (I.E. for a Project Manager view) rather than them having to hit each top-level organization to see Development, Infrastructure, Security status
    Organization Name
    |____ Development
    |____ Infrastructure
    |____ Security

  2. I know that you can have up to 20 nestings of subgroups, but that seems like it would become a navigational nightmare. Is there a good balance between too deep or too shallow of groupings, or is this actually not an issue?

  3. I read through all of the "Next Steps" documentation after installation, and am trying to absorb as much info as I can in the documentation or elsewhere. Anybody have any good resources or must have plugins/etc. for new installations that I might not have picked up via the docs?

Thanks!

🌐
Hostinger
hostinger.com › home › tutorials › gitlab best practices to improve your workflow
GitLab best practices for streamlined project management
July 1, 2025 - In this tutorial, we will explain several GitLab best practices to help you use the tool more effectively. You will learn various tips, from managing your projects to maximizing your continuous integration and continuous delivery (CI/CD) pipeline for a smooth automation process.
🌐
GitLab
forum.gitlab.com › how to use gitlab
Gitlab project best practice - How to Use GitLab - GitLab Forum
January 12, 2020 - Actually we followed the documentation, ... is the best practice when you have to create projects. We understood correctly the group and project relation but something is not totally clear on projects. So the question is: When we have to manage project where with a multi architecture structure, as Spring ...
Find elsewhere
🌐
DevOpsSchool.com
devopsschool.com › blog › gitlab-hierarchy-organization-namespace-group-project
GitLab Hierarchy: Organization, Namespace, Group & Project
May 26, 2025 - Top-Level Groups remain the most important and practical unit for structuring your organization today. Use Subgroups for complex team layouts or access control needs. Every Project must live inside a Namespace (Group or User).
🌐
Mindful Chase
mindfulchase.com › home › deep dives › master gitlab workflows › managing and organizing large projects in gitlab
Managing and Organizing Large Projects in GitLab - Mindful Chase
December 1, 2024 - GitLab offers several ways to structure your repositories and projects to suit the needs of large teams or enterprises. Groups: Organize related projects under a single entity. For example, create a group for each department or product line. Subgroups: Further divide groups into subgroups for ...
🌐
Hostinger
hostinger.com › home › tutorials › gitlab best practices to improve your workflow
GitLab best practices to improve your workflow
March 10, 2026 - This makes navigating the items difficult, especially for other developers unfamiliar with the repo. Structure your files, folders, and subfolders properly to make your repository easier to navigate.
🌐
GitLab
gitlab.com › explore › topics › best practices
best practices · Topics · GitLab
A template for Python-based projects, featuring a pre-configured structure that promotes best practices in data science and software development.
🌐
Everhour
everhour.com › gitlab › gitlab project management: the complete guide to agile workflows, boards, epics, and sprints
GitLab Project Management: Features, Agile Workflows & Pro Tips
May 4, 2026 - Issues capture intent, boards drive the day, iterations/milestones anchor time, epics keep strategy visible, and merge requests deliver outcomes. Start small: a crisp label set, one healthy board, one sprint. Then layer in epics, roadmaps, ...
🌐
CLIMB
climbtheladder.com › 10-gitlab-groups-best-practices
10 Gitlab Groups Best Practices - CLIMB
July 16, 2025 - By setting up a default branch protection policy for your Gitlab group, you can help ensure that all branches have some level of protection against unauthorized access. This will help keep your code secure and prevent any unwanted changes from being made. Project templates are a great way to ensure that all projects within the group have the same structure and settings.
🌐
Medium
medium.com › @david_haylock › organising-your-gitlab-ci-cd-pipeline-from-monolithic-to-modular-2847e0b43320
Organising Your GitLab CI/CD Pipeline: From Monolithic to Modular | by David Haylock | Medium
February 27, 2025 - In the next sections, we’ll explore practical ways to structure your GitLab CI/CD files – separating concerns, reusing common templates, and ensuring flexibility without sacrificing simplicity. Let’s get started! Create a new repo in Gitlab and clone. Run the following commands. cd code/your-project mkdir -p .gitlab/ci/components mkdir -p .gitlab/ci/pipelines touch .gitlab-ci.yml .gitlab/ci/components/.core.gitlab-ci.yml .gitlab/ci/components/.deploy.gitlab-ci.yml .gitlab/ci/components/.tests.gitlab-ci.yml .gitlab/ci/pipelines/develop.gitlab-ci.yml .gitlab/ci/pipelines/production.gitlab-ci.yml
🌐
Reddit
reddit.com › r/gitlab › group/project structure
r/gitlab on Reddit: Group/project structure
November 22, 2022 -

Does anyone use groups in Gitlab as a placeholder to just place users into, as opposed to the traditional way of using groups as a project construct?

My thinking is to create a sub-group per team under our root group (which users are just guest via SSO), and add members into those groups as required. Then have another sub-folder under the root group for all projects, adding the relevant teams to the projects.

- Root

--Groups

---Group1

---Group2

--Projects

---Project1

---Project2

My current issue is that I've got a sub-project (say Project2) where I want to give ALL users read access to the repo (it's a CI template which I want them to be able to pull into their jobs). The only way at the moment seems to be by granting all users (via the default SSO role) at least the Reporter role, or I'm having to add each member to this project individually.

Side question - is it just me or is the whole permissions model in Gitlab a bit of kludge?

🌐
Reddit
reddit.com › r/gitlab › how to organize many scripts in gitlab (groups vs projects vs repository folders)
r/gitlab on Reddit: How to Organize Many Scripts in Gitlab (Groups vs Projects vs Repository Folders)
August 11, 2020 -

I am new to GitLab and am curious what the best practice is for Structure when it comes to many apps or in my case scripts.

Say I have hundreds of powershell scripts. Each script serves its own purpose, but could be semi-related to other scripts by topic.

For example:

  • Get-DNSRecords

  • Clear-PrintJobs

  • Clear-ADUserCustomAttribute

  • Get-ADGroupHierarcy

  • Get-ADGroupMembershipHistory

  • Get-ADExpiringPasswords

...

Notice some of these scripts are AD related and could be grouped/categorized as "AD Scripts". However, they aren't really related nor dependent on one another. Keep in mind this is just a small example, there would be HUNDREDS of scripts.

  1. Would it be best practice to create a separate "Project" for each script? OR should/could multiple scripts be stored in separate folders within a single Project?

  2. If a Single Project is used for multiple scripts, then you would need to cram instructions for each script into a single Readme.md, and there would be a lot of bloat within the repo, especially if you only really needed to work on a single script.

Is it normal to have many many hundreds of projects within a group? Each project would need to be separately cloned?

I hope someone can understand my confusion about this and provide any sort of guidance/recommendations.

Top answer
1 of 2
1
Organise like scripts into sets of cmdlets and perhaps generalise a bit if needed? Could also use CI to publish them to a PSRepository or chocolatey?
2 of 2
1
I personally set groups to match the team or technology in use. Groups are useful for permissions and managing group wide issues. Group all of the Help Desk scripts together and share to the members of the HD. Helps keep things simple. As for repositories, I would group similar functions/scripts into one repository. If you require documentation, create folders (not too deep) and have a single README in each folder that explained each script in the corresponding folder. You can link to each folder README from the main README at the repository root. That should aid in navigation for users of your work. You should consider providing these scripts as functions in a module and use PowerShell's built-in documentation practices (provide help to Get-Help, about_ files, examples, etc) for others. It would help other users gain muscle memory on how to find documentation for other cmdlets/functions in PowerShell. A REAMDE explaining things is great but if I'm using your scripts I'd rather they support Get-Help with examples. Just my two cents. IMO, creating lots of repositories is a nightmare to admin. Permissions can get wonky, if you ever get to CI you'll be kicking yourself, and you probably would end up spending more time managing gitlab than using it. At my work we run a PS Repository which makes installing, updating, and sharing work simple and standardized. DM me if you'd like to chat. I've been writing PowerShell and using GitLab for years. I also love talking about this stuff so feel free to reach out.
🌐
GitProtect.io
gitprotect.io › strona główna › gitlab flow best practices
GitLab Flow Best Practices - Blog | GitProtect.io
March 6, 2024 - Here, of course, GitProtect.io will be of great help and will provide automated repositories and metadata GitHub, Bitbucket, and GitLab backup. The entire deployment should also be carried out automatically and based on a pipeline. Thanks to that we will avoid a situation where every person responsible for deployment will do it based on a different environment. Such a deployment should be found on the tags already mentioned, or the application should be built with each new branch and merged with the main branch. Mastering the best practices and thus learning to automate key processes allows us to improve and accelerate work on projects, but that’s not all.