Git
Chapters ▾ 2nd Edition

4.8 Git on the Server - GitLab

GitLab

GitWeb olduqca asan quruluşdadır. Əgər siz daha müasir və tam xüsusiyyətli Git server axtarırsınızsa, onun yerinə quraşdıra biləcəyiniz başqa open source solutions var. Gitlab onların ən məşhurlarından olduğu kimi biz onun quraşdırılmasını mühafizə edə və misal kimi göstərə bilərik. Bu GitWeb seçimindən bir az daha mürəkkəbdir və daha çox təminat tələb edir, lakin tam xüsusiyyətli seçimdir.

Quraşdırılma

GitLab məlumat bazalı veb-tətbiqdir, buna görə də onun quraşdırılması digər Git serverlərə görə daha dolaşıqdır. Yaxşı ki, bu prosess tam sənədli və dəstəklənəndir.

GitLab quraşdırılmasını izləmək üçün bir neçə metod vardır. Bir şeyi tez işlətmək istəyirsinizsə, https://bitnami.com/stack/gitlab-dan bir klik quraşdırıcını və ya virtual mexanizm təsvirini yükləyə və konfiqurasiyanı xüsusi çevrənizə uyğun dəyişə bilərsiniz. Bir incə toxunuşla Bitnami login ekranını daxil edir (alt+→ yazaraq daxil edilə bilir); bu sizə GitLab üçün quraşdırılmış ip ünvan, standart istifadəçi adı və parolu göstərir.

Virtual mexanizm Bitnami Gitlabın giriş ekranı
Figure 50. Virtual mexanizm Bitnami Gitlabın giriş ekranı

Başqa hər şey üçün, https://gitlab.com/gitlab-org/gitlab-ce/tree/master-da yerləşən GitLab Community Editiondakı rəhbəri izləyə bilərsiniz. Orada siz Chef reseptlərindən istifadə edərək GitLab quraşdırılmasına yardım, Digital Oceanda virtual ekran və RPM və DEB paketlərini (betadakı bu yazılar kimi) tapa bilərsiniz. Orada həmçinin, standart olmayan əməliyyat sistemlərində GitLab qoşmağın “qeyri-rəsmi” yollarını, tam manual quraşdırmaları və digər mövzuları tapa bilərsiniz.

Idarəetmə

GitLab’ın idarəetmə interfeysi veb üzərindən daxil olunandır. Sadəcə brauzerinizi GitLab’ın quraşdırıldığı IP adressə və ya host adına işarələyin və admin istifadəçi kimi daxil olun. Standart istifadəçi adı admin@local.host və standart parol 5iveL!fe (hansı ki daxil olduğunuz anda dəyişə bilərsiniz) olacaq. Daxil olduqda menyunun sağ üst tərəfindəki “Admin area” ikonuna klikləyin.

GitLab menyusundakı ``Admin area'' ikonu.
Figure 51. GitLab menyusundakı “Admin area” ikonu.

İstifadəçilər

GitLab hesablarında istifadəçilər insanlarla yazışanlardır. İstifadəçi hesablarında çox mürəkkəblik yoxdur; əsasən onlar əsas dataya yığılmış şəxsi informasiyalar toplusudur. Hər bir istifadəçi hesabı həmin istifadəçiyə aid olan proyektlər qrupunun namespace'i (ad boşluğu) ilə gəlir. Əgər istifadəçi jane’in proyekt adlı proyekti olarsa, onda həmin proyektin url’i belə görünür: http://server/jane/project

GitLab istifadəçisinin idarəetmə ekranı
Figure 52. GitLab istifadəçisinin idarəetmə ekranı.

İstifadəçini iki yolla silmək olar. “Blocking” istifadəçini GitLab’a girişdən məhrum edir, lakin həmin istifadəçinin ad boşluğundakı bütün datası qorunur və həmin istifadəçinin mail adresi ilə verdiyi bütün commit-lər həmin istifadəçinin profilinə linklənir.

Digər tərəfdən isə, istifadəçini “Destroying” (yox etmək) onu faylsistemdən və databasedən tam olaraq silir. Onların ad boşluğundakı bütün data və proyektlər silinir, həmçinin onlara məxsus bütün qruplar aradan qaldırılır. Bu çox nadir hallarda istifadə edilir və daha qalıcı və dağıdıcı addımdır.

Qruplar

GitLab qrupu istifadəçilərin proyektlərə necə daxil olduğunun datasını əhatə edən proyektlər assambleyasıdır. Hər qrupun -istifadəçilərdə olduğu kimi- proyekt ad boşluğu mövcuddur, yəni qrup məşqinin proyekt materialları olarsa, onlar belə görünür: http://server/training/materials.

GitLab qrup idarəetmə ekranı
Figure 53. GitLab qrup idarəetmə ekranı.

Hər bir qrup həmin qrupun icazələri və proyektləri bir neçə istifadəçiyə bağlıdır. Bu “Guest”-dən (sadəcə problemlər və söhbətlər) “Owner”-ə (bütün qrupu, üzvlərini və proyektlərini idarəetmə) qədər hissəni əhatə edir. Burada sadalanan çoxsaylı proyekt tipləri var, lakin GitLab’ın idarəetmə ekranında yardımçı linki mövcuddur.

Proyektlər

