GITHUB KATKI FIRSATLARI · .NET / C#

Açık kaynak katkısına nereden başlamalı?

GitHub’da bir projeye katkıda bulunmak istediğimde, iş kod yazmadan önce başlıyor. Depo hâlâ aktif mi? Issue’nun kapsamı anlaşılır mı? Proje, yerelde çalıştırabileceğim bir geliştirme ortamına sahip mi? Birkaç depo arasında gidip gelirken bu sorulara tekrar tekrar dönüyorum.

OpenSourceHunter, bu araştırmayı tek bir iş akışında toplamak için geliştirdiğim yerel bir araç. GitHub’daki .NET ve C# depolarını keşfediyor, açık issue’ları topluyor ve incelemeye değer adayları gerekçeleriyle sıralıyor. Seçtiğim bir issue için çalışma ortamını hazırlamama ve açtığım pull request’i takip etmeme de yardımcı oluyor.

GitHub aramasından inceleme listesine

Depo keşfinden puanlanmış aday listesine veri akışı

  1. Depoları keşfet. GitHub API üzerinden .NET ve C# projelerini bulur, depo bilgilerini yerel veritabanında saklar.
  2. Açık issue’ları topla. Depolardaki açık kayıtları alır, pull request kayıtlarını ve belirlenen güncellik sınırının dışındaki issue’ları eler, katkı etiketlerini ortak bir biçime dönüştürür.
  3. Adayları puanla. Depo etkinliği, issue’nun güncelliği, açıklaması, yorum sayısı ve etiketleri gibi sinyalleri değerlendirir. Puanlar 0–100 aralığındadır. Puanlama ve raporlama, daha önce kaydedilmiş veriler üzerinden çalışır.
  4. Neden önerildiğini incele. CLI raporu ve yerel web arayüzü puan, katkı türü, zorluk tahmini, gerekçe ve ilk adımı bir arada gösterir. Örneğin güncel bir depodaki help wanted etiketli ve açıklaması yeterli bir issue, inceleme sırasında öne çıkabilir.

OpenSourceHunter web arayüzünde puan, gerekçe ve hazırlık komutu gösterilen adaylar

Uygulamanın yerel inceleme ekranı. Görüntü, kaydedilmiş bir arayüz çıktısından alındı ve yerel dosya yolu çıkarıldı.

İncelemeden pull request takibine

Aday inceleme, yerel hazırlık ve pull request takibi

Bir aday seçtiğimde GitHub issue’sunu açıp kapsamı ve proje kurallarını inceliyorum. Uygun olmayan issue veya depoları gerekçe ve notla devre dışı bırakabiliyor, daha sonra inceleme listesine geri alabiliyorum.

osh prepare <id> seçilen depoyu yerelde klonluyor veya mevcut klonu kullanıyor. README, CONTRIBUTING ve derleme dosyalarını inceleyip işe nereden başlayabileceğimi gösteriyor. Katkı üzerinde çalışmaya başladığımda bunu kaydedebiliyor, pull request açtığımda URL’sini ekleyip GitHub’daki durumunu senkronize edebiliyorum. Aday seçimi, kod değişikliği ve PR gönderimi geliştiricinin elinde.

Nasıl geliştirdim?

Komut satırı aracını ve web arayüzünü aynı uygulama kuralları ve veri deposu üzerine kurdum. C# ve .NET 8 iş akışlarını yürütüyor. ASP.NET Core Razor Pages inceleme ekranını sunuyor. Entity Framework Core ve MySQL depo, issue, puan ve katkı kayıtlarını saklıyor. GitHub API keşif, issue toplama ve PR durumu için, Git ise yerel hazırlık için kullanılıyor.

OpenSourceHunter bugün tek kullanıcılı, yerelde çalışan bir MVP. Benim için en önemli çıktısı, bir issue’nun neden sırada olduğunu ve incelemek için hangi adımı atabileceğimi aynı ekranda görebilmek.