GitLab’ın Temel Özellikleri
GitLab, geliştirme ve operasyon iş akışlarını sadeleştirmek isteyen geliştiriciler ve kuruluşlar için geniş bir özellik yelpazesi sunar. Platformun bazı kilit yeteneklerini inceleyelim.
GitLab depoları
GitLab depoları, Git tabanlı kaynak kodunu yönetmenin temelini oluşturur. Geliştiriciler, dallanma, commit geçmişleri ve birleştirme istekleri gibi temel sürüm kontrol özelliklerini destekleyen depolar oluşturabilir, klonlayabilir ve yönetebilir; bu da ekiplerin kod üzerinde iş birliği yapmasına yardımcı olur.

GitLab depolarına örnek | Kaynak: Bir GitLab Deposunu Yansıtma
CI/CD entegrasyonu
GitLab’ın öne çıkan özelliklerinden biri, yerleşik CI/CD boru hatlarıdır. Bu CI/CD boruhatları, bu görevleri otomatikleştirmek için boru hatlarını tanımlayan basit YAML yapılandırma dosyaları kullanarak kodun test edilmesi, derlenmesi ve dağıtılması süreçlerini otomatikleştirir.
Ayrıca GitLab’ın boru hatları esnektir ve Kubernetes ve Docker gibi popüler araçlarla entegre olur – bulut tabanlı ve şirket içi dağıtımların yönetimini kolaylaştırır.

CI/CD geliştirme iş akışınıza nerede oturur | Kaynak: GitLab CI/CD’ye Başlayın
GitLab Auto DevOps
Auto DevOps, uygulamaları derlemek, test etmek ve dağıtmak için önceden yapılandırılmış şablonlar sunarak CI/CD sürecini basitleştirir. Esasen, geliştiriciler minimum kurulumla görevleri otomatikleştirebilir.
Hata takibi ve proje yönetimi
GitLab, proje yönetiminde de başarılıdır; çevik iş akışlarını desteklemek için iş panoları, kilometre taşları, etiketler ve burndown grafikleri gibi araçlar sunar. Bu özellikler, fikirden dağıtıma kadar konuların ilerlemesini izlemeye olanak tanır ve böylece projenin sağlığı ve zaman çizelgesi hakkında kapsamlı bir görünüm sağlar.

Bir GitLab Issue Board örneği | Kaynak: GitLab Issue Board’larını Kullanmanın 4 Yolu
GitLab Pages
Statik web sitelerini barındırmak için hızlı ve kolay bir çözüme ihtiyaç duyan geliştiriciler için GitLab Pages tam da bunu sunar. Dokümantasyon, portföy siteleri veya diğer statik web içeriklerini doğrudan GitLab deponuzdan dağıtabilirsiniz.

