Takip et

Çözüldü: GitLab Birleştirme İsteklerini Notion Veritabanına Senkronize Etme Rehberi

Çözüldü: GitLab Birleştirme İsteklerini Notion Veritabanına Senkronize Etme Rehberi Modern yazılım geliştirme süreçlerinde, ekiplerin verimli ç…

Çözüldü: GitLab Birleştirme İsteklerini Notion Veritabanına Senkronize Etme Rehberi

Modern yazılım geliştirme süreçlerinde, ekiplerin verimli çalışabilmesi için iş akışlarının sorunsuz ve şeffaf olması kritik öneme sahiptir. GitLab, kod yönetimi ve CI/CD süreçleri için güçlü bir platform sunarken, Notion ise esnek bir proje yönetimi ve bilgi depolama aracı olarak öne çıkar. Ancak, GitLab’deki birleştirme isteklerinin (Merge Requests – MR) durumunu ve detaylarını manuel olarak Notion’a taşımak, zaman alıcı ve hata yapmaya açık bir süreçtir. Bu makalede, GitLab birleştirme isteklerini otomatik olarak bir Notion veritabanına senkronize etmenin kapsamlı bir yolunu keşfedecek, böylece ekiplerin verimliliğini artırıp bilgi akışını merkezileştireceğiz.

Neden GitLab ve Notion Entegrasyonu Önemli?

GitLab ve Notion’ın entegrasyonu, geliştirme ve proje yönetimi ekipleri için birçok avantaj sunar. Bu entegrasyon, iş akışlarını daha düzenli, şeffaf ve verimli hale getirerek, ekiplerin daha odaklı çalışmasına olanak tanır.

Proje Yönetiminde Verimlilik Artışı

GitLab’deki birleştirme isteklerinin Notion’a senkronize edilmesi, proje yöneticilerinin ve ekip üyelerinin tüm görevleri, özellik geliştirmelerini ve hata düzeltmelerini tek bir merkezi yerden takip etmesini sağlar. Bu sayede, farklı platformlar arasında geçiş yapma ihtiyacı ortadan kalkar ve karar alma süreçleri hızlanır. Notion’ın esnek yapısı sayesinde, MR’ları projelere, sprintlere veya önceliklere göre kolayca filtreleyebilir ve organize edebilirsiniz. Bu, genel proje verimliliğini önemli ölçüde artırır.

Şeffaflık ve Takip Kolaylığı

Otomatik senkronizasyon sayesinde, birleştirme isteklerinin mevcut durumu (açık, birleştirildi, kapatıldı), atanan kişiler, ilgili projeler ve diğer önemli detaylar anında Notion veritabanına yansır. Bu durum, tüm paydaşların her an güncel bilgilere erişmesini sağlayarak proje şeffaflığını artırır. Geliştiriciler, test uzmanları ve ürün sahipleri, Notion üzerinden bir MR’ın yaşam döngüsünü kolayca takip edebilir, böylece iletişim eksiklikleri ve bilgi kopuklukları en aza indirilir.

Manuel İş Yükünü Azaltma

GitLab’den Notion’a manuel veri girişi, tekrarlayan ve hataya açık bir görevdir. Her yeni MR açıldığında veya durumu değiştiğinde bu bilgileri Notion’a elle girmek, geliştiricilerin ve proje yöneticilerinin değerli zamanını çalar. Otomatik senkronizasyon, bu manuel iş yükünü tamamen ortadan kaldırır. Ekipler, bu sayede daha stratejik görevlere odaklanabilir ve operasyonel verimliliklerini artırabilirler. Bu otomasyon, özellikle büyük ve dinamik ekipler için vazgeçilmez bir çözüm sunar.

Gerekli Araçlar ve Ön Hazırlıklar

Bu entegrasyonu başarılı bir şekilde kurmak için bazı temel araçlara ve ön bilgilere ihtiyacımız olacak. Doğru araçları seçmek ve gerekli izinleri ayarlamak, senkronizasyon sürecinin sorunsuz işlemesini sağlayacaktır.

GitLab API ve Webhook Bilgisi

GitLab, olay tabanlı bildirimler göndermek için webhook’ları kullanır. Bir birleştirme isteği açıldığında, güncellendiğinde veya kapatıldığında, GitLab belirli bir URL’ye HTTP POST isteği gönderir. Bu istek, MR ile ilgili tüm detayları içeren bir JSON yükü taşır. Entegrasyonumuzun temelini bu webhook’lar oluşturacaktır. GitLab API’si ise daha karmaşık senaryolar (örneğin, mevcut tüm MR’ları çekme) için kullanılabilir, ancak bu makalede daha çok webhook’lara odaklanacağız.

