I cant seem to make my project public

So when I go to my projects settings > General > Visibility and try to set project visibility to anything else all options are gray but public. I own the project. I remember when I set up the project the options for public, private were gray then as well. Not sure as Im new to gitlab and the answer is not obvious. Maybe it is a paid feature?

No, public is not paid feature, although don’t know why you have this problem. I can change a private repo to public.

Thanks. It’s good to know that it’s likely a browser issue. Firefox Linux.

I use Firefox on Linux too, no problem, so it’s not this. At least not for me. Try another browser see if it works, then maybe clear your browser history.

Fails in chromium as well. In firefox I do not keep browser cache/history/cookies or anything really. Thanks for the advise though.

Are you using gitlab.com a self-managed GitLab instance?

If it’s self-managed, check in the admin area at: https://your-gitlab.domain/admin/application_settings/general

and look for this setting:


Im using gitlab.com. I log in and go to my project and select:
Settings > General > Visibility, project features, permissions

and under Project Visibility the dropdown box is auto selected to Public with all other options un-selectable.

Maybe I should remove and recreate the project on gitlab then push again?

Edit: I removed the repository project and all it’s files. Created a new project and selected public during creation. Added remote origin and pushed again. Still unable to change visibility settings.

The output from the console tells me that → remote: The private project was successfully created.

I chose public when I created my gitlab project. Yet after following the CLI instructions provided to Push an existing Git repository, my project is set to private.

using git version 2.32.0, Manjaro.

Thanks for confirming you’re on gitlab.com

Are you creating the project in a personal namespace or a group?

The title of this thread says you’re unable to make a project public. Am I correct that you are able to make a public project, but that when you push to it, it changes to private?

If you can share some more details of the commands you’re issuing and maybe some screenshots that could be helpful.

I assume im doing it on my personal namespace. I’m not part of any group. Just me trying to see if I should move my code here from bitbucket. I have been here less than a week so I’m not exactly sure how everything is set up. Although I should be grouping projects together im just testing gitlab before moving 10000’s of lines of code.

So I login.

New Project.

Create Blank Project

Enter all the form data to build a project. I have been leaving the description blank as this is just a test to see if I should move my code base. Select Public, since im pushing an existing git repo I leave the checkbox deselected. and create project.

I just checked before pushing and it seems that the project is in fact Public before I push.

So I push following the instructions provided for Push an existing Git repository.

During git push -u origin --all, the output is:

client_global_hostkeys_private_confirm: server gave bad signature for RSA key 0
Enumerating objects: 156, done.
Counting objects: 100% (156/156), done.
Delta compression using up to 8 threads
Compressing objects: 100% (156/156), done.
Writing objects: 100% (156/156), 110.01 KiB | 3.93 MiB/s, done.
Total 156 (delta 90), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (90/90), done.
remote: The private project 3p0s/MyProject was successfully created.
remote: To configure the remote, run:
remote:   git remote add origin git@gitlab.com:3p0s/MyProject.git
remote: To view the project, visit:
remote:   https://gitlab.com/3p0s/MyProject
To gitlab.com:3p0s/MyProject.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

 rockHopper: image_gallery $ git push -u origin --tags
client_global_hostkeys_private_confirm: server gave bad signature for RSA key 0
Everything up-to-date

As the above output suggests that during project creation and before first push the project appears to be Public. The dropdown menu had two options to select [Public, Private] with internal grayed out. During push something is changed. Is public, private a built in feature in git that I never knew about? The code/repo I pushed is a public repo on bitbucket right now. I dont know?

Not exactly sure whats going on here?

So I had to deviate from the instructions provided and use git remote set-url instead of git remote add.

git remote set-url origin git@gitlab.com:3p0s/MyProject.git

git push -u origin --all

git push -u origin --tags

The repo was being pushed to a new “private-only” project and not the public one I had created previously. They shared the same name and everything. I think I’ve solved this.

Thanks for the help tatkins and iwalker.


Glad to hear you got it working :slight_smile:


I had the same experience as a new/trial user. I found that I had to make the group public first. After that I could make the project public. For both group and project, select settings/General from the sidebar menu. Having made the project public, I found that I couldn’t make the group private again. However I could back out by first making the project private and then making the group private.

I did not have to delete and re-push, and I did not have to modify my local remotes.


I got here from an internet search (DuckDuckGo) and I believe the actual solution was this:

The group must be made public before the project can be made public.

From the documentation:

Change group visibility


  • You must have the Owner role for a group.
  1. On the top bar, select Menu > Groups and find your project.
  2. On the left sidebar, select Settings > General .
  3. Expand Naming, visibility .
  4. Under Visibility level select either Private , Internal , or Public .
  5. Select Save changes .

THEN, the project visibility:
Official documentation.


I had the same issue, In my case It was the gitlab group that the repo sitting in. The gitlab group was private so, repos inside that group inherit the visibility status.


In my case, wasn’t able to change visibility Private → Public, because the project was forked from one, which visibility was Private. Changing original project’s visibility to public fixed the issue

1 Like

To make the project public what I did

  • Created a new Public Group
  • Forked a project, under the new group (can be seen on private project, fork option → selected the public group)
  • removed fork relationship from the new gitlab project settings.

Made the project public

1 Like


thanks for the help! that worked for me. Same error here

this fixed my issue, indeed if we need to make the project public, its namespace should be public as well. once you make the namespace public you can make the project settings to public.