GitLab Pages’i öğrenmek için kaynaklar | Kaynak: GitLab Pages ile Başlarken
GitLab Kullanmanın Avantajları
Peki, GitLab’ı geliştirme ekipleri için cazip kılan nedir? Hemen bakalım!
Hepsi bir arada platform
GitLab’ın başlıca faydalarından biri entegre yapısıdır. Yazılım projelerinizde sürüm kontrolü, CI/CD, proje yönetimi ve izleme için birden fazla araç arasında geçiş yapmanız gerekmez – her şey tek ve uyumlu bir platformda birleşir.
İş birliği ve ekip yönetimi
GitLab, özünde iş birliği düşünülerek tasarlanmıştır. Yazılım geliştirme süreci boyunca kesintisiz iletişim ve ekip çalışmasını kolaylaştırmayı amaçlar. En başından beri, iş birliğini sadeleştiren ve potansiyel darboğazları en aza indiren araçlar sunarak geliştiricilerin ve ekiplerin daha etkili birlikte çalışmalarını hedeflemiştir.
Ölçeklenebilirlik ve esneklik
GitLab, bir yan projede çalışan küçük bir geliştirme grubu da olsanız büyük bir kurumsal yapı da olsanız ekibinizle birlikte ölçeklenecek şekilde tasarlanmıştır. Platform, bulut tabanlı ve kendi kendine barındırılan dağıtımları destekler; bu da ekiplerin GitLab’ı kendi güvenlik ve performans ihtiyaçlarına göre uyarlayabileceği anlamına gelir.
Güvenlik ve uyumluluk
Statik ve dinamik kod analizi, konteyner taraması ve zafiyet yönetimi gibi özellikler, GitLab kullanıcılarının uygulamalarını en baştan güvenli hâle getirmelerine yardımcı olur. Ayrıca GitLab, güvenliği sonradan düşünülen bir unsur değil, geliştirme sürecinin önemli bir parçası yapmak için DevOps en iyi uygulamalarını ekosistemine entegre eder.
GitLab vs GitHub vs Bitbucket
GitLab’a alternatif çözümler arasında GitHub ve Bitbucket bulunur. Hangisini kullanmalısınız? Tipik bir geliştirici yanıtı vereyim: “Duruma bağlı.” SDLC yönetim aracınızdan hangi gereksinimleri beklediğinizi değerlendirmek çok önemlidir. Öyleyse, GitLab rakiplerine karşı nasıl konumlanıyor, bakalım.
GitLab ve GitHub
GitHub, popüler bir dağıtık sürüm kontrol sistemi olan Git üzerine kurulu, sürüm kontrolü ve iş birliği için web tabanlı bir platformdur. 2008’de Tom Preston-Werner, Chris Wanstrath ve PJ Hyett tarafından oluşturulan GitHub’ın temel amacı, geliştiricilerin projelerde daha verimli iş birliği yapmasına yardımcı olmak için Git’e kullanıcı dostu bir arayüz sağlamaktı.
Başlangıçta açık kaynak topluluğu içinde popüler olan GitHub, hem herkese açık hem de özel depoları barındırmak için başvurulan platform hâline geldi. Milyonlarca geliştirici, kod tabanlarını dünya genelinde paylaşmak ve katkıda bulunmak için GitHub’ı kullanıyor.
Yaş olarak, GitHub 2008’de, GitLab’dan üç yıl önce piyasaya çıktı; GitLab ise 2011’de Dmitriy Zaporozhets ve Valery Sizov tarafından oluşturuldu. Popülerlik açısından GitHub, pazara erken girişi ve açık kaynak topluluğu tarafından geniş çapta benimsenmesi sayesinde geleneksel olarak daha büyük bir kullanıcı tabanına sahip olmuştur. GitHub’ın geniş herkese açık depo ekosistemi ve Linux, Node.js ve React gibi açık kaynak projelerdeki önemli rolü, popülaritesini daha da pekiştirmiştir.
GitLab, GitHub’a göre daha küçük bir kullanıcı tabanına sahip olsa da özellikle entegre bir geliştirme ve dağıtım çözümü arayan DevOps ekipleri ve işletmeler arasında önemli bir ivme kazanmıştır. GitLab, aynı ekosistemde CI/CD, proje yönetimi ve güvenlik özelliklerini içeren hepsi bir arada bir DevSecOps platformu sunmaya odaklanarak kendine bir niş yaratmıştır. Buna karşılık GitHub, benzer işlevselliğe ulaşmak için üçüncü taraf entegrasyonlarına dayanır; bu da projelerin karmaşıklığını artırabilir.
GitHub hakkında daha fazla bilgi edinmek isterseniz GitHub Foundations kursu ile başlamanızı öneririm.
GitLab ve Bitbucket
Bitbucket da web tabanlı bir sürüm kontrol depo barındırma hizmetidir; ancak başlangıçta Mercurial sürüm kontrol sistemini desteklemek üzere oluşturulmuş, daha sonra tamamen Git’e geçmiştir.
GitHub gibi Bitbucket da 2008’de Jesper Nøhr tarafından başlatıldı ve 2010’da Atlassian tarafından satın alındı. İlk aşamada, küçük ve büyük ekipler için iş birliğine dayalı bir ortam sağlamak üzere tasarlandı ve Jira ile Confluence gibi Atlassian araçlarıyla derin entegrasyon sundu. Bu nedenle, platform genellikle proje yönetimi ve konu takibi için Atlassian ekosistemine güvenen kuruluşlardaki geliştirme ekipleri tarafından kullanılır.
Bunun sonucunda, GitLab hepsi bir arada DevOps yetenekleri sayesinde daha geniş bir kullanıcı tabanı kazanmıştır. Bitbucket, öncelikle özel depolara ve kurumsal kullanıcılara odaklandığı için GitHub veya GitLab kadar halka dönük popülariteye sahip olmayabilir. Ve proje takibi için Jira ile iyi entegre olmasına rağmen, Bitbucket yazılım geliştirme yaşam döngüsünü otomatikleştirme konusunda GitLab’ın derinliğine sahip değildir.
GitLab vs GitHub vs Bitbucket: Karşılaştırma genel bakış
|
Kriter |
GitLab |
GitHub |
Bitbucket |
|
Çıkış yılı |
2011 |
2008 |
2008 |
|
Kurucular |
Dmitriy Zaporozhets, Valery Sizov |
Tom Preston-Werner, Chris Wanstrath, PJ Hyett |
Jesper Nøhr |
|
Ana şirket |
Bağımsız (özel) |
Microsoft (2018’de satın alındı) |
Atlassian (2010’da satın alındı) |
|
İlk amaç |
Git tabanlı depo ve entegre DevOps platformu |
Git deposu barındırma ve iş birliği |
Başlangıçta Mercurial’ı destekledi, daha sonra Git’e geçti |
|
Ana odak |
CI/CD, güvenlik ve proje yönetimi özellikleriyle hepsi bir arada DevSecOps platformu |
Git tabanlı projelerde iş birliği |
Jira ve Confluence gibi Atlassian araçlarıyla entegrasyon |
|
Birincil kullanıcılar |
DevOps ekipleri, işletmeler, geliştiriciler |
Açık kaynak topluluğu, geliştiriciler, işletmeler |
Atlassian ekosistemini kullanan ekipler, kurumsal kullanıcılar |
|
Popülerlik |
Özellikle DevOps ve kurumsal benimsemeyle artıyor |
Geniş kullanıcı tabanı, açık kaynakta popüler |
Halka açık depolarda daha düşük popülerlik; kurumsal ve özel kullanıma odaklı |
|
Depo desteği |
Git |
Git |
Git (2020’ye kadar başlangıçta Mercurial’ı destekledi) |
|
CI/CD entegrasyonu |
Yerleşik yerel CI/CD boru hatları |
GitHub Actions (daha sonra tanıtıldı) |
Yerleşik CI/CD boru hatları, ancak GitLab kadar kapsamlı değil |
|
Güvenlik özellikleri |
Statik ve dinamik kod analizi, zafiyet yönetimi, konteyner taraması |
GitHub Advanced Security ile sunulan güvenlik özellikleri |
GitLab’a kıyasla sınırlı güvenlik özellikleri |
|
Proje yönetimi |
Yerleşik araçlar (konular, kilometre taşları, burndown grafikleri, etiketler) |
GitHub Projects (üçüncü taraf entegrasyonlarla) |
Proje takibi için Jira ile güçlü entegrasyon |
|
Diğer araçlarla entegrasyon |
Slack, Jira, Docker, Kubernetes ve diğer araçlarla entegre olur |
Üçüncü taraf araçlarla güçlü entegrasyon |
Atlassian araçlarıyla (Jira, Confluence) derin entegrasyon |
|
Kendi kendine barındırma seçeneği |
Evet (GitLab Self-Managed) |
Evet (GitHub Enterprise) |
Evet (Bitbucket Data Center) |
|
En uygun kullanım |
Hepsi bir arada çözüm arayan işletmeler ve DevOps ekipleri |
Açık kaynak projeleri ve genel Git iş birliği |
Proje yönetimi için Atlassian araçlarını kullanan kurumsal ekipler |
|
Güçlü yönler |
Hepsi bir arada platform (sürüm kontrolü, CI/CD, güvenlik, proje yönetimi) |
Geniş açık kaynak topluluğu, güçlü geliştirici iş birliği |
Atlassian entegrasyonu, kurumsal iş akışları için uygun |
|
Zayıf yönler |
GitHub’a kıyasla açık kaynak projeler için biraz daha küçük topluluk |
Tam DevOps yaşam döngüsü için üçüncü taraf araçlara güçlü bağımlılık |
Halka dönük daha az depo, GitLab’a göre daha az DevOps özelliği |
GitLab ile Nasıl Başlanır
GitLab’ı keşfetmek isteyenler için platform, doğrudan bir başlangıç süreci sunar. İşte nasıl başlayacağınız.
Bir GitLab hesabı oluşturma
Başlamak için kayıt olun ve ücretsiz bir GitLab hesabı edinin.

