代码开发/gerrit/设置
设置以连接到 gerrit
Before you start: Troubleshooting help
The instructions below should be easy and quick to follow. However, if you get stuck somewhere, here is how you get help:
- via IRC #libreoffice-dev IRC://
- via email to the mailing list
- with authentication issues when signing in to gerrit, contact the Infrastructure Team
Register in Gerrit for first time
Gerrit uses The Document Foundation's Single Sign-On service for authentication. Create an account there if you don't have one already (several other sites, such as this wiki, use it too). Then simply visit gerrit and click on the “Sign in” link at the top right of the page. You'll be redirected to our central authentication portal, and then back to gerrit once authenticated.
Setting yourself up for gerrit - the easy way
If you have a checkout of libreoffice/core already, you can just run ./logerrit setup
inside the source code directory. The logerrit script will try to automatically setup keys and configure ssh for you, and if it can't it will guide you through these steps: if necessary, just follow the steps.
The program will tell you to go to https://gerrit.libreoffice.org and sign in to automatically provision your account from our Single Single-On system. The program will also generate a key pair for SSH and print the public part (that is, the content of /home/[username]/.ssh/id_rsa.pub
). This is a long random-looking string beginning with 'ssh-rsa'. You must add it to your settings page for gerrit to work from the command line. Paste it into the field that says New SSH key and click the button that says ADD NEW SSH KEY.
If ./logerrit test
fails and ssh -vvv logerrit
informs you about ~/.ssh/config
having bad permissions, run chmod 600 ~/.ssh/config
. If ./logerrit test
succeeds, nothing happens and after pressing Ctrl + C you will see the message "Your gerrit setup was successful!".
Detailed and nitty-gritty setup topics
设置以连接到 gerrit - 手动配置
- Visit https://gerrit.libreoffice.org and click the “Sign in” link at the top right of the page. Once back from our Single Single-On portal the account should be automatically provisioned using full name, primary email address, and username found from your SSO profile. Please contact the Infrastructure Team if authentication is denied; this might be due to a collision (if your username or email address is used by another account) which needs to be resolved manually.
- Take note of the username found in your gerrit profile settings. This username is referred to as
YOUR_USERNAME_HERE
below. - Generate an SSH keypair for gerrit (of course you can also reuse an existing key) and upload the public part in the settings page. Users are associated by username and SSH key.
- Add the following to your
${HOME}/.ssh/config
:
Host logerrit gerrit.libreoffice.org
IdentityFile <span lang="en" dir="ltr" class="mw-content-ltr">/path/to/your/private-key</span>
User <span lang="en" dir="ltr" class="mw-content-ltr">YOUR_USERNAME_HERE</span>
Port 29418
HostName gerrit.libreoffice.org
Note that /path/to/your/private-key
must include the file name as well. For example: ~/.ssh/id_rsa
git config remote.origin.pushurl ssh://logerrit/core
cd .git/hooks && ln -s ../../.git-hooks/* ./
Now push !
Other repositories
Other repositories than core might not have a ./logerrit
file. If you already are setup on gerrit for the core repository, you only need to make sure the other repository pushes to the right repository, with the right target.
For example, if you cloned the infra/devcentral
repository, first add the correct remote to your local copy:
git config remote.origin.pushurl ssh://logerrit/infra/devcentral
Then, push to the correct target for code review:
git push origin HEAD:refs/for/refs/heads/master