GitLab
Főnév
GitLab (tsz. GitLabs)
- (informatika) A GitLab egy teljes körű DevOps platform, amely elsősorban Git-alapú verziókezelést, de emellett CI/CD-t, hibakövetést, kódközösségi funkciókat, és projektmenedzsment eszközöket is kínál – mindezt egyetlen alkalmazásba integrálva. A GitLab alternatívája a GitHub-nak és Bitbucketnek, de különösen kiemelkedik abban, hogy a teljes fejlesztési életciklust lefedi.
1. Mi az a GitLab?
A GitLab egy webes felület, amely:
- Git repository-kat kezel
- Lehetővé teszi a kód együttműködésen alapuló fejlesztését (pull/merge request)
- CI/CD pipeline-okat futtat automatikusan
- Hibákat, feladatokat, és kiadásokat (release) követ
- Projektmenedzsment funkciókat is biztosít (boardok, milestone-ok)
- Saját gépre is telepíthető (önhostolt)
GitLab lehet:
- GitLab.com – felhőalapú szolgáltatás
- Self-hosted GitLab CE/EE – saját szerveren futó nyílt forráskódú vagy enterprise változat
2. Fő jellemzők
| Funkció | Leírás |
|---|---|
| Git repository | Verziókövetés, ágak kezelése |
| Merge Request | Kódösszeolvasztási kérelmek, code review |
| GitLab CI/CD | Automatikus build/test/deploy |
| Issue tracking | Hibák, feladatok, fejlesztési kérések |
| Wiki és dokumentáció | Projektdokumentáció Markdown formában |
| Milestone-ok | Kiadások ütemezése |
| Kanban board | Agilis munkamenet támogatás |
| Container Registry | Docker image-ek tárolása |
| Auto DevOps | Automatikus pipeline generálás |
| Integrációk | Slack, JIRA, Kubernetes, Prometheus stb. |
3. GitLab vs GitHub vs Bitbucket
| Tulajdonság | GitLab | GitHub | Bitbucket |
|---|---|---|---|
| Verziókezelés | Git | Git | Git |
| CI/CD | Beépített, fejlett | GitHub Actions | Bitbucket Pipelines |
| Self-hosting | Igen (CE/EE) | Csak Enterprise | Igen |
| Projektmenedzsment | Kanban, milestones | Issues, Projects | Jira integráció |
| Ár (privát repo) | Ingyenes | Ingyenes | Ingyenes |
4. GitLab CI/CD
A GitLab beépített CI/CD (Continuous Integration / Continuous Deployment) rendszert biztosít. A .gitlab-ci.yml fájl határozza meg a pipeline-t.
Példa .gitlab-ci.yml:
stages:
- build
- test
build-job:
stage: build
script:
- echo "Fordítás..."
- make
test-job:
stage: test
script:
- echo "Tesztelés..."
- make test
A pipeline automatikusan lefut minden push, merge request vagy tag létrehozása után.
5. Merge Requests
A Merge Request (MR) a GitLab változata a GitHub Pull Requestnek. Egy ágat másikba való egyesítés előtt:
- Kódkülönbségek (diff) megtekinthetők
- Reviewerek véleményt mondhatnak
- Pipeline-eredmények láthatók
- Automatikus szabályok beállíthatók (pl. 2 jóváhagyás, sikeres build)
6. Issue Tracking
A GitLab saját issue-kezelőt tartalmaz:
- Feladatok, hibák, fejlesztési kérések rögzítése
- Címkék (labels), milestone-ok, assignees
- Kommentelési lehetőség
- Markdown támogatás
- Automatizált lezárás commit üzenetből:
Fixes #123
7. Agilis támogatás
A GitLab projektmenedzsment eszközként is használható:
- Boards: Kanban-táblák
- Milestones: Sprint vagy release csoportosítás
- Burndown chart: Haladás vizualizálása
- Epics: Nagyobb funkciók, több issue összefogása
8. Docker és Kubernetes integráció
- GitLab Container Registry: privát Docker image-ek tárolása
- Kubernetes integráció: automatikus deploy, monitoring, helm chartok
- Auto DevOps funkcióval: CI, deploy, tesztelés, monitoring egyetlen gombnyomásra
9. Telepítés (Self-Hosted GitLab)
GitLab CE/EE saját szerverre is telepíthető:
sudo apt update
sudo apt install curl openssh-server ca-certificates tzdata perl
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.sajatceg.hu" apt install gitlab-ee
Telepítés után webes felületen végezhető az admin beállítás.
10. Biztonság és jogosultság
- Projektalapú hozzáférés (Guest, Reporter, Developer, Maintainer, Owner)
- Branch protection (pl.
mainnem írható) - 2FA (kétfaktoros hitelesítés)
- Audit log (EE változatban)
- LDAP, SAML, GitHub auth támogatás
11. GitLab API
A GitLab gazdag REST és GraphQL API-t biztosít:
- Repozitórium kezelése
- Issue-k, Merge Requestek létrehozása
- Pipeline triggerelés
- Felhasználókezelés
- Automatizálható bármely backend vagy DevOps folyamatban
12. Ármodell (GitLab.com)
| Terv | Fő funkciók |
|---|---|
| Free | 400 CI perc/hó, 5 GB tárhely, alap funkciók |
| Premium | Fejlett CI/CD, project insights, SLA támogatás |
| Ultimate | Security scanning, compliance, epics, advanced audit |
A self-hosted változatnál a Community Edition (CE) teljesen ingyenes.
13. Használati példa
git clone https://gitlab.com/ceg/projekt.git
cd projekt
git checkout -b ujfeature
# módosítások
git add .
git commit -m "uj funkció"
git push -u origin ujfeature
# Létrehozás a GitLab UI-n keresztül: Merge Request
14. Mikor válaszd a GitLabot?
GitLab ideális, ha:
- Egyetlen eszközben szeretnél verziókezelést, CI/CD-t és hibakövetést
- Saját infrastruktúrán akarod futtatni (on-premise)
- Kubernetes vagy Docker-alapú deployt használsz
- Kisebb-nagyobb csapatban együtt dolgozol és fontos az integráció
15. Záró gondolat
A GitLab egy kiváló eszköz modern DevOps és agilis csapatok számára, ahol a kód, a hibák, a tesztek és a kiadások egy helyen kezelhetők. Legnagyobb előnye, hogy teljesen integrált platform, akár önállóan hostolva is – így a fejlesztés, tesztelés és üzemeltetés közötti határok elmosódnak.