Notion API Entegrasyonları

Notion, veritabanlarına programatik olarak erişim sağlamak için güçlü bir API sunar. Bu API sayesinde, veritabanına yeni öğeler ekleyebilir, mevcut öğeleri güncelleyebilir veya silebiliriz. Entegrasyonumuz için Notion’da bir veritabanı oluşturacak ve bu veritabanına dışarıdan erişim sağlamak üzere bir “iç entegrasyon” oluşturup API anahtarı alacağız. Bu anahtar, otomasyon platformumuzun Notion veritabanımızla güvenli bir şekilde iletişim kurmasını sağlayacaktır.

Otomasyon Platformu Seçimi

GitLab webhook’larından gelen veriyi işleyip Notion API’sine göndermek için bir otomasyon platformuna ihtiyacımız var. Popüler seçenekler şunlardır:

  • Make.com (eski adıyla Integromat): Görsel bir arayüze sahip, karmaşık iş akışları oluşturmak için güçlü bir platformdur.
  • Zapier: Daha basit entegrasyonlar için ideal, kullanımı kolay bir platformdur.
  • n8n: Açık kaynaklı ve kendi sunucunuzda barındırılabilen, daha fazla esneklik sunan bir alternatiftir.

Bu makalede, Make.com’u örnek olarak kullanarak süreci anlatacağız, ancak prensipler diğer platformlar için de benzerdir.

API Anahtarları ve İzinlerin Ayarlanması

Hem GitLab hem de Notion için gerekli API anahtarlarını ve izinleri doğru bir şekilde ayarlamak, entegrasyonun güvenliği ve işlevselliği için hayati öneme sahiptir.

  • GitLab: Webhook oluştururken bir “Secret Token” belirleyebilirsiniz. Bu token, gelen isteğin gerçekten GitLab’den geldiğini doğrulamak için kullanılır.
  • Notion: Oluşturduğunuz iç entegrasyon için bir “API Anahtarı” alacaksınız. Bu anahtarı kimseyle paylaşmamalı ve otomasyon platformunuzda güvenli bir şekilde saklamalısınız. Ayrıca, entegrasyonunuza Notion veritabanına erişim izni vermeniz gerekecektir.

Notion Veritabanı Yapılandırması

GitLab’den gelen birleştirme isteği verilerini depolamak için Notion’da uygun bir veritabanı yapısı oluşturmak ilk adımdır. Bu yapı, senkronize edilecek bilgileri düzenli bir şekilde tutmamızı sağlayacaktır.

Yeni Bir Veritabanı Oluşturma

Notion çalışma alanınızda yeni bir sayfa oluşturun ve bunu bir “Table” (Tablo) veritabanına dönüştürün. Bu veritabanına “GitLab Merge Requests” veya “MR Takip” gibi açıklayıcı bir isim verin. Bu veritabanı, tüm birleştirme isteklerinizin merkezi deposu olacaktır.

Gerekli Özelliklerin Tanımlanması

Veritabanınızda, GitLab’den gelecek verileri karşılayacak sütunlar (özellikler) tanımlamanız gerekir. İşte önerilen özellikler ve türleri:

Özellik Adı Özellik Türü Açıklama
Başlık Title Birleştirme isteğinin başlığı.
MR ID Number GitLab’deki birleştirme isteği ID’si (benzersiz kimlik).
Durum Select MR’ın mevcut durumu (Açık, Birleştirildi, Kapatıldı).
URL URL GitLab’deki birleştirme isteğinin doğrudan bağlantısı.
Yazar Text Birleştirme isteğini oluşturan kişinin adı.
Atanan People MR’ın atandığı Notion kullanıcısı (isteğe bağlı, eşleme gerektirir).
Proje Text veya Relation İlgili GitLab projesinin adı.
Oluşturulma Tarihi Date MR’ın oluşturulduğu tarih.

API Entegrasyonu için Bağlantı Kurulumu

