panemu

Uncategorized

Gerrit Code Review

Written by - February 26, 2012

Gerrit adalah aplikasi web untuk code review proyek yang menggunakan repository Git. Dengan Gerrit kita bisa menampilkan code lama dan baru berdampingan. Bagian kode yang berubah diberi tanda dengan cara yang sangat memudahkan kita untuk mereview kode. Bahkan kita juga bisa memberi komentar langsung pada kode yang berubah tersebut.

Gerrit juga sangat memudahkan pengaturan hak akses untuk proyek yang menggunakan repository Git. Kita bisa mengatur siapa saja yang berhak untuk melihat proyek, submit kode untuk direview, orang yang bisa mereview, hingga siapa yang boleh me-merge kode ke repository.

Kelebihan Gerrit yang lain adalah pada aspek authentication. Kita bisa mengatur otentikasi dengan HTTP Digest, OpenId, dan juga LDAP. Database yang didukung Gerrit adalah H2, MySql dan PostgreSql. Untuk sekedar mencoba Gerrit, penggunaan database H2 sangatlah memudahkan karena database tersebut sudah embed dengan installer Gerrit.

Dalam artikel ini, kita akan membahas Gerrit versi 2.2.1 dengan database MySQL di sistem operasi Ubuntu.

Instalasi

Petunjuk instalasi Gerrit bisa dilihat di http://gerrit-documentation.googlecode.com/svn/Documentation/2.2.2/install.html. Dokumentasi Gerrit juga terinstal ketika menginstal gerrit dan bisa diakses di http://<gerrit_server>:8081/Documentation/install.html

Konfigurasi Sistem

Konfigurasi tersimpan di <gerrit_home>/etc/gerrit.config. Contoh konfigurasi adalah sebagai berikut:

[gerrit]

basePath = git

[database]

type = MYSQL

hostname = localhost

database = reviewdb

username = gerrit2

[auth]

type = LDAP

[ldap]

server = ldap://10.1.1.1

accountBase = “ou=Users;dc=memberamo”

groupBase = “ou=Groups;dc=memberamo”

accountFullName = cn

accountEmailAddress = mail

[sendemail]

smtpServer = smtp.sendgrid.net

smtpUser = blabla@blabla.com

[container]

user = gerrit2

javaHome = /usr/lib/jvm/java-6-sun-1.6.0.26/jre

[sshd]

listenAddress = *:29418

[httpd]

listenUrl = http://*:8081/

[cache]

directory = cache

Catatan:

server = ldap://10.1.1.1 → server ldap

accountFullName = cn berarti gerrit akan mengambil informasi cn dari ldap untuk dipakai sebagai nama pemilik akun. Cn adalah singkatan dari common name

Orang yang login pertama kali otomatis terdaftar dalam group Administrators. Orang yang mendaftar selanjutnya akan terdaftar sebagai Registered Users. Administrators dapat mengubah group setiap user. Orang yang login pertama kali setelah Gerrit diinstall akan menjadi Administrator.

Membuat SSH Public Key

Gerrit web ui hanya berfungsi terutama untuk mereview kode. Sedangkan untuk upload kode, download dll Gerrit mempunyai port ssh. Defaultnya adalah 29418 sebagaimana di file konfigurasi diatas. Untuk bisa mengakses port ssh Gerrit, login dulu ke Gerrit webui nya untuk mendapatkan akun. Selanjutnya kita perlu membuat ssh key untuk didaftarkan ke Gerrit agar komputer kita bisa mengakses port ssh Gerrit.

Untuk membuat ssh key jalankan perintah berikut di terminal

$ ssh-keygen -t rsa -C "your_email@youremail.com"

Sesuaikan alamat email Anda pada perintah di atas. By default, file id_rsa dan id_rsa.pub akan disimpan di ~/.ssh/. Kopi isi file id_rsa.pub ke gerrit. Contoh isi file id_rsa.pub adalah sbb:

salmon.silalahi@anggit:~$ cat .ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMRK4Yo85G72IypvGh4hLyux1m32T8Rupv8HapxgfuV6Zdkm4/IQOkdZkSUl0baQZn2KsqPJ3+WBQU+U6Bta7o3tPGF/WG25StMXjkTIsAu6GXLsth3Ii+Xh1dfp+Tpdnm08HA8fRizoyCzHbfKIqg//AVOsLOBPR4RBrH6aemIhRiKYd7rr3hWcj7z0tQVU3e+NVCMDDnnDY5wNeUsgJoAobpC9HOJ7IQtvTle/j5obIAr6WrQFKDQTF1CXUB+dcniiT5wyqqPMOYJkcLl8TkxDS7otFinNw0QCHmII08bR4lieT5b4J53YvWvWkXsHZRXWgZ239kFTSmEIqTxeqr your_email@youremail.com

Paste id-rsa.pub tersebut ke gerrit:

Untuk memastikan id_rsa terdaftar di ssh-agent, jalankan perintah ssh-add. Jika muncul error “Could not open a connection to your authentication agent.” then your session is not running under the ssh-agent. Jalankan perintah berikut:

$ exec ssh-agent bash

kemudian jalankan lagi ssh-add

$ ssh-add

Enter passphrase for /home/salmon.silalahi/.ssh/id_rsa:

Identity added: /home/salmon.silalahi/.ssh/id_rsa (/home/salmon.silalahi/.ssh/id_rsa)

Anda akan diminta memasukkan passphrase jika ketika Anda membuat id_rsa tadi memasukkan passphrase.

Untuk mengecek apakah synchronisasi id_rsa di client dengan id_rsa.pub (public) di gerrit sudah benar, jalan kan perintah:

$ ssh -vv -p 29418 salmon.silalahi@localhost

Jika ada bagian berikut ini di output berarti sudah benar:

debug2: channel 0: obuf_empty delayed efd 6/(285)

**** Welcome to Gerrit Code Review ****

Hi Salmon Silalahi, you have successfully connected over SSH.

Unfortunately, interactive shells are disabled.

To clone a hosted Git repository, use:

git clone ssh://salmon.silalahi@anggit:29418/REPOSITORY_NAME.git

debug2: channel 0: written 285 to efd 6

No Responses to “ Gerrit Code Review ”

Responses are closed.


Jogjakarta

Telp +62 274 441100