# Getting started

Initial setup instructions for development environments.
List and explanation of development tools used in our team.
We should automate this as much as possible e.g. by providing an ansible playbook.

## Setup git

As we are relying on tracability, we are enforcing the use of proper usernames in git. If you are only working with Ypsomed repositories, you can use the following commands to set up your global git configuration:

```bash
git config --global user.name "FIRST_NAME LAST_NAME" 
git config --global user.email "ABBREVIATION@ypsomed.com" 
```

If you are also working in other contexts, it is recommended to purge the global configuration and set it up for each repository individually. You can do this by running the following commands once:

```bash
git config --global --unset user.name
git config --global --unset user.email
```

And then in each repository set up individual configuration:

```bash
git config user.name "FIRST_NAME LAST_NAME"
git config user.email "ABBREVIATION@ypsomed.com"
```

## Setup ssh keys

First, create a dedicated ssh key. Ensure to create seperated keys for different Azure DevOps organizations, for example for development, test or production environments and for sure for different customers.

```bash
export KEY_NAME="key-azdoxwr-ssh" # choose your name here
ssh-keygen -t rsa-sha2-512 -f ~/.ssh/$KEY_NAME -N ""
```

Update your local `~/.ssh/config` file. The example below includes a customer example `yps` and the XWare example. The XWare example is special as we have very old Azure DevOps instance which used to have an old naming scheme. Thats why we hav the different host names.

```text
Host ssh.dev.azure.com
    HostName ssh.dev.azure.com
    User git
    IdentityFile ~/.ssh/key-azdoyps-ssh
    IdentitiesOnly yes

Host vs-ssh.visualstudio.com
    HostName vs-ssh.visualstudio.com
    User git
    IdentityFile ~/.ssh/key-azdoxwr-ssh
    IdentitiesOnly yes
```
