GitLab Entegrasyonu
GitLab entegrasyonu, GitLab gruplarınızı ve projelerinizi SetGet'e bağlar. Sorunlar, merge request'ler, yorumlar, etiketler ve durumlar çift yönlü senkronize edilir; GitLab'daki mühendislik iş akışınızı SetGet'teki proje yönetimiyle hizalı tutar.
Yetenekler
| Özellik | Açıklama |
|---|---|
| Çift yönlü sorun senkronizasyonu | GitLab'da oluşturulan sorunlar SetGet'te iş öğesi olarak görünür ve tersi de geçerlidir |
| Merge request bağlama | Bağlamak için bir MR'da SetGet tanımlayıcısına başvurun |
| Yorum senkronizasyonu | GitLab sorunlarındaki yorumlar SetGet iş öğelerine yayılır |
| Etiket senkronizasyonu | Etiketler her iki platformda da tutarlı kalır |
| Durum eşleştirme | GitLab sorun durumlarını SetGet iş akışı durumlarıyla eşleştirin |
Önkoşullar
- Bağlamak istediğiniz projelere en az Maintainer erişimine sahip bir GitLab hesabı.
- SetGet çalışma alanınızda Yönetici veya Sahip rolü.
- GitLab projelerinin arşivlenmemiş olması gerekir.
Kurulum adımları
Adım 1 -- GitLab erişimini yetkilendirin
- SetGet'te Ayarlar > Entegrasyonlar'a gidin.
- GitLab kartını bulun ve Bağlan'a tıklayın.
- SetGet sizi GitLab'ın OAuth yetkilendirme sayfasına yönlendirir.
- İstenen izinleri inceleyin ve Yetkilendir'e tıklayın.
- SetGet'e geri yönlendirilirsiniz. GitLab kartında yeşil bir "Bağlandı" rozeti görünür.
İPUCU
Kendi yönettiğiniz GitLab örnekleri için, yetkilendirmeden önce entegrasyon ayarlarında GitLab örnek URL'sini yapılandırmanız gerekebilir. İstendiğinde GitLab örnek URL'nizi girin (örneğin, https://gitlab.sirketiniz.com).
Adım 2 -- Link a repository to a project
- Bağlamak istediğiniz SetGet projesini açın.
- Proje Ayarları > Entegrasyonlar > GitLab'a gidin.
- Depo Bağla'ya tıklayın.
- Bir GitLab grubu seçin, ardından belirli proje/depoyu seçin.
- Kaydet'e tıklayın.
Aynı SetGet projesine birden fazla GitLab projesi bağlayabilirsiniz.
Adım 3 -- Configure state mapping
GitLab sorunlarının iki durumu vardır: opened ve closed. Bunları SetGet iş akışı durumlarıyla eşleştirin.
| GitLab durumu | Varsayılan SetGet durumu | Değiştirilebilir |
|---|---|---|
opened | Backlog | Evet |
closed | Done | Evet |
Özelleştirmek için:
- Depo bağlantı ayarlarında Durum Eşleştirme'yi genişletin.
- Her GitLab durumu için istenen SetGet durumunu seçin.
- Eşleştirmeyi Kaydet'e tıklayın.
Adım 4 -- Configure label sync
Etiket senkronizasyon modları:
| Mod | Davranış |
|---|---|
| Çift yönlü (varsayılan) | Etiketler her iki yönde de senkronize edilir |
| Yalnızca GitLab'dan SetGet'e | Etiketler GitLab'dan içe aktarılır; SetGet değişiklikleri geri itilmez |
| Yalnızca SetGet'ten GitLab'a | Etiketler GitLab'a itilir; GitLab değişiklikleri çekilmez |
| Devre dışı | Etiket senkronizasyonu yok |
Modu, depo bağlantı ayarlarında Etiket Senkronizasyonu altında yapılandırın.
Adım 5 -- Enable comment sync
Yorum senkronizasyonu varsayılan olarak etkindir. Konuşmaları ayrı tutmayı tercih ediyorsanız depo bağlantı ayarlarından kapatın.
Çift yönlü sorun senkronizasyonu
Senkronizasyon akışı
Bağlı bir GitLab projesinde yeni bir sorun oluşturulduğunda:
- GitLab, SetGet'e bir webhook olayı gönderir.
- SetGet, bağlı projede bir iş öğesi oluşturur.
- Başlık, açıklama, etiketler ve atanan, GitLab sorunundaki değerlerle doldurulur.
- İş öğesi durumu, durum eşleştirmesine göre belirlenir.
SetGet'te yeni bir iş öğesi oluşturulduğunda (GitLab senkronizasyonu etkinken):
- SetGet, bağlı GitLab projesinde karşılık gelen bir sorun oluşturur.
- Başlık, açıklama ve etiketler, iş öğesindeki değerlerle doldurulur.
- Çift yönlü bir bağlantı saklanır.
Senkronize edilen alanlar
| Alan | GitLab'dan SetGet'e | SetGet'ten GitLab'a |
|---|---|---|
| Başlık | Evet | Evet |
| Açıklama | Evet | Evet |
| Durum (opened/closed) | Evet (eşleştirme ile) | Evet (eşleştirme ile) |
| Etiketler | Evet (etkinse) | Evet (etkinse) |
| Atananlar | Evet (e-postayla eşleştirilir) | Evet (e-postayla eşleştirilir) |
| Yorumlar | Evet (etkinse) | Evet (etkinse) |
| Ağırlık | Hayır | Hayır |
| Teslim tarihi | Evet | Evet |
| Kilometre taşları | Hayır | Hayır |
Atanan eşleştirme
Atananlar e-posta adresiyle eşleştirilir. Bir GitLab kullanıcısının e-postası bir SetGet çalışma alanı üyesinin e-postasıyla eşleşirse, atama otomatik olarak eşlenir. Eşleşmeyen atananlar, iş öğesi etkinlik günlüğünde not edilir.
Merge request bağlama
Bağlantı oluşturmak için bir MR başlığında, açıklamasında veya dal adında bir SetGet iş öğesi tanımlayıcısına başvurun.
Desteklenen formatlar
| Format | Örnek |
|---|---|
| Proje ön eki + numara | PROJ-123 |
| Tam URL | https://app.setget.io/workspace/project/work-items/PROJ-123 |
Bağlandığında:
- İş öğesinin Bağlantılar bölümü, MR'yi başlığı, durumu ve GitLab'a bağlantısıyla birlikte gösterir.
- MR'yi birleştirmek isteğe bağlı olarak iş öğesini otomatik geçirebilir.
Birleştirmede otomatik geçiş
- Depo bağlantı ayarlarında Birleştirmede otomatik geçiş'i etkinleştirin.
- Hedef durumu seçin.
- Kaydet'e tıklayın.
Webhook olayları
GitLab entegrasyonu aşağıdaki webhook olaylarını işler:
| Olay | Amaç |
|---|---|
Issue Hook | Sorun oluşturma, güncellemeler, durum değişikliklerini senkronize et |
Note Hook | Sorunlardaki yorumları senkronize et |
Merge Request Hook | MR'leri bağla, birleştirmeleri tespit et |
Tag Push Hook | İsteğe bağlı: sürümleri takip et |
SetGet webhook yapılandırmasını otomatik olarak yönetir.
Entegrasyonu yönetme
Senkronizasyon durumunu görüntüleme
Son senkronizasyon zaman damgasını, bağlı öğe sayısını ve son hataları görüntülemek için Proje Ayarları > Entegrasyonlar > GitLab'a gidin.
Senkronizasyonu duraklatma
Olay işlemeyi geçici olarak durdurmak için depo bağlantı ayarlarında Senkronizasyonu Duraklat'ı değiştirin. Duraklatma sırasındaki olaylar geriye dönük olarak senkronize edilmez.
Depo bağlantısını kaldırma
Entegrasyon ayarlarında deponun yanındaki Bağlantıyı Kaldır'a tıklayın. Bu senkronizasyonu durdurur ancak mevcut verileri korur.
GitLab bağlantısını kesme
Ayarlar > Entegrasyonlar > GitLab'a gidin ve OAuth belirtecini iptal etmek ve tüm depo bağlantılarını kaldırmak için Bağlantıyı Kes'e tıklayın.
Sorun giderme
| Sorun | Neden | Çözüm |
|---|---|---|
| Açılır listede proje görünmüyor | Yetersiz GitLab izinleri | Maintainer erişiminiz olduğundan emin olun |
| Sorunlar senkronize edilmiyor | Webhook yanlış yapılandırılmış | Bağlantıyı kesip yeniden bağlayın |
| Atananlar eşleştirilemiyor | E-posta uyuşmazlığı | Platformlar arasında e-postaları hizalayın |
| Kendi yönetilen GitLab bağlanamıyor | Örnek URL belirlenmemiş | Yetkilendirmeden önce GitLab URL'sini girin |
| MR bağlantıları algılanmıyor | Yanlış format | MR başlığında veya açıklamasında PROJ-123 kullanın |
UYARI
GitLab'ın IP izin listesini kullanıyorsanız, SetGet sunucu IP'sinin webhook olaylarını almasına izin verildiğinden emin olun.
Güvenlik
- OAuth belirteçleri beklemede şifrelenir ve yalnızca sunucu tarafında saklanır.
- Webhook yükleri, GitLab'ın gizli belirteç mekanizması kullanılarak doğrulanır.
- Gerekli minimum kapsamlar:
api,read_user. - GitLab'daki Kullanıcı Ayarları > Uygulamalar > Yetkilendirilmiş Uygulamalar'dan erişimi iptal edin.