Notion veritabanınıza dışarıdan erişim sağlamak için bir “iç entegrasyon” oluşturmanız gerekir:

  1. Notion’da sol kenar çubuğundaki “Settings & members” (Ayarlar ve Üyeler) kısmına gidin.
  2. “Integrations” (Entegrasyonlar) sekmesini seçin.
  3. “Develop your own integrations” (Kendi entegrasyonlarınızı geliştirin) seçeneğine tıklayın.
  4. “New integration” (Yeni entegrasyon) düğmesine tıklayın.
  5. Entegrasyonunuza bir isim verin (örn: “GitLab MR Sync”).
  6. Gerekli yetkileri ayarlayın (sayfaları okuma, güncelleme, ekleme yetkisi).
  7. Oluşturulan “Internal Integration Token” (İç Entegrasyon Anahtarı) değerini kopyalayın. Bu anahtar, otomasyon platformunuzda kullanılacaktır.
  8. Son olarak, oluşturduğunuz veritabanı sayfasının sağ üst köşesindeki “Share” (Paylaş) düğmesine tıklayın ve yeni oluşturduğunuz entegrasyonu ekleyin. Bu, entegrasyonunuzun veritabanına erişmesine izin verecektir.

GitLab Webhook Kurulumu

GitLab’deki olayları Notion’a bildirmek için bir webhook kurmamız gerekiyor. Bu webhook, bir birleştirme isteğiyle ilgili her değişiklikte otomasyon platformumuza veri gönderecektir.

Webhook Nedir ve Nasıl Çalışır?

Webhook, bir olay gerçekleştiğinde (örneğin, bir MR açıldığında) önceden tanımlanmış bir URL’ye otomatik olarak HTTP POST isteği gönderen bir mekanizmadır. Bu istek, olayın detaylarını içeren bir JSON yükü taşır. Otomasyon platformumuz (Make.com gibi) bu isteği dinleyecek ve gelen veriyi işleyecektir.

GitLab Projesinde Webhook Oluşturma Adımları

GitLab projenizde webhook oluşturmak için aşağıdaki adımları izleyin:

  1. GitLab projenize gidin.
  2. Sol kenar çubuğundan “Settings” (Ayarlar) ve ardından “Webhooks” seçeneğine tıklayın.
  3. “Add new webhook” (Yeni webhook ekle) düğmesine tıklayın.
  4. URL: Buraya otomasyon platformunuzdan alacağınız webhook URL’sini yapıştırın (Make.com’da bir “Custom Webhook” modülü oluşturduğunuzda bu URL size verilecektir).
  5. Secret Token (Gizli Anahtar): İsteğe bağlı ancak şiddetle tavsiye edilen bir güvenlik önlemidir. Buraya güçlü ve benzersiz bir anahtar girin. Bu anahtarı otomasyon platformunuzda da kullanacaksınız.
  6. Trigger (Tetikleyici): “Merge request events” (Birleştirme isteği olayları) seçeneğini işaretleyin. Diğer olayları (örneğin, push, issue) işaretlemek isterseniz, bu da mümkündür ancak makalenin kapsamı dışındadır.
  7. “Enable SSL verification” (SSL doğrulamayı etkinleştir) seçeneğinin işaretli olduğundan emin olun.
  8. “Add webhook” (Webhook ekle) düğmesine tıklayın.

Webhook’unuzu test etmek için “Test” düğmesine tıklayarak “Merge request event” gönderebilirsiniz.

Tetikleyici Olayların Seçimi

Webhook’u kurarken “Merge request events” seçeneğini işaretlemek, birleştirme istekleriyle ilgili tüm olayların (oluşturma, güncelleme, birleştirme, kapatma vb.) otomasyon platformunuza gönderilmesini sağlar. Bu, Notion veritabanınızdaki MR durumlarının her zaman güncel kalması için kritik öneme sahiptir.

Gizli Anahtar (Secret Token) Kullanımı

“Secret Token”, GitLab’den gelen webhook isteğinin gerçekten yetkili bir kaynaktan geldiğini doğrulamak için kullanılır. Otomasyon platformunuzda bu token’ı doğrulayarak, kötü niyetli veya sahte isteklerin işlenmesini engelleyebilirsiniz. Bu, entegrasyonunuzun güvenliğini artıran önemli bir adımdır.

Otomasyon Platformu ile Entegrasyon (Örnek: Make.com)

Şimdi GitLab’den gelen veriyi alıp Notion’a gönderecek otomasyon senaryosunu Make.com üzerinde nasıl kuracağımıza bakalım.

Yeni Bir Senaryo/Workflow Oluşturma

