Skip to content

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

  1. SetGet'te Ayarlar > Entegrasyonlar bölümüne gidin.
  2. GitHub kartını bulun ve Bağlan'a tıklayın.
  3. SetGet sizi GitHub'ın OAuth yetkilendirme sayfasına yönlendirir.
  4. Bağlamak istediğiniz GitHub organizasyonunu seçin.
  5. Tüm depolara mı yoksa seçili depolara mı erişim vereceğinizi seçin.
  6. Yetkilendir'e tıklayın.
  7. 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

  1. Bağlamak istediğiniz SetGet projesini açın.
  2. Proje Ayarları > Entegrasyonlar > GitHub bölümüne gidin.
  3. Depo Bağla'ya tıklayın.
  4. Açılır listeden depoyu seçin. Yalnızca bağlı hesabın erişebildiği depolar gösterilir.
  5. 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 durumuVarsayılan SetGet durumuDeğiştirilebilir
openBeklemedeEvet
closedTamamlandıEvet
closed as not plannedİptal EdildiEvet

Özelleştirmek için:

  1. Depo bağlantı ayarlarında Durum Eşlemesi'ni genişletin.
  2. Her GitHub durumu için açılır listeden karşılık gelen SetGet durumunu seçin.
  3. 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:

ModDavranış
Ç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'eEtiketler GitHub'dan içe aktarılır ancak SetGet'teki değişiklikler geri gönderilmez.
Yalnızca SetGet'ten GitHub'aEtiketler 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:

  1. Depo bağlantı ayarlarında Yorumları Senkronize Et'i kapatın.
  2. 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:

  1. SetGet, GitHub'dan bir webhook olayı alır.
  2. Bağlı SetGet projesinde yeni bir iş öğesi oluşturulur.
  3. İş öğesinin başlığı, açıklaması, etiketleri ve atanan kişisi GitHub sorunundaki bilgilerle doldurulur.
  4. İş öğesi durumu, durum eşlemesine göre ayarlanır.
  5. 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:

  1. SetGet, bağlı GitHub deposunda karşılık gelen bir sorun oluşturur.
  2. Sorunun başlığı, açıklaması ve etiketleri iş öğesinden doldurulur.
  3. Sorun durumu, ters durum eşlemesine göre ayarlanır.
  4. İkisi arasındaki bağlantı kaydedilir.

Neler senkronize olur

AlanGitHub'dan SetGet'eSetGet'ten GitHub'a
BaşlıkEvetEvet
Açıklama / GövdeEvetEvet
Durum (açık/kapalı)Evet (eşleme ile)Evet (eşleme ile)
EtiketlerEvet (etkinse)Evet (etkinse)
Atanan kişilerEvet (e-posta ile)Evet (e-posta ile)
YorumlarEvet (etkinse)Evet (etkinse)
Kilometre taşlarıHayırHayır
TepkilerHayırHayı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 + numaraPROJ-123
Tam URLhttps://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:

  1. Depo bağlantı ayarlarında Birleştirmede Otomatik Geçiş'i etkinleştirin.
  2. Hedef durumu seçin (örn. "Tamamlandı" veya "İncelemede").
  3. Kaydet'e tıklayın.

Webhook olayları

GitHub entegrasyonu, GitHub'dan şu webhook olaylarını kullanır:

OlayAmaç
issuesSorun oluşturma, güncelleme, durum değişikliklerini senkronize et
issue_commentYorumları senkronize et
pull_requestPR'ları bağla, birleştirmeleri algıla
labelEtiket 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:

  1. Depo bağlantı ayarlarında Senkronizasyonu Duraklat'ı açın.
  2. 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

  1. Proje Ayarları > Entegrasyonlar > GitHub bölümüne gidin.
  2. Deponun yanındaki Bağlantıyı Kaldır düğmesine tıklayın.
  3. İş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:

  1. Ayarlar > Entegrasyonlar > GitHub bölümüne gidin.
  2. Bağlantıyı Kes'e tıklayın.
  3. İş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

SorunNedenÇözüm
Açılır listede depo görünmüyorOAuth kapsamı çok darYeniden bağlanın ve istenen depolara erişim izni verin
Sorunlar senkronize edilmiyorGitHub'da webhook silindiEntegrasyonun bağlantısını kesip yeniden bağlayın
Atanan kişiler eşlenmiyorE-posta uyuşmazlığıGitHub ve SetGet hesaplarının aynı e-postayı kullandığından emin olun
Yorumlar "SetGet Bot" olarak görünüyorBeklenen davranışSenkronize yorumlar entegrasyon uygulaması tarafından gönderilir
Durum eşlemesi yanlış görünüyorÖzel eşleme gerekliDurum eşleme tablosunu gözden geçirin ve güncelleyin
PR bağlantıları algılanmıyorYanlış tanımlayıcı formatıPR başlığında veya gövdesinde PROJ-123 formatını kullanın
OAuth onayı beklemedeKuruluş yönetici onayı gerektiriyorBir 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:org ve write: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.

İlgili sayfalar