GitHub Entegrasyonu
GitHub entegrasyonu, GitHub depolarınızı SetGet projelerine bağlar. Bağlantı kurulduktan sonra sorunlar, pull request'ler, yorumlar, etiketler ve durumlar iki platform arasında çift yönlü senkronize edilir. Geliştirme ekibiniz GitHub'da çalışırken proje yöneticileri, tasarımcılar ve paydaşlar SetGet'te çalışır — her iki taraf da aynı verileri görür.
Neler elde edersiniz
- Çift yönlü sorun senkronizasyonu — GitHub'da bir sorun oluşturun ve SetGet'te bir iş öğesi olarak görünsün; SetGet'te bir iş öğesi oluşturun ve GitHub'da bir sorun olarak görünsün.
- Pull request bağlama — PR başlığında veya gövdesinde bir SetGet iş öğesi tanımlayıcısına başvurun; PR otomatik olarak o iş öğesine bağlanır.
- Yorum senkronizasyonu — GitHub sorununa yapılan yorumlar, bağlantılı SetGet iş öğesinde görünür; tersi de geçerlidir.
- Etiket senkronizasyonu — GitHub'da uygulanan etiketler SetGet'e yayılır; SetGet'te uygulanan etiketler GitHub'a yayılır.
- Durum eşlemesi — GitHub sorun durumlarının (açık/kapalı) SetGet iş akışı durumlarıyla (Beklemede, Devam Ediyor, Tamamlandı vb.) nasıl eşleşeceğini tanımlayın.
Önkoşullar
Başlamadan önce şunları sağlayın:
- Bağlamak istediğiniz depolara ait organizasyonda yönetici erişimine sahip bir GitHub hesabınız olmalıdır.
- SetGet çalışma alanınızda Yönetici veya Sahip rolüne sahip olmalısınız.
- Bağlamak istediğiniz depolar arşivlenmemiş olmalıdır.
Kurulum adımları
Adım 1 -- GitHub organizasyonunuzu bağlayın
- SetGet'te Ayarlar > Entegrasyonlar bölümüne gidin.
- GitHub kartını bulun ve Bağlan'a tıklayın.
- SetGet sizi GitHub'ın OAuth yetkilendirme sayfasına yönlendirir.
- Bağlamak istediğiniz GitHub organizasyonunu seçin.
- Tüm depolara mı yoksa seçili depolara mı erişim vereceğinizi seçin.
- Yetkilendir'e tıklayın.
- SetGet'e geri yönlendirilirsiniz. GitHub kartı artık organizasyon adınızla birlikte yeşil "Bağlandı" rozeti gösterir.
İPUCU
Organizasyonunuz OAuth uygulamaları için yönetici onayı gerektiriyorsa, bağlantı tamamlanmadan önce bir organizasyon sahibinin GitHub'ın "Üçüncü taraf erişimi" ayarlarından SetGet uygulamasını onaylaması gerekebilir.
Adım 2 -- Depoyu bir projeye bağlayın
- Bağlamak istediğiniz SetGet projesini açın.
- Proje Ayarları > Entegrasyonlar > GitHub bölümüne gidin.
- Depo Bağla'ya tıklayın.
- Açılır listeden depoyu seçin. Yalnızca bağlı hesabın erişebildiği depolar gösterilir.
- Kaydet'e tıklayın.
Aynı projeye birden fazla depo bağlayabilir ya da bir depoyu birden fazla projeye bağlayabilirsiniz.
Adım 3 -- Durum eşlemesini yapılandırın
Durum eşlemesi, GitHub sorun durumlarının SetGet iş akışı durumlarına nasıl çevrileceğini ve tersini tanımlar.
| GitHub durumu | Varsayılan SetGet durumu | Değiştirilebilir |
|---|---|---|
open | Beklemede | Evet |
closed | Tamamlandı | Evet |
closed as not planned | İptal Edildi | Evet |
Özelleştirmek için:
- Depo bağlantı ayarlarında Durum Eşlemesi'ni genişletin.
- Her GitHub durumu için açılır listeden karşılık gelen SetGet durumunu seçin.
- Eşlemeyi Kaydet'e tıklayın.
UYARI
Durum eşlemelerini değiştirmek yalnızca gelecekteki senkronizasyonları etkiler. Mevcut iş öğeleri geriye dönük olarak güncellenmez.
Adım 4 -- Etiket senkronizasyonunu yapılandırın
Varsayılan olarak tüm etiketler çift yönlü senkronize edilir. Bu davranışı ayarlayabilirsiniz:
| Mod | Davranış |
|---|---|
| Çift yönlü (varsayılan) | Etiketler her iki yönde senkronize edilir. Herhangi bir tarafta etiket oluşturmak diğer tarafta da oluşturur. |
| Yalnızca GitHub'dan SetGet'e | Etiketler GitHub'dan içe aktarılır ancak SetGet'teki değişiklikler geri gönderilmez. |
| Yalnızca SetGet'ten GitHub'a | Etiketler GitHub'a gönderilir ancak GitHub'daki değişiklikler çekilmez. |
| Devre dışı | Etiket senkronizasyonu yok. Etiketler her iki tarafta bağımsız olarak yönetilir. |
Adım 5 -- Yorum senkronizasyonunu etkinleştirin
Bir depo bağladığınızda yorum senkronizasyonu varsayılan olarak etkindir. Devre dışı bırakmak için:
- Depo bağlantı ayarlarında Yorumları Senkronize Et'i kapatın.
- Kaydet'e tıklayın.
Etkinleştirildiğinde yorumlar, orijinal yazar ve platformu gösteren bir atıf satırı içerir.
Çift yönlü sorun senkronizasyonu
Nasıl çalışır
Bağlı bir GitHub deposunda yeni bir sorun oluşturulduğunda:
- SetGet, GitHub'dan bir webhook olayı alır.
- Bağlı SetGet projesinde yeni bir iş öğesi oluşturulur.
- İş öğesinin başlığı, açıklaması, etiketleri ve atanan kişisi GitHub sorunundaki bilgilerle doldurulur.
- İş öğesi durumu, durum eşlemesine göre ayarlanır.
- GitHub sorunu ile SetGet iş öğesi arasındaki bağlantı kaydedilir.
GitHub senkronizasyonu etkinleştirilmiş durumdayken SetGet'te yeni bir iş öğesi oluşturulduğunda:
- SetGet, bağlı GitHub deposunda karşılık gelen bir sorun oluşturur.
- Sorunun başlığı, açıklaması ve etiketleri iş öğesinden doldurulur.
- Sorun durumu, ters durum eşlemesine göre ayarlanır.
- İkisi arasındaki bağlantı kaydedilir.
Neler senkronize olur
| Alan | GitHub'dan SetGet'e | SetGet'ten GitHub'a |
|---|---|---|
| Başlık | Evet | Evet |
| Açıklama / Gövde | Evet | Evet |
| Durum (açık/kapalı) | Evet (eşleme ile) | Evet (eşleme ile) |
| Etiketler | Evet (etkinse) | Evet (etkinse) |
| Atanan kişiler | Evet (e-posta ile) | Evet (e-posta ile) |
| Yorumlar | Evet (etkinse) | Evet (etkinse) |
| Kilometre taşları | Hayır | Hayır |
| Tepkiler | Hayır | Hayır |
Atanan eşleştirme
Atanan kişiler e-posta adresiyle eşleştirilir. Bir GitHub kullanıcısının e-postası bir SetGet çalışma alanı üyesinin e-postasıyla örtüşüyorsa atanan kişi otomatik olarak eşlenir. Eşleşme bulunamazsa atanan alan boş bırakılır ve iş öğesi etkinlik günlüğüne bir not eklenir.
Pull request bağlama
Bir SetGet iş öğesi tanımlayıcısını pull request başlığında, gövdesinde veya dal adında herhangi bir yerde kullanarak otomatik olarak bağlayın.
Desteklenen formatlar
| Format | Örnek |
|---|---|
| Proje öneki + numara | PROJ-123 |
| Tam URL | https://app.setget.io/workspace/project/work-items/PROJ-123 |
Bir PR bağlandığında:
- İş öğesinin Bağlantılar bölümü, PR'ı başlığı, durumu (açık, birleştirildi, kapatıldı) ve GitHub'a doğrudan bağlantıyla gösterir.
- PR'ın birleştirilmesi, iş öğesini yapılandırılmış bir duruma (örn. "Tamamlandı") geçirebilir.
Birleştirmede otomatik geçiş
Bağlı bir PR birleştirildiğinde iş öğesini otomatik olarak taşımak için:
- Depo bağlantı ayarlarında Birleştirmede Otomatik Geçiş'i etkinleştirin.
- Hedef durumu seçin (örn. "Tamamlandı" veya "İncelemede").
- Kaydet'e tıklayın.
Webhook olayları
GitHub entegrasyonu, GitHub'dan şu webhook olaylarını kullanır:
| Olay | Amaç |
|---|---|
issues | Sorun oluşturma, güncelleme, durum değişikliklerini senkronize et |
issue_comment | Yorumları senkronize et |
pull_request | PR'ları bağla, birleştirmeleri algıla |
label | Etiket oluşturma, güncelleme, silme işlemlerini senkronize et |
SetGet, GitHub deposundaki webhook yapılandırmasını otomatik olarak yönetir. Webhook'ları manuel olarak oluşturmanız gerekmez.
Entegrasyonu yönetme
Senkronizasyon durumunu görüntüleyin
Şunları görmek için Proje Ayarları > Entegrasyonlar > GitHub bölümüne gidin:
- Son senkronizasyon zaman damgası
- Bağlantılı iş öğesi sayısı
- Son senkronizasyon hataları (varsa)
Senkronizasyonu duraklatın
Bağlantıyı kesmeden senkronizasyonu duraklatabilirsiniz:
- Depo bağlantı ayarlarında Senkronizasyonu Duraklat'ı açın.
- Duraklatıldığında yeni olaylar işlenmez. Duraklatma sırasında gerçekleşen olaylar, senkronizasyona devam edildiğinde geriye dönük olarak senkronize edilmez.
Depo bağlantısını kaldırın
- Proje Ayarları > Entegrasyonlar > GitHub bölümüne gidin.
- Deponun yanındaki Bağlantıyı Kaldır düğmesine tıklayın.
- İşlemi onaylayın.
Bağlantı kaldırıldığında o depo için tüm senkronizasyon durur. Mevcut iş öğeleri ve GitHub sorunları silinmez.
GitHub bağlantısını kesin
GitHub entegrasyonunu tamamen kaldırmak için:
- Ayarlar > Entegrasyonlar > GitHub bölümüne gidin.
- Bağlantıyı Kes'e tıklayın.
- İşlemi onaylayın.
Bu işlem OAuth token'ını iptal eder ve tüm depo bağlantılarını kaldırır. Mevcut veriler korunur.
Sorun giderme
| Sorun | Neden | Çözüm |
|---|---|---|
| Açılır listede depo görünmüyor | OAuth kapsamı çok dar | Yeniden bağlanın ve istenen depolara erişim izni verin |
| Sorunlar senkronize edilmiyor | GitHub'da webhook silindi | Entegrasyonun bağlantısını kesip yeniden bağlayın |
| Atanan kişiler eşlenmiyor | E-posta uyuşmazlığı | GitHub ve SetGet hesaplarının aynı e-postayı kullandığından emin olun |
| Yorumlar "SetGet Bot" olarak görünüyor | Beklenen davranış | Senkronize yorumlar entegrasyon uygulaması tarafından gönderilir |
| Durum eşlemesi yanlış görünüyor | Özel eşleme gerekli | Durum eşleme tablosunu gözden geçirin ve güncelleyin |
| PR bağlantıları algılanmıyor | Yanlış tanımlayıcı formatı | PR başlığında veya gövdesinde PROJ-123 formatını kullanın |
| OAuth onayı beklemede | Kuruluş yönetici onayı gerektiriyor | Bir kuruluş sahibinden GitHub'da SetGet uygulamasını onaylamasını isteyin |
İPUCU
Yeniden yetkilendirdikten sonra senkronizasyon sorunları devam ediyorsa, GitHub'ın Depo > Ayarlar > Webhook'lar > Son Teslimatlar bölümündeki webhook teslimat günlüğünü kontrol ederek GitHub'ın olayları başarıyla gönderip göndermediğini doğrulayın.
Güvenlik değerlendirmeleri
- OAuth token'ı SetGet arka ucunda şifreli olarak saklanır. Hiçbir zaman ön yüze gönderilmez.
- SetGet, gereken minimum OAuth kapsamlarını talep eder:
repo,read:orgvewrite:repo_hook. - GitHub'dan gelen webhook yükleri, işlenmeden önce HMAC-SHA256 imzaları kullanılarak doğrulanır.
- OAuth token'ını GitHub'ın Ayarlar > Uygulamalar > Yetkili OAuth Uygulamaları bölümünden istediğiniz zaman iptal edebilirsiniz.