Make.com hesabınıza giriş yapın ve “Create a new scenario” (Yeni senaryo oluştur) düğmesine tıklayın. Bu, iş akışınızı tasarlayacağınız görsel bir editör açacaktır.

Webhook Tetikleyicisini Yapılandırma

  1. Senaryonuza ilk modül olarak “Webhooks” uygulamasını ekleyin ve “Custom webhook” (Özel webhook) modülünü seçin.
  2. “Create a webhook” (Webhook oluştur) düğmesine tıklayın, webhook’unuza bir isim verin ve kaydedin. Make.com size bir URL verecektir. Bu URL’yi GitLab webhook kurulumunda kullandığınızdan emin olun.
  3. Make.com, gelen verinin yapısını otomatik olarak algılayabilmek için bir test verisi bekleyecektir. Bu aşamada GitLab’deki webhook’unuzdan bir “Test” Merge Request event’i gönderin. Make.com, gelen JSON yükünü başarıyla algıladığında yeşil bir onay işareti gösterecektir.
  4. Eğer GitLab webhook’unda bir “Secret Token” belirlediyseniz, Make.com webhook modülünüzün ayarlarında “Specify IP restrictions and/or secret” (IP kısıtlamaları ve/veya gizli anahtar belirt) seçeneğini işaretleyerek bu token’ı girebilirsiniz. Bu, gelen isteğin token’ını doğrulayacaktır.

GitLab’den gelen örnek bir JSON yükü şu şekilde görünebilir (kısaltılmış):


{
  "object_kind": "merge_request",
  "event_type": "merge_request",
  "user": {
    "name": "Kullanıcı Adı",
    "username": "kullanici_adi"
  },
  "project": {
    "name": "Proje Adı",
    "web_url": "https://gitlab.com/..."
  },
  "object_attributes": {
    "id": 12345,
    "iid": 67,
    "title": "Yeni Özellik Geliştirme",
    "state": "opened",
    "url": "https://gitlab.com/proje/repo/-/merge_requests/67",
    "created_at": "2023-10-27T10:00:00Z",
    "updated_at": "2023-10-27T10:00:00Z",
    "action": "open",
    "source_branch": "feature/new-feature",
    "target_branch": "main",
    "last_commit": {
      "author": {
        "name": "Kullanıcı Adı"
      }
    }
  },
  "assignees": [
    {
      "name": "Atanan Kullanıcı"
    }
  ]
}

GitLab Verilerini Ayrıştırma ve Notion'a Eşleme

Webhook modülünden sonra, bir "Notion" modülü ekleyeceğiz. Ancak öncesinde, mevcut bir MR'ın güncellenip güncellenmediğini kontrol etmemiz gerekiyor.

  1. Webhook modülünden sonra bir "Notion" modülü ekleyin ve "Search for objects" (Nesneleri ara) eylemini seçin.
  2. Bağlantı olarak Notion entegrasyonunuzu seçin.
  3. Veritabanı ID'si olarak GitLab MR'larınız için oluşturduğunuz Notion veritabanının ID'sini girin. (Veritabanı URL'sinde notion.so//?v=... kısmında bulabilirsiniz.)
  4. Filtre olarak "MR ID" özelliğini, gelen webhook verisindeki object_attributes.iid (MR'ın proje içi benzersiz ID'si) ile eşleştirin.

Bu adım, Notion'da bu MR ID'sine sahip bir kayıt olup olmadığını kontrol edecektir.

Mevcut MR'ları Güncelleme Mantığı

Arama modülünden sonra bir "Router" (Yönlendirici) ekleyin. Bu, senaryonuzu iki kola ayıracaktır:

  1. Kayıt Bulundu (Güncelle): Router'dan çıkan ilk kola bir "Filter" (Filtre) ekleyin. Koşul olarak, "Notion Search for objects" modülünün döndürdüğü "Total number of bundles" (Toplam paket sayısı) değerinin > 0 olmasını belirtin. Bu kolun altına bir "Notion" modülü ekleyin ve "Update a database item" (Veritabanı öğesini güncelle) eylemini seçin. Güncellenecek öğe ID'si olarak arama modülünden gelen Page ID'yi kullanın ve ilgili Notion özelliklerini GitLab webhook verileriyle eşleştirin (örneğin, object_attributes.title -> Başlık, object_attributes.state -> Durum, object_attributes.url -> URL).
  2. Kayıt Bulunmadı (Oluştur): Router'dan çıkan ikinci kola bir
Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık