Migration to Gitlab


#1

Dear all,

The migration of the ageing Orekit development platform on a new server became urgent. We decided to take advantage of the opportunity to modernize our tools. The first migrated component is the forge. From now on, Redmine is replaced by Gitlab:

https://gitlab.orekit.org/

Further to this migration, you must update the url of your remote Git repositories according to the template:

git remote set-url <remote_name> <new_url>

For a clone of the Orekit repository and a remote repository named “origin”, the command line is:

  • for a HTTPS access:

    git remote set-url origin 'https://gitlab.orekit.org/orekit/orekit.git'
    
  • for a SSH access:

    git remote set-url origin 'git@gitlab.orekit.org:orekit/orekit.git'
    

Here are the new repositories:

  • Orekit:

    • HTTP: https://gitlab.orekit.org/orekit/orekit.git
    • SSH: git@gitlab.orekit.org:orekit/orekit.git
  • Orekit Python Wrapper:

    • HTTP: https://gitlab.orekit.org/orekit-labs/python-wrapper.git
    • SSH: git@gitlab.orekit.org:orekit-labs/python-wrapper.git
  • Rugged:

    • HTTP: https://gitlab.orekit.org/orekit/rugged.git
    • SSH: git@gitlab.orekit.org:orekit/rugged.git
  • Stavor:

    • HTTP: https://gitlab.orekit.org/orekit/stavor.git
    • SSH: git@gitlab.orekit.org:orekit/stavor.git

#2

Hello Sebastien,

We are failing in cloning the orekit repo through https, due to our silly proxy.

We would like to try through ssh bu I think I need to be granted some access rights. How can I request that? Only a read access is enough.

Best regards,

Anne-Laure


#3

Hello Anne-Laure,

You don’t need special access rights. You have to create a SSH key and to record the public part in your profile. After that, the following command should works:

git clone git@gitlab.orekit.org:orekit/orekit.git

Regards,

Sébastien


#4

Ok, thank you for you reply!

I had this error code for information :

$ git clone git@gitlab.orekit.org:orekit/orekit.git
Cloning into ‘orekit’…
ssh: connect to host gitlab.orekit.org port 22: Connection timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

With you reply, I suspect some security problems on our side. I’ll fix that.

Best regards,

Anne-Laure


#5

Most probably! I did a test with a new account - without specific access right - from a server outside our local network. Without SSH key, this user can not clone the repository:

user@host$ git clone git@gitlab.orekit.org:orekit/orekit.git
Cloning into 'orekit'...
git@gitlab.orekit.org: Permission denied (publickey).
fatal: Could not read from remote repository.

Once its key SSH copied on Gitlab, the repository was successfully cloned:

user@host$ git clone git@gitlab.orekit.org:orekit/orekit.git
Cloning into 'orekit'...
Enter passphrase for key '/home/user/.ssh/id_rsa': 
remote: Enumerating objects: 80465, done.
remote: Counting objects: 100% (80465/80465), done.
remote: Compressing objects: 100% (17343/17343), done.
remote: Total 80465 (delta 50947), reused 79535 (delta 50083)
Receiving objects: 100% (80465/80465), 46.61 MiB | 410.00 KiB/s, done.
Resolving deltas: 100% (50947/50947), done.
Checking out files: 100% (1520/1520), done.

Sébastien


#6

Hello Sebastien, thank you for your help.

We have not managed to clone the repository via SSH, even after adding a publickey to our gitlab account. This is most likely related to our company proxy : we got a timeout, not a “Permission denied (publickey)”.

However, we got it to work via HTTPS after configuring the proxy properly in git. It is still quite unreliable though, probably because of network issues on our side, so we will try to work these out.

In case other users run into the same issue : we simply set the following environment variables before using git :

http_proxy
https_proxy

The actual value of the environment variables depends on your network configuration, of course.


#7

Hello Yannick,

Yes, you have to set the http_proxy, https_proxy and no_proxy (to access to local services) in your environment.

As in many companies the same proxy manages both HTTP and HTTPS protocols, depending on the authentication is required or not, your must use one of the following syntax:

export http_proxy='http://proxy.mycompany.com'
export https_proxy=$http_proxy
export no_proxy="$(hostname),localhost,.intranet.mycompany.com,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
export http_proxy='http://login:password@proxy.mycompany.com'
export https_proxy=$http_proxy
export no_proxy="$(hostname),localhost,.intranet.mycompany.com,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"

Another solution is to use a SOCKS proxy if your IT service provides such service.