GitHub release indirme sayılarını tek WinForms aracıyla izleme
Bir geliştirici, GitHub arayüzünün göstermediği release indirme sayılarını tüm projeleri için toplayan ve geçmişini saklayan küçük bir WinForms aracını paylaştı. Uygulama tek bir C# 5 dosyasından, Windows ile gelen csc.exe ile Visual Studio olmadan derleniyor. .NET Framework 4 üzerinde TLS ve API hız limiti tuzaklarına takılanlar için faydalı bir not.
Kilit noktalar
- download_count yalnızca release ekleri için sayılır; Download ZIP, git clone ve Source code arşivleri dahil değildir.
- Anonim GitHub API istekleri saatte 60 ile sınırlıdır; X-RateLimit-Remaining ve X-RateLimit-Reset başlıklarıyla takip edilebilir.
- Trafik verileri için fine-grained token'a Administration: Read-only izni gerekir.
- .NET Framework 4'te ServicePointManager.SecurityProtocol ile TLS 1.2 (3072) açıkça etkinleştirilmelidir.
- Token, ProtectedData.Protect ile kullanıcıya bağlı şifrelenip HKCU altında saklanır.
- Derleme için csc.exe /target:winexe kullanılır; JSON ayrıştırma System.Web.Extensions ile yapılır.
Bir geliştirici, GitHub arayüzünde görünmeyen bir rakamı, yani tüm depolarındaki release dosyalarının toplam indirme sayısını gösteren küçük bir Windows aracı yazdı. API yalnızca güncel değerleri verdiği için araç her kontrolde anlık görüntü kaydediyor, böylece haftalık büyüme ve trend grafikleri çıkarılabiliyor.
Uygulama .NET Framework 4 ve C# 5 hedefliyor; tek dosya Windows ile gelen csc.exe ile Visual Studio ve ek paket olmadan derleniyor. Yazıda TLS 1.2'nin elle açılması, saatte 60 istekle sınırlı anonim kota, isteğe bağlı token'ın ProtectedData ile şifrelenmesi ve Canvas üzerinde elle çizilen paneller gibi tuzaklar anlatılıyor.
Gerçek dünyada kullanımı
- Birkaç açık kaynak kütüphanesini bakım yapan ve indirme toplamlarını ile yıldız büyümesini tek ekranda görmek isteyen bir geliştirici.
- Masaüstü aracını dağıtan ve build makinesinde Visual Studio bulunmayan bir ekibin release başına indirme trendlerini izlemesi.
- Yalnızca yerleşik csc.exe ile derlenmesi gereken eski bir .NET Framework 4 projesinin küçük yardımcı araçları.
Neden önemli
GitHub'da release ikilileri yayımlıyorsanız download_count bir benimseme sinyali verir, ancak API yalnızca güncel toplamı döndürdüğü için geçmişi kendiniz saklamanız gerekir.
Benzer haberler
- C# 14 extension member'ları: derleyicinin uyarmadığı gölgeleme hatasıDEV Community: #csharp1 gün önce
- C#'ta LLM token'ları: yapay zekâ "strawberry"deki r'leri neden sayamıyor?DEV Community: #csharp1 gün önce
- C# interface'lerinde collection dönüş tipleri: interface, view ve snapshot farkıNick Cosentino (Dev Leader)2 gün önce