GitLab proyekti tək bir Git deposuna uyğunlaşır. Hər proyekt bir ad boşluğuna, istifadəçiyə və ya qrupa aiddir. Əgər proyekt istifadəçiyə aiddirsə, proyektin sahibi proyektə girişi olan hər kəsə birbaşa nəzarət edə bilir; əgər proyekt qrupa məxsusdursa, istifadəçi səviyyə icazəsi də həmçinin təsir edə bilir.

Hər proyektin depolara və proyektin səhifələrinə oxuma girişi olanlara nəzarət edilə bilən görünmə dərəcəsi var. Əgər proyekt Private-dirsə proyektin sahibi xüsusi istifadəçilərə geniş daxilolma icazəsi verməlidir. Internal proyekt daxil olan hər istifadəçiyə görünəndir, Public proyekt isə hər kəsə görünəndir. Qeyd edin ki, bu UI veb proyekti üçün hər iki git fetch girişinə nəzarət edir.

Hooklar

GitLab proyekt və sistem səviyyəsində hookları da daxil edir. Bunların hər ikisi üçün GitLab serveri müvafiq hadisələr baş verəndə JSON təsvirilə HTTP POST yerinə yetirir. Bu sizin Git depolarınızı və GitLab instansiyasınızı inkişaf avtomatlaşdırmanızın qalan hissəsinə bağlamaq üçün əla bir yoldur, məsələn, CI serverləri, söhbət otaqları və ya yerləşdirmə qurğuları.

Əsas İStifadə

GitLab ilə etmək istənilən ilk şey yeni proyekt yaratmaqdır. Bu alətlər panelindəki “+” ikonuna basmaqla yerinə yetirilir. Sizdən proyektin adı, hansı ad boşluğuna aid olduğu və görünmə səviyyəsinin nə olduğu soruşulacaqdır. Burada qeyd edilənlərin çoxu daimi olmur və tənzimlənmələr bölməsindən təkrar dəyişdirilə bilər. “Create Project”-ə klikləyin və budur, artıq hazırdır.

Proyekt hazır olduqdan sonra siz onu böyük ehtimalla lokal Git deposuna bağlayacaqsınız. Hər proyekt HTTPS və ya SSH üzərindən daxil olunandır və hər ikisi Git yayımını konfiqurasiya etmək üçün istifadə oluna bilər. URL’lar proyektin ana səhifəsində yuxarıda görünürlər. Bu əmr yayımlanan ərazidə mövcud yerli depo üçün gitlab adlı remote yaradacaq:

$ git remote add gitlab https://server/namespace/project.git

Deponun sizdə local kopyası yoxdursa, onda siz sadə şəkildə belə edə bilərsiniz:

$ git clone https://server/namespace/project.git

Veb UI deponun özündə işlək görünmələri təmin edir. Hər proyektin ana səhifəsi ən son hərəkətləri göstərir və üst tərəfdəki linklər sizə proyektin faylları və tapşırıqlarını göstərir.

Birlikdə İşləmək

GitLab proyektində birgə işləməyin ən rahat yolu digər istifadəçiyə Git deposuna birbaşa push access verməkdir. Proyektin tənzimləmələr hissəsində “Members” hissəsində proyektə istifadəçi əlavə edə bilərsiniz və yeni istifadəçinin giriş səviyyəsini əlaqələndirə bilərsiniz (fərqli giriş səviyyələri Qruplar'da müzakirə edilir). İstifadəçi developer və ya yuxarı səviyyə giriş verilərsə, cəzasız birbaşa depo olan branch-lar ilə commit-lər verə bilər.

Əməkdaşlıq etməyin digər yollarından biri də istəkləri birləşdirməkdir. Bu özəllik hər bir istifadəçiyə nəzarətli şəkildə proyektə dəstək verməyə imkan verir. Birbaşa girişi olan istifadəçilər branch yarada, ona commit-lər verə və master və ya başqa branch-larda birləşdirilmiş istəklər yarada bilərlər. Depoya push icazəsi olmayan istifadəçilər onu “fork” (öz kopyasını yaratmaq) edə bilər, həmin kopyaya push tapşırıqları verə bilər və əsas proyektdən geriyə forkdan istəklər aça bilərlər. Bu model sahibinə etibar etibarsız istifadəçilərin dəstəyi ilə depoya nəyin nə zaman gəldiyini nəzarət altına almağa imkan verir.

Birləşdirilmiş istəklər və problemlər Gitlabdakı uzunmüddətli diskussiyanın əsas hissələrindəndir. Hər birləşmə istəyi təklif olunan dəyişikliyin( hansı ki, yüngül kod yığımını tələb edir), eləcə də ümumi müzakirə mövzusunun xətti olaraq müzakirə edilməsinə imkan verir. Onların hər ikisi istifadəçilər tərəfindən təyin oluna və mərhələlərə bölünə bilər.

Bu hissə ən əsas GitLabın Git ilə əlaqəli xüsusiyyətlərinə yönəldilmişdir, lakin yekun proyekt olaraq o sizə wiki və sistem vasitələri ilə komandanızla birgə işləməyə imkan verir. GitLabin başqa bir üstünlüyü də odur ki, server quraşdırılıb işləyirsə, sizin nadir hallarda konfiqurasiya faylını tweakləməyə və ya SSH serveri ilə giriş etməyə ehtiyacınız olacaq (əksər idarəetmə və ümumi istifadə browserin interfeysində başa çatdırılır).