.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 Huawei Technologies Co., Ltd.

Configure git and gerrit
========================

Basics
------
The recommended version of git is 2.7.4 or later.  Check the installed version in the Ubuntu VM:

.. code-block:: bash

  git --version

Create an SSH key to user with gerrit.  Use no passphrase.

.. code-block:: bash

  ssh-keygen -t rsa

Enter your SSH public key (id_rsa) into gerrit:

- Browse to https://gerrit.onap.org
- Log in
- Open the menu next to your name (under the green search button)

.. image:: images/Configure_git_1.png

- Select "Settings"
- In the "Settings" sidebar, click "SSH Public Keys"`
- Click "Add Key..."
- Paste the entire contents of $HOME/.ssh/id_rsa.pub into the text area and click "Add".

.. image:: images/Configure_git_2.png

Install the git-review package.

.. code-block:: bash

  sudo apt update
  sudo apt install git-review

Create $HOME/.gitconfig (replace highlighted values with your own information):
  [user]

        name = FirstName LastName

        email = you@yourcompany.com

  [core]

        autocrlf = false

  [merge]

        tool = vimdiff

  [gitreview]

        username = YourLinuxFoundationId

**If you're behind a corporate firewall and your proxy server has SOCKS support...**

You may be able to use the SSH protocol with git, which is preferred versus HTTP.  This method is known to work in the AT&T corporate network.
Install the socat package, which allows you to tunnel SSH connections through a proxy that supports SOCKS:

.. code-block:: bash

  sudo apt update
  sudo apt install socat

Create (or append to) $HOME/.ssh/config (replace highlighted values with your information)

  Host gerrit.onap.org

  User userid

  Hostname gerrit.onap.org

  ProxyCommand socat - PROXY:host:%h:%p,proxyport=port

  IdentityFile /home/userid/.ssh/id_rsa

  ServerAliveInterval 10

Verify that you have connectivity to gerrit through the proxy.  Answer "yes" to continue connecting, if prompted.

.. code-block:: bash

  ssh -p 29418 gerrit.onap.org

.. image:: images/Configure_git_3.png