Import bare repositories into your GitLab instance
Notes
- The owner of the project will be the first admin
- The groups will be created as needed
- The owner of the group will be the first admin
- Existing projects will be skipped
How to use
Create a new folder inside the git repositories path. This will be the name of the new group.
- For omnibus-gitlab, it is located at:
/var/opt/gitlab/git-data/repositories
by default, unless you changed it in the/etc/gitlab/gitlab.rb
file. - For installations from source, it is usually located at:
/home/git/repositories
or you can see where your repositories are located by looking atconfig/gitlab.yml
under thegitlab_shell => repos_path
entry.
New folder needs to have git user ownership and read/write/execute access for git user and its group:
sudo -u git mkdir /var/opt/gitlab/git-data/repositories/new_group
If you are using an installation from source, replace /var/opt/gitlab/git-data
with /home/git
.
Copy your bare repositories inside this newly created folder:
sudo cp -r /old/git/foo.git /var/opt/gitlab/git-data/repositories/new_group/
# Do this once when you are done copying git repositories
sudo chown -R git:git /var/opt/gitlab/git-data/repositories/new_group/
foo.git
needs to be owned by the git user and git users group.
If you are using an installation from source, replace /var/opt/gitlab/git-data
with /home/git
.
Run the command below depending on your type of installation:
Omnibus Installation
$ sudo gitlab-rake gitlab:import:repos
Installation from source
Before running this command you need to change the directory to where your GitLab installation is located:
$ cd /home/git/gitlab
$ sudo -u git -H bundle exec rake gitlab:import:repos RAILS_ENV=production
Example output
Processing abcd.git
* Created abcd (abcd.git)
Processing group/xyz.git
* Created Group group (2)
* Created xyz (group/xyz.git)
[...]