Open Source License Compliance: Kurumsal Lisans Denetimi
GitHub, açık kaynak bağımlılıklarının lisanslarını kurumsal ölçekte denetlemeye yarayan open source license compliance özelliğini genel kullanıma (GA) aldı. Özellik, GitHub Enterprise Cloud müşterilerinde, veri ikameti (data residency) kullanan GHEC dahil, GitHub Code Security etkinleştirilmiş depolarda kullanılabiliyor. Kuruluşlar hangi lisansların kabul edilebilir olduğunu merkezi bir politikada tanımlayıp bu politikayı pull request akışının içinde zorunlu kılabiliyor.
Özellik nasıl çalışıyor?
Open source license compliance, var olan dependency review action yeteneklerinin üzerine kurumsal düzeyde bir lisans politikası ekliyor. Politika, depoları hedefleyen bir ruleset aracılığıyla devreye giriyor. Bunun için Require license compliance results before merging adlı yeni bir koşul kullanılıyor, mantığı da code scanning tarafında halihazırda bulunan koşullara benziyor.
Bir geliştirici bağımlılık ekleyen veya değiştiren bir pull request açtığında lisans denetimi kendiliğinden çalışıyor, her yeni ya da değişmiş bağımlılığın kabul edilebilir bir lisansa sahip olup olmadığına bakıyor. Politikaya uymayan bağımlılıklar için pull request üzerine açıklayıcı bir anotasyon düşülüyor.
Bu anotasyonların kapatılması için üç yol var:
- İlgili bağımlılığı kaldırmak veya uyumlu bir alternatifle değiştirmek,
- Lisans politikasını güncellemek,
- İlgili paket için istisna (package exception) tanımlamak.
Yeni kurumsal rol: Enterprise Open-Source License Manager
Özellikle birlikte Enterprise Open-Source License Manager adında önceden tanımlı yeni bir kurumsal rol de geliyor. Rol, kapatma (closure) taleplerini inceleyip onaylaması beklenen kişilere veya ekiplere atanıyor.
Politika yöneticileri bekleyen talepler hakkında e-posta bildirimi alıyor, talepleri enterprise konsolu üzerinden değerlendirebiliyor. Lisans istisnası verme kararı böylece tek tek depo sahiplerinin inisiyatifinde kalmıyor, tanımlı bir onay sürecine bağlanıyor.
Public preview sonrası neler değişti?
GitHub, haziran ayındaki public preview sürümünden bu yana birkaç iyileştirme yaptığını belirtiyor:
- Veri ikameti desteği geldi. Lisans bilgisi artık GitHub Enterprise Cloud data residency müşterileri için de mevcut; bu sayede lisans uyumluluğu özelliği çalışabiliyor, dependency graph ve SBOM (Software Bill of Materials) dışa aktarımları da lisans verisiyle doluyor.
- Lisans politikasında yapılan değişiklikler artık audit log olayı üretiyor. Bu da kayıt sistemleriyle (external systems of record) entegrasyonda kullanılabiliyor.
- Kurumsal lisans politikasını indirmek, güncellemek ve değiştirmek için yeni API uç noktaları eklendi.
- Bir paketin politikaya uyup uymadığını kontrol eden yeni bir API uç noktası da var. GitHub’a göre bu uç nokta, kodlama ajanlarının (coding agents) kuruluşun lisans kullanım politikasını ihlal eden paketleri önermesini veya projeye dahil etmesini engellemeye olanak tanıyor.
Pratikte ne anlama geliyor?
Lisans uyumluluğu çoğu kurumda bugüne kadar ya hukuk ekibinin manuel incelemesine ya da depo bazında yapılandırılan dependency review kurallarına bırakılıyordu. Buradaki fark, politikanın enterprise seviyesinde tanımlanması ve ruleset üzerinden hedeflenen depolara uygulanması. Kuralı her depoda ayrı ayrı yapılandırmak yerine merkezden yönetiyor, kapsamı ruleset hedeflemesiyle belirliyorsunuz.
Kontrol de merge öncesine taşınıyor. Uyumsuz bir bağımlılık, kod ana dala girdikten sonra raporlanan bir bulgu olmaktan çıkıyor, pull request üzerinde ele alınması gereken bir anotasyona dönüşüyor. Tedarik zinciri güvenliğinde benimsenen “shift left” yaklaşımının lisans tarafındaki karşılığı bu.
Bir de ajan tabanlı geliştirme akışları var. Paket uyumluluk denetimi için ayrı bir API uç noktasının sunulması, otomatik kod üreten araçların politika dışı bağımlılıkları baştan elemesine imkan veriyor. Kaynakta bu yeteneğin hangi ajanlarda nasıl kullanıldığına dair ayrıntı verilmiyor; sunulan şey, bu senaryoyu mümkün kılan API uç noktasının kendisi.
Başlarken
Kurulum adımlarının ayrıntısı GitHub Docs üzerindeki About open source license compliance sayfasında yer alıyor. API uç noktalarının dokümantasyonu için dependency-graph REST API referansına bakabilirsiniz. Özellikle ilgili geri bildirim ve sorular için GitHub Community içindeki code security tartışma kategorisi kullanılabiliyor.
Kurumunuzda GitHub Code Security’yi zaten kullanıyorsanız, güvenlik politikalarının merkezden zorunlu kılınmasına dair benzer yaklaşımları daha önce ele aldığımız GitHub Advanced Security zorunlu kılma yazısında ve tedarik zinciri saldırılarına karşı alınan önlemleri incelediğimiz npm ve GitHub Actions tedarik zinciri saldırıları yazısında bulabilirsiniz.
Kaynaklar ve İleri Okuma
- Open source license compliance generally available — The GitHub Blog changelog
- About open source license compliance — GitHub Docs
- REST API endpoints for dependency-graph — GitHub Docs
- actions/dependency-review-action deposu
- GitHub Community — Code security tartışmaları







Yorum gönder