Fixing broken links and formatting in App Framework page
[AGL/documentation.git] / docs / 7_How_To_Contribute / 1_Getting_Linux_Foundation_account.md
1 ---
2 title: Getting Linux Foundation account
3 ---
4
5 In order to participate in the development of the Automotive Grade Linux
6 project, you will need a Linux Foundation account. You will need to use
7 your LF ID to access to all the AGL community development tools,
8 including [Gerrit](http://gerrit.automotivelinux.org/),
9 [Jira](https://jira.automotivelinux.org/) and the
10 [Wiki](https://wiki.automotivelinux.org/) (for editing, only).
11
12 **NOTE:** Further information about Contributing to the AGL Distro
13 available at [AGL wiki](https://wiki.automotivelinux.org/agl-distro/contributing).
14
15 ## Creating Linux Foundation ID
16
17  1. Go to the [Linux Foundation ID website](https://identity.linuxfoundation.org/).
18
19  2. Select the option `I need to create a Linux Foundation ID`, and fill
20  out the form that appears. (It is advised to authenticate through email
21  instead of logging through Facebook/Google/Github.)
22
23  3. Wait a few minutes, then look for an email message with the subject
24  line: `Validate your Linux Foundation ID email`.
25
26  4. Open the received URL to validate your email address.
27
28  5. Verify that your browser displays the message  ``You have
29  successfully validated your e-mail address``.
30
31  6. Access [Gerrit](http://gerrit.automotivelinux.org/) by selecting
32  ``Sign In``, and use your new Linux Foundation account ID to sign in.
33
34 ## Configuring Gerrit to Use SSH
35
36 Gerrit uses SSH to interact with your Git client. If you already have an SSH
37 key pair, you can skip the part of this section that explains how to generate one.
38
39 What follows explains how to generate an SSH key pair in a Linux environment ---
40 follow the equivalent steps on your OS.
41
42 First, create an SSH key pair with the command:
43 **Note:** This guide recommends using ed25519 keys because it has been found that this type works well across all operating systems.
44
45  ```sh
46  $ ssh-keygen -t ed25519 -C "your_name@example.com"
47  ```
48
49 **Note:** When you’re prompted to “Enter a file in which to save the key” press Enter. This accepts the default location. Next, it will ask you for a password to protect the private key as
50 it generates a unique key. Please keep this password private, and DO NOT
51 enter a blank password.
52
53 The generated SSH key pair can be found in the files ``~/.ssh/id_ed25519`` and
54 ``~/.ssh/id_ed25519.pub``.
55
56 Next, add the private key in the ``id_ed25519`` file to your key ring, e.g.:
57
58  ```sh
59  $ ssh-add ~/.ssh/id_ed25519
60  ```
61
62 Finally, add the public key of the generated key pair to the Gerrit
63 server, with the following steps:
64
65 1. Go to [Gerrit](http://gerrit.automotivelinux.org/).
66
67 2. Click on your account name in the upper right corner.
68
69 3. From the pop-up menu, select ``Settings``.
70
71 4. On the left side menu, click on ``SSH Public Keys``.
72
73 5. Paste the contents of your public key ``~/.ssh/id_ed25519.pub`` and click
74    ``Add key``.
75
76 **Note:** The ``id_ed25519.pub`` file can be opened with any text editor or you can run the command ``cat ~/.ssh/id_ed25519.pub`` in your terminal and copy output. Ensure that all the contents of the file are selected, copied and pasted into the ``Add SSH key`` window in Gerrit.
77
78 **Note:** The SSH key generation instructions operate on the assumption
79 that you are using the default naming. It is possible to generate
80 multiple SSH keys and to name the resulting files differently. See the
81 [ssh-keygen](https://en.wikipedia.org/wiki/Ssh-keygen) documentation for
82 details on how to do that. Once you have generated non-default keys, you
83 need to configure SSH to use the correct key for Gerrit. In that case,
84 you need to create a ``~/.ssh/config`` file with command ``touch ~/.ssh/config`` and add details in config file.
85
86 ```
87 host gerrit.automotivelinux.org
88   HostName gerrit.automotivelinux.org
89   IdentityFile ~/.ssh/id_ed25519
90   User <LFID>
91   Port 29418
92 ```
93
94 `<LFID>` is your Linux Foundation ID(username) and the value of IdentityFile is the
95 name of the public key file you generated.
96
97 **Warning:** Potential Security Risk! Do not copy your private key
98 ``~/.ssh/id_ed25519``. Use only the public ``~/.ssh/id_ed25519.pub``.