Eklenecek kullanıcının public_key’i alınır. Bunun için kullanıcın bilgisayarında, geliştirme için kullanılan kullanıcı hesabı ile login olunur ve aşağıdaki komut çalıştırılır.
ali@ali-GA-990XA-UD3:~/ ssh-keygen -t rsa -C “ali@ali-GA-990XA-UD3“
bu komut ile kullanıcın home klasöründe bulunan .ssh klasörü altında “[email protected]” isimli bir public key oluşur. Bu public key dosyası gitolite yönetici olan kullanıcıya iletilir. gitolite yöneticisi olan kullanıcı, bu public key dosyasını “gitolite-admin/keys” klasörüne yerleştirir ve gitolite deposuna ekler
veli@veli-GA-990XA-UD3:~/gitolite-admin/git add keydir/[email protected]
Sonrasında eklenecek kullanıcı için git kullanıcısı oluşturulur:
veli@veli-GA-990XA-UD3:~/gitolite-admin/git config –global user.name “ali”
veli@veli-GA-990XA-UD3:~/gitolite-admin/git config –global user.email “[email protected]“
bu işlemden sonra “gitolite-admin/conf/” klasöründe bulunan “gitolite.conf” dosyasını düzenleyerek “ali” kullanıcısının geliştireceği proje deposunu ve erişim yetkilerini belirleyebilir:
veli@veli-GA-990XA-UD3:~/gitolite-admin/nano conf/gitolite.conf
@administrators = git-admin
@developers = ali
repo gitolite-admin
RW+ = @administrators
repo project
RW+ = @administrators
RW = @developers
R = hasan
repo testing
RW+ = @all
Şimdi bu dosya içeriğini satır satır inceleyelim.
ilk iki satırda “@” işareti ile başlayan tanımlamalar “alias” tanımlamalarıdır. Alias tanımlamaları bir projede çalışacak birden fazla aynı erişim yetkisi olan kullanıcıları tek tek her projeye eklemek yerine, tanımlanan alias ile ortak projelerde ortak yetkileri olan kullanıcıları guruplayarak eklemeyi sağlar.
“repo” ile başlayan satırlar proje depolarını belirler. Yeni bir depo oluşturmak için yeni bir satıra:
repo yeniproje
satırı eklemek yeterlidir. Her repo’nun kendine özel erişim yetkileri olabilir erişim yetkileri şu şekilde tanımlanır:
- R = Sadece okuma yetkisi
- RW = Mevcut ref push ya da yeni ref oluşturma
- RW+ = Okuma, yazma ve “push -f” ya da ref silme yetkisi (i.e., destroy information)
- – (the minus sign) = Erişim yasaklama (deny access)
Yukarıdaki örnekte “R” yazan satırda da görülebileceği üzere herhangi bir gruba dahil olması gerekmeyen kullanıcıları doğrudan kullanıcı adı ile ekleyebilirsiniz. “gitolite.conf” dosyasında gerekli düzenlemeler yapıldıktan sonra eklenen key dosyaları ve değiştirlen conf dosyası giotsis-admin (bu örnekte veli isimli kullanıcı) tarafından yerel depoya gönderilip uzak depoya itelenir.
veli@veli-GA-990XA-UD3:~/gitolite-admin/git commit -a -m “yeni depo ve kullanıcı eklendi”
[master a5f1bad] yeni depo ve kullanıcı eklendi
1 file changed, 3 insertions(+), 4 deletions(-)
veli@veli-GA-990XA-UD3:~/gitolite-admin/git push
Enter passphrase for key ‘/home/veli/.ssh/id_rsa’:
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 384 bytes | 0 bytes/s, done.
Total 4 (delta 1), reused 0 (delta 0)
To [email protected]:gitolite-admin
ec31c2f..a5f1bad master -> master
Bu şekilde hem kullanıcı hem de repository oluşturmuş oldun. Aynı zamanda repository’e kullanıcıları tanımlayıp yetkilerini verdik.