Kayıt olduktan sonra:
- Kimlik doğrulama için SSH anahtarlarını ayarlayın (güvenli Git işlemleri için önerilir).
- Şuraya giderek ilk deponuzu oluşturun: New Project → Create Blank Project.
- Deponuzu şu komutla klonlayın:
git clone [email protected]:your-username/your-repo.git
Değişiklikleri eklemek ve commit etmek için Git’i kullanın:
git add .
git commit -m "Initial commit"
git push origin main
Projenizi yönetme
GitLab yalnızca sürüm kontrolü için değildir — yerleşik proje yönetimi araçları da sunar:
- Issues ve Panolar: Görevleri ve hataları GitLab Issues ile takip edin.
- Kilometre taşları: Çalışmaları sprintlere veya proje fazlarına ayırın.
- Birleştirme istekleri: Kod değişikliklerini birleştirmeden önce inceleyin ve üzerinde iş birliği yapın.
Bu özellikleri keşfetmekten çekinmeyin!
GitLab’ı CI/CD için kullanma
GitLab’da bir CI/CD boru hattı kurmanın ilk adımı, ` .gitlab-ci.yml' dosyası oluşturmaktır. İşte basit bir örnek:
stages:
- build
- test
- deploy
build-job:
stage: build
script:
- echo "Building the application..."
test-job:
stage: test
script:
- echo "Running tests..."
deploy-job:
stage: deploy
script:
- echo "Deploying to production..."
Bu dosya, boru hattının aşamalarını tanımlar ve kodun derlenmesini, test edilmesini ve dağıtımını otomatikleştirir. Bu boru hatlarını kendi geliştirme iş akışınıza uyacak şekilde yapılandırabilirsiniz.
Otomatik bir boru hattını tetiklemek için bu dosyayı commit edip itin.
GitLab Runners
Boru hatlarını çalıştırmak için GitLab, CI/CD işleri yürüten ajanlar olan GitLab Runner’ları kullanır.
Bunlar yerel altyapıda veya bulutta kurulabilir; böylece ekipler, geliştirme ve test ortamlarını istedikleri gibi yönetebilir.
- Paylaşılan Runner’lar: GitLab tarafından herkese açık projeler için sağlanır.
- Kendi barındırdığınız Runner’lar: Kendi sunucularınıza veya bulut örneklerinize kurulur.
Kendi barındırdığınız bir runner kaydetmek için:
gitlab-runner register

Barındırılan runner’ların mimarisi | Kaynak: GitLab tarafından barındırılan Runner’lar
Güvenlik ve erişim kontrolü
GitLab’da uygun güvenlik ve erişim kontrolünü sağlamak; kodunuzu korumak, iş birliğini yönetmek ve güvenli geliştirme için en iyi uygulamaları uygulamak açısından kritik öneme sahiptir.
- Ekip üyelerini şuradan ekleyin: Settings > Members.
- Depo izinlerini ayarlayın (Guest, Reporter, Developer, Maintainer, Owner).
- Static Application Security Testing (SAST) gibi GitLab’ın güvenlik özelliklerini kullanın.
GitLab Pages ile statik web sitesi dağıtma
GitLab Pages, statik web sitelerini ücretsiz olarak dağıtmanıza olanak tanır. Kurulum için:
public/klasörü ve birindex.htmldosyası oluşturun.- Bir
.gitlab-ci.ymldosyası ekleyin:
pages:
stage: deploy
script:
- mkdir -p public
- echo "Hello, GitLab Pages!" > public/index.html
artifacts:
paths:
- public
- Değişiklikleri itin; web siteniz şu adreste yayında olacaktır:
https://yourusername.gitlab.io/repository-name.
Sonuç
GitLab, tüm yazılım geliştirme sürecini yönetmek için güçlü, hepsi bir arada bir çözümdür. Yani, modern geliştirme ve DevOps uygulamalarını destekleyen kapsamlı bir platformdur. Bu yazıda, GitLab’ın temel özelliklerini, avantajlarını, rakiplerinden farklarını ve nasıl başlanacağını ele aldık.
Git’te yeniyseniz veya becerilerinizi geliştirmek istiyorsanız şu kurslara göz atın:
- Introduction to Git – Sürüm kontrolü, dallanma ve birleştirme dahil Git’in temellerini öğrenin.
- Intermediate Git – Rebase, birleştirme çakışmalarını çözme ve etkileşimli rebase gibi ileri kavramlarla Git becerilerinizi bir üst seviyeye taşıyın.
Git ve GitLab’ı öğrenerek modern geliştirme ortamlarında verimli çalışmak için donanımlı olacaksınız!
FAQs
GitLab ücretsiz kullanılabilir mi?
Evet! GitLab, depolar, CI/CD ve konu takibi gibi temel DevOps özelliklerini içeren ücretsiz bir katman sunar. Gelişmiş güvenlik, uyumluluk ve kurumsal özelliklere sahip ücretli planlar da vardır.
GitLab kendi kendine barındırılabilir mi?
Evet! GitLab, kuruluşların güvenlik ve veriler üzerinde daha fazla kontrol için GitLab’ı kendi altyapılarında çalıştırmalarına olanak tanıyan kendi kendine barındırılan bir sürüm (GitLab Community Edition) sağlar.
GitLab hangi programlama dillerini destekler?
GitLab, esasen bir Git deposu ve CI/CD platformu olduğundan tüm programlama dillerini destekler. Python, Java, JavaScript, Go, C++ ve daha fazlası için CI/CD boru hatları çalıştırabilir.
GitLab ne kadar güvenli?
GitLab, geliştiricilerin güvenlik açıklarını geliştirme sürecinin erken aşamalarında bulmalarına yardımcı olmak için Statik Uygulama Güvenlik Testi (SAST), Bağımlılık Taraması, Konteyner Taraması ve Gizli Bilgi Tespiti gibi güvenlik özelliklerini içerir.
GitLab’ı kişisel projelerim için kullanabilir miyim?
Kesinlikle! GitLab, ücretsiz planda bile sınırsız özel depo, yerleşik CI/CD ve konu takibi sunarak kişisel projeler için harikadır.
GitLab üçüncü taraf araçlarla entegre olur mu?
Evet! GitLab, geliştirme iş akışınızı iyileştirmek için Jira, Slack, Kubernetes, AWS, Google Cloud, Terraform ve daha birçoğuyla entegrasyonları destekler.
GitLab yedeklemeleri nasıl ele alır?
GitLab, kendi kendine barındırılan örnekler için zamanlanmış yedeklemeler, replikasyon ve veri güvenliği için bulut depolama desteği dahil yedekleme ve felaket kurtarma seçenekleri sağlar.
Projelerimi GitHub veya Bitbucket’tan GitLab’a taşıyabilir miyim?
Evet! GitLab, kullanıcıların GitHub, Bitbucket ve diğer platformlardan depoları, konuları ve birleştirme isteklerini sorunsuz bir şekilde taşımalarına olanak tanıyan içe aktarma araçları sağlar.


Projelerinizi nasıl yönettiğiniz, verimliliği korumada ve yüksek kaliteli yazılım çözümleri sunmada kritik bir rol oynar.
Bir geliştirici ekibinin bir uygulama üzerinde çalıştığını, her gün kod güncellemeleri yaptığını; ancak değişiklikleri izlemediğini, sürümleri yönetmediğini ya da test ve dağıtım süreçlerini yürütmediğini hayal edin. Bir şeylerin ters gitmesi kaçınılmaz!
Neyse ki bu kurgusal senaryo günümüzde pek olası değil (umarım), çünkü bu blog yazısında ele alacağımız GitLab gibi araçlar var.
Şunları ele alacağız:
Hadi başlayalım!
GitLab nedir?
GitLab, yazılım geliştirme ve DevOps için tasarlanmış hepsi bir arada bir platformdur. İlk başta, ekiplerin kod üzerinde iş birliği yapmasını sağlayan web tabanlı bir Git depo yöneticisiydi. Ancak o zamandan beri, tüm yazılım geliştirme yaşam döngüsünü (SDLC) yönetmek için tamamen entegre bir çözüme dönüştü.
Özetle, GitLab geliştiricilere şunları sağlar:
Bu yetenekler tek bir arayüzde sunulur ve GitLab’ı geliştirme süreçlerini sadeleştirmek için popüler bir seçenek haline getirir.