// answer

Can I apply if the project is public but the group or instance is private?

Short answer

No. GitLab for Open Source expects qualifying projects to be publicly visible, and a private parent group or restrictive instance setting can block that requirement.

The harder question is who you do it with: Find collaborators

Can I still apply for GitLab for Open Source if my project is public but my group or instance is private

No. GitLab for Open Source asks for publicly visible open source projects, and GitLab says qualifying projects must be public so people can view and join them. A private group or instance setting can keep a project from meeting that bar, even when the repository itself looks public in your head.

The part people get wrong is the difference between a public project and a public namespace. GitLab’s program page says the benefits apply to an entire namespace, every project in that namespace must use an OSI-approved open source license, and only groups you own with the free tier are eligible in the dropdown. It also says personal namespaces are not eligible for licensing. That means the container around the project matters, not just the repo.

GitLab’s visibility rules make the hierarchy issue concrete. On GitLab, a group can only be as public as the projects and subgroups inside it allow, and GitLab documents that you cannot set a group to private if a project or subgroup in that group is public. GitLab also documents that only members can view a private group and its projects, while a public group can be viewed without authentication. A private group therefore conflicts with the public access the program expects.

A private instance setting can create the same problem at the platform level. GitLab lets administrators set default visibility for new groups and projects, and the docs define public as accessible without authentication. If your instance or admin settings force visibility down, the project may not satisfy the program’s public visibility requirement even if the source code is open in practice to a small internal audience. The check is about public visibility, not about how open the workflow feels to your team.

The practical test is simple: someone outside your team should be able to discover the project, open the repository page, and request access where GitLab asks for that. GitLab’s program page says the goal is collaboration on open source projects and says qualifying projects must be publicly visible and allow users to request access. If an outsider cannot do that because the group is private or the instance keeps the project inside a restricted namespace, the application does not line up with the requirement.

A public project inside a private group is also fragile for another reason, group inheritance. GitLab documents that a project inside a group can inherit access and visibility constraints from the parent, and invited group sharing does not change the fact that the surrounding structure still controls access. In plain terms, you can have a URL that says public while the namespace still limits who can actually reach the project cleanly. That is the situation reviewers look past quickly.

If you want to apply, first move the project into a namespace that is actually public and owned by the applicant. Then check the group visibility, subgroup visibility, and project visibility together, not one at a time. GitLab’s own docs say visibility levels for projects and groups are separate settings, but they interact through the hierarchy. A clean public project in a private container is the wrong shape for this program.

The inconvenient part is that you may need to reorganize before you submit. If the project lives in a private group because the rest of the organization is private, you usually need a dedicated public group for the open source work. If the instance itself is locked down by admin defaults, the owner or administrator needs to change that structure first. The program page also notes that if you are worried about users creating noncompliant projects in a namespace, you should restrict who can create new projects there.

A concrete example helps. Suppose your library is public, but it sits under a private top-level group with private subgroups for the rest of your company. That setup is not a safe candidate for GitLab for Open Source, because the namespace is not publicly open in the way the program asks for. The fix is to move the open source repo into a public group dedicated to the project, then keep private work in a separate private namespace.

If your case is a self-managed instance, the program page says GitLab will review whether the project qualifies for a license for that instance, and it also says some members may host a small number of private projects only when those projects contain sensitive data, with written permission from GitLab. That exception is narrow and not the normal path for an open source application. If your project depends on private grouping for convenience rather than sensitive data, do not assume the exception applies.

The safest rule is this: the project must be public in a namespace that is also public enough to support that visibility, and the surrounding GitLab settings must not hide the project from outsiders. If any layer below the project is private in a way that limits public access, fix that first and apply after the structure matches the program’s public requirement. If you want to keep the project open source and the rest of your GitLab private, split them into separate namespaces.

Frequently asked questions

Can I keep some projects private and still qualify for the program

GitLab says the license is for the publicly visible open source projects that were approved. It also says some members may host a small number of private projects only with written permission from GitLab and only in narrow cases.

Does a public project inside my personal namespace qualify

GitLab’s program page says personal namespaces are not eligible for licensing. If the project sits there, GitLab says you need to convert the personal namespace into a group before it can qualify.

Do group visibility and project visibility behave independently

They are separate settings, but GitLab documents that they interact through inheritance. A parent group cannot be less public than the projects and subgroups inside it allow, so the namespace shape matters.

What should I change first if my project is public but the group is private

Move the open source project into a public group that is dedicated to that work, then confirm the group, subgroup, and project visibility settings all allow outside access.

Know someone stuck on this? Send them the answer.

Sources

Every link here was fetched and confirmed to resolve before this page went live.

More on this topic: Collaborators

Related questions

Not the question you had?

Ask it. Every source gets fetched and checked before anything goes up, so it takes a day or two, and questions that cannot be answered honestly do not get a page at all.

No account, no email address needed.

Looking for someone to build it with?

People on DevConnect post what they are building and what they are missing. You can browse projects, or say what you want to work on and let people come to you.