Co to jest GitLab?
Autor: Redakcja Domeny.ForSale Opublikowano
W skrócie: GitLab to platforma do przechowywania kodu, współpracy nad zmianami i automatyzowania testów oraz wdrożeń aplikacji. Wykorzystuje Git, czyli system zapisujący historię zmian w plikach, ale dodaje do niego narzędzia do organizacji pracy i kontroli jakości. Możesz korzystać z usługi GitLab.com albo uruchomić GitLab we własnej infrastrukturze.
Do czego służy GitLab i czym różni się od Gita?
Git pozwala śledzić, kto i kiedy zmienił pliki, porównywać ich wersje oraz przywracać wcześniejszy stan projektu. Działa również lokalnie na komputerze, bez konta w jakimkolwiek serwisie. GitLab jest natomiast platformą, która udostępnia wspólne miejsce pracy dla osób korzystających z Gita.
Podstawą projektu jest repozytorium, czyli zbiór plików wraz z historią ich zmian. GitLab umożliwia przeglądanie repozytorium w przeglądarce, zarządzanie dostępem i omawianie proponowanych poprawek. Oprócz kodu można w nim przechowywać dokumentację, konfigurację serwera czy pliki tekstowe strony internetowej.
GitLab nie jest edytorem kodu ani systemem zarządzania treścią takim jak WordPress. Programista zwykle pisze kod w swoim edytorze, a następnie przesyła zmiany do repozytorium. Platforma pomaga je sprawdzić i dostarczyć do środowiska, w którym działa aplikacja.
Jak wygląda współpraca nad zmianami?
Praca w GitLabie nie musi polegać na bezpośrednim zmienianiu głównej wersji projektu. Uczestnik zespołu tworzy gałąź, czyli osobną linię rozwoju kodu, i zapisuje w niej zmiany jako commity — zestawy modyfikacji z opisem. Dzięki temu można przygotować nową funkcję bez natychmiastowego wpływu na wersję używaną przez pozostałych.
Gotową propozycję przedstawia się w merge requeście, czyli prośbie o połączenie zmian z wybraną gałęzią. Inne osoby mogą porównać kod, zostawić komentarze i wskazać poprawki. Po spełnieniu ustalonych warunków zmiany zostają połączone; wymagane zatwierdzenia i reguły dostępu zależą od konfiguracji oraz dostępnych funkcji.
Przykładowo agencja poprawia formularz kontaktowy na stronie klienta. Programista przygotowuje zmianę w osobnej gałęzi, druga osoba sprawdza obsługę błędów, a automatyczny test weryfikuje poprawność wysyłania danych. Dopiero po kontroli zespół łączy poprawkę z główną wersją i wdraża ją na stronę.
Do zgłaszania błędów i planowania zadań służą issues, czyli zgłoszenia z opisem, dyskusją i osobą odpowiedzialną. Powiązanie zgłoszenia z merge requestem ułatwia odtworzenie nie tylko tego, co zmieniono, ale także dlaczego.
Co daje automatyzacja CI/CD?
CI/CD oznacza ciągłą integrację oraz ciągłe dostarczanie lub wdrażanie zmian. Ciągła integracja polega na częstym łączeniu pracy zespołu i automatycznym sprawdzaniu kodu. Dostarczanie przygotowuje oprogramowanie do wydania, a wdrażanie może dodatkowo automatycznie publikować je w docelowym środowisku.
W GitLabie takie działania opisuje się zwykle w pliku .gitlab-ci.yml umieszczonym w repozytorium. Tworzą one pipeline, czyli zestaw zadań wykonywanych według określonych reguł. Zadania uruchamia runner — program wykonujący polecenia na przypisanej mu infrastrukturze.
Prosty pipeline dla strony internetowej może:
- Sprawdzić składnię i formatowanie kodu.
- Uruchomić testy.
- Zbudować pliki gotowe do publikacji.
- Wysłać je na serwer testowy, a po ręcznym zatwierdzeniu także na produkcyjny.
Samo umieszczenie projektu w GitLabie nie uruchamia kompletnego procesu wdrożeniowego. Trzeba skonfigurować zadania, zapewnić dostępny runner i nadać niezbędne uprawnienia. Haseł oraz kluczy dostępowych nie należy zapisywać w kodzie; służą do tego odpowiednio zabezpieczone zmienne CI/CD lub system zarządzania sekretami. Automatyczne testy wykrywają tylko problemy objęte ich zakresem, więc zielony wynik nie gwarantuje braku błędów.
GitLab.com czy własna instalacja?
GitLab.com to usługa utrzymywana przez dostawcę. Nie musisz instalować platformy, aktualizować jej ani administrować jej serwerem. Nadal odpowiadasz jednak za ustawienia projektu, konta użytkowników, uprawnienia i ochronę danych dostępowych.
Własna instalacja, określana jako GitLab Self-Managed, daje większą kontrolę nad infrastrukturą i miejscem przechowywania danych. W zamian wymaga aktualizacji, monitoringu, kopii zapasowych oraz zabezpieczenia systemu. Uruchomienie jej na firmowym serwerze nie oznacza automatycznie wyższego bezpieczeństwa.
Dla małego zespołu bez administratora praktyczniejszym początkiem jest zwykle usługa hostowana. Własna instalacja może mieć sens przy szczególnych wymaganiach dotyczących sieci, integracji lub danych. Przed wyborem sprawdź w oficjalnej dokumentacji i cenniku GitLaba aktualne limity przestrzeni, zasady rozliczania zadań CI/CD oraz dostępność potrzebnych funkcji w danym planie.
GitLab a GitHub i pierwsze kroki
GitLab i GitHub to różne platformy wykorzystujące Git. Obie umożliwiają przechowywanie repozytoriów, przegląd zmian, obsługę zgłoszeń i automatyzację pracy. W GitHubie odpowiednikiem merge requestu jest pull request, a do automatyzacji służy między innymi GitHub Actions.
Wybór najlepiej oprzeć na potrzebnych integracjach, uprawnieniach, kosztach automatyzacji i doświadczeniu zespołu. Przeniesienie samego repozytorium Git bywa stosunkowo proste, ale migracja zgłoszeń, dyskusji i konfiguracji wdrożeń wymaga osobnego przygotowania.
Na początek utwórz prywatny projekt z plikiem README opisującym jego przeznaczenie. Następnie przygotuj drobną zmianę w osobnej gałęzi i otwórz merge request. Taki test pozwoli poznać podstawowy obieg pracy, zanim dodasz automatyzację i dostęp do serwerów.
Zobacz też: Co to jest GPT?
