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?
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:
remote:
remote: The private project 3p0s/MyProject was successfully created.
remote:
remote: To configure the remote, run:
remote: git remote add origin [email protected]:3p0s/MyProject.git
remote:
remote: To view the project, visit:
remote: https://gitlab.com/3p0s/MyProject
remote:
remote:
remote:
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 [email protected]: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.
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
Prerequisite:
You must have the Owner role for a group.
On the top bar, select Menu > Groups and find your project.
On the left sidebar, select Settings > General .
Expand Naming, visibility .
Under Visibility level select either Private , Internal , or Public .
Select Save changes .
THEN, the project visibility:
Official documentation.
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