Multiple trusted publishing configurations for npm
GitHub, npm yayıncıları için güvenilir yayınlama sürecini daha esnek ve güvenli kılan üç güncellemeyi genel kullanıma sundu. Yeni düzenlemeyle bir npm paketi birden fazla güvenilir yayınlama (OIDC) yapılandırmasına sahip olabiliyor. Aşamalı olarak gönderilen paketler, kötü amaçlı yazılım taraması tamamlanmadan onaylanamıyor. Bakımcılar da paket sürümlerinin aşamalı yayın geçmişini npmjs.com üzerindeki sürümler sekmesinden görebiliyor.
Bir paket için birden fazla OIDC yapılandırması
npm paketlerinde güvenilir yayınlama yapılandırmaları için daha önce tek yapılandırma sınırı vardı. Farklı yayın akışlarını ayırmak isteyen bakımcılar bu nedenle kısıtlanabiliyordu. Kararlı, ön sürüm veya aşamalı sürümler için ayrı iş akışları gerektiğinde ya iş akışı çevresinde geçici çözümler kullanılıyor ya da OIDC’nin kapsamadığı yollar için uzun süre geçerli bir belirteç korunuyordu.
Yeni düzenlemeyle bir paket için birden fazla güvenilir yayınlama yapılandırması tanımlanabiliyor. Her biri bağımsız ve eklemeli çalışıyor; kendi depo, iş akışı ve ortam ölçütlerini içeriyor. Böylece farklı yayın süreçleri, aynı paketin güvenilir yayınlama modeli içinde ayrı yapılandırmalarla tanımlanabiliyor.
Bakımcılar bu yapılandırmaları paketlerinin ayarlar sayfasından ekleyebiliyor, listeleyebiliyor ve kaldırabiliyor. Yayınlama veya aşamalı gönderim isteği, gelen OIDC belirteci yapılandırmalardan herhangi biriyle eşleştiğinde yetkilendiriliyor.
Yapılandırmalar birbirini kısıtlamıyor ve eşleşmenin hangi sırayla değerlendirileceği garanti edilmiyor. Bu nedenle yapılandırmaların eşleşme sırasına dayalı bir mantık oluşturmamak gerekiyor. Yetkilendirme, gelen belirtecin yapılandırmalardan en az biriyle eşleşip eşleşmediğine göre yapılıyor.
Aşamalı yayınlama varsayılan olarak kullanılabiliyor
Her güvenilir yayınlama yapılandırması, varsayılan olarak bir paketi aşamalı biçimde gönderebiliyor. Doğrudan yayınlama ise her yapılandırma için ayrıca etkinleştirilmesi gereken bir seçenek. GitHub, yapılandırmaların yalnızca aşamalı gönderim için tutulmasını öneriyor.
Aşamalı yayınlama modelinde bir sürüm kullanılabilir hale gelmeden önce insan onayı gerekiyor. Güvenilir yayınlama sürecindeki bir iş akışı ele geçirilse bile paket doğrudan kayıt defterine gönderilemiyor. Böylece yayınlama yetkisiyle çalışan bir iş akışının olası kötüye kullanımının etkisi, onay adımıyla sınırlandırılabiliyor.
Birden fazla yapılandırma desteği, farklı depolara, iş akışlarına veya ortamlara dayanan yayın süreçlerini aynı paket içinde yönetmeyi kolaylaştırıyor. Ancak yapılandırmalar bağımsız çalıştığı için her birinin ölçütleri dikkatle belirlenmeli, doğrudan yayınlama da yalnızca ihtiyaç duyulan yapılandırmalarda açılmalı.
Onay öncesinde kötü amaçlı yazılım taraması
GitHub’ın yayınlama zamanında kötü amaçlı yazılım taramasını başlatmasının ardından paketler, kullanılabilir hale gelmeden önce taranıyor. Aşamalı yayınlama kuyruğunda yapılan değişiklikle taraması süren bir paket için onay düğmesi devre dışı bırakılıyor.
Onay işlemi tarama tamamlandıktan sonra kullanılabilir hale geliyor. Bakımcı böylece güvenlik taraması henüz sonuçlanmamış bir paketi aşamalı yayın kuyruğundan onaylayamıyor. Kuyruk sayfası, tarama ve onay durumunu güncel tutmak için her dakika yenileniyor.
Bu akış, aşamalı yayınlamadaki insan onayıyla yayınlama öncesi kötü amaçlı yazılım taramasını aynı sıraya koyuyor. Paket önce taramadan geçiyor, onay seçeneği de ancak tarama tamamlandığında etkinleşiyor. Kaynakta tarama sonucunda hangi ayrıntıların gösterildiğine ilişkin ek bilgi paylaşılmıyor.
Bakımcılar için sürüm geçmişi görünümü
npmjs.com üzerindeki paket sürümleri sekmesi, aşamalı yayınlama sürecini izlemeye yardımcı olacak şekilde güncellendi. İlgili bakımcılar her sürümün ayrıntılı geçmişini bu sekmeden görebiliyor.
Bu geçmişte bir sürümün onaylanıp onaylanmadığı, reddedilip reddedilmediği veya hala aşamalı durumda bulunup bulunmadığı gösteriliyor. Bakımcılar böylece paket sürümlerinin yayınlama sürecindeki durumunu tek bir görünümden takip edebiliyor.
Yeni görünüm, bir paketin doğrudan kullanılabilir olup olmadığını ve aşamalı yayın sürecinde hangi noktada bulunduğunu ayırt etmeyi kolaylaştırıyor. Kaynakta bu geçmişin bakımcılara sunulduğu belirtiliyor; diğer kullanıcıların aynı ayrıntılara erişip erişemediği konusunda bilgi verilmiyor.
Değişikliklerin npm yayınlama sürecine etkisi
Bu üç güncelleme, npm paketleri için güvenilir yayınlama modelini farklı iş akışlarını destekleyecek şekilde genişletiyor. Birden fazla OIDC yapılandırması, paket başına tek bir yayınlama yolu kullanma zorunluluğunu kaldırıyor. Aşamalı yayınlamanın varsayılan olarak desteklenmesi de doğrudan yayınlama yerine onay adımının kullanılmasına imkan tanıyor.
Kötü amaçlı yazılım taraması tamamlanmadan onay verilememesi, aşamalı yayınlama kuyruğuna ek bir sıralama ve kontrol getiriyor. Sürüm geçmişinin bakımcılara gösterilmesi ise onay, ret ve bekleyen aşamalı durumların izlenmesini kolaylaştırıyor.
GitHub, bu değişiklikleri bakımcı geri bildirimleri doğrultusunda geliştirdiğini belirtiyor. Güncellemeler hakkında soru sormak veya gelişmeleri takip etmek isteyenler GitHub Community tartışmasına başvurabilir.
Kaynaklar ve İleri Okuma
GitHub Changelog: Multiple trusted publishing configurations for npm







Yorum gönder