Alesta WEB

Kısa cevap: GitHub, 21 Ekim 2026'da GitHub CLI (gh) için süresi dolan ve kendiliğinden yenilenen OAuth jetonlarını herkese açık önizlemeye aldı. gh auth login --expiring ile giriş yapıldığında gh, kısa ömürlü bir erişim jetonunu dönen (rotating) bir yenileme jetonuyla birlikte saklıyor ve gerektiğinde kendisi yeniliyor. Sızan bir erişim jetonu birkaç saat içinde işe yaramaz hale geliyor. Özellik gh 2.103.0 ve üstünü istiyor; github.com ve ghe.com'da hemen, GitHub Enterprise Server'da 3.23 ile çalışıyor. GitHub ileride yeni girişlerde bunu varsayılan yapmayı planlıyor.

Neden süreli jeton? (Why expiring tokens)
Bugüne kadar gh auth login ile alınan OAuth jetonunun süresi dolmuyordu. Jeton, kullanıcı oturumu kapatana ya da jetonu elle iptal edene kadar geçerli kalıyordu. Bu da geliştirici makinesinden çalınan bir jetonun aylarca kullanılabilmesi demekti. Son iki yılın tedarik zinciri saldırılarında, örneğin npm Shai-Hulud solucanında, zararlı kodun ilk aradığı şeylerden biri geliştiricinin diskindeki GitHub jetonlarıydı.
Yeni modelde iki jeton var: kısa ömürlü bir erişim jetonu ve her kullanımda değişen bir yenileme jetonu. gh, erişim jetonunun süresi dolduğunda yenileme jetonuyla sessizce yenisini alıyor. Kullanıcı hiçbir şey fark etmiyor; ama bir yere kopyalanmış ya da çalınmış erişim jetonu GitHub'ın ifadesiyle "saatler içinde" geçersiz oluyor. GitHub duyuruda kesin süreleri paylaşmadı.
Nasıl açılır? (How to opt in)
Önce gh sürümünü kontrol edin; 2.103.0 ya da üstü gerekiyor:
gh --versionTek bir giriş için bayrakla:
gh auth login --expiringBundan sonraki tüm girişlerde varsayılan olsun isterseniz:
gh config set expiring_credentials enabledDurumu görmek için gh auth status çalıştırın. Çıktıda jetonun süreli olup olmadığı ve geçerli erişim jetonunun ne zaman dolacağı görünüyor. Özellik tamamen isteğe bağlı: bayrak ya da ayar kullanılmazsa hiçbir şey değişmiyor, mevcut oturumlar ve elle verilen jetonlar eskisi gibi çalışıyor. Sunucu yenilenebilir jeton desteklemiyorsa gh normal, süresiz jetona geri düşüyor.
Git ile birlikte kullanım (Git over HTTPS)
Depoları HTTPS üzerinden çekip gönderiyorsanız GitHub şu komutu güçlü biçimde öneriyor:
gh auth setup-gitBu komut gh'yi Git'in kimlik bilgisi yardımcısı (credential helper) yapıyor; böylece Git her ihtiyaç duyduğunda güncel jetonu gh'den alıyor. Ayrıca Git 2.46 veya üstü öneriliyor: bu sürümlerde gh, jetonun süreli olduğunu Git'e bildirebiliyor ve Git süresi geçmiş bir jetonu önbelleğinde tutmuyor. Daha eski Git'te özellik yine çalışıyor ama gh bir kereye mahsus yükseltme önerisi gösteriyor. Sürümü kontrol etmek için:
git --versionBetikler ve CI için dikkat (Scripts and automation)
Süreli jetonun bir bedeli var: jetonu bir kez alıp saklayan her şey bir süre sonra bozuluyor. GitHub'ın uyardığı durumlar:
- Jetonu bir kez okuyup saklayan betikler:
TOKEN=$(gh auth token)satırını başta bir kez çalıştırıp saatlerce kullanan betik, jeton dolunca 401 alır. Çözüm, jetona her ihtiyaç duyulduğundagh auth token'ı yeniden çağırmak. - Jetonu başka araca kopyalamak: bir IDE eklentisine, Docker kayıt deposu girişine ya da
.npmrc'ye yapıştırılan jeton da aynı şekilde dolacak. - Uzun süren iş akışları: GitHub, uzun süre geçerli jeton isteyen iş akışlarında şimdilik bu özelliği açmamayı öneriyor.
CI ortamları zaten bu değişiklikten etkilenmiyor: GitHub Actions kendi kısa ömürlü GITHUB_TOKEN'ını kullanıyor, sunucularda ise ince taneli kişisel erişim jetonu (fine-grained PAT) ya da GitHub App jetonu daha uygun. Değişiklik asıl olarak geliştirici makinelerindeki uzun ömürlü jetonları hedefliyor.
Alesta WEB olarak ekip makinelerinde bu tür kimlik bilgilerinin süreli olmasını tercih ediyoruz; bir dizüstü bilgisayar kaybolduğunda ya da zararlı bir paket kurulduğunda hasarın süresi kısalıyor. Yerel geliştirmede gh kullanıyorsanız açmak için iyi bir zaman; Actions kilit dosyası ve package firewall ile birlikte GitHub'ın bu ayki tedarik zinciri adımlarının üçüncüsü bu.
GitHub Enterprise Server (GHES)
Özellik github.com ve veri yerleşimli ghe.com'da hemen kullanılabiliyor. GitHub Enterprise Server süreli jetonları 3.23 sürümüyle vermeye başlıyor. Daha eski GHES sürümlerinde --expiring ile giriş yapılırsa gh sessizce süresiz jetona geri dönüyor; yani bayrağı açmak bir şeyi bozmuyor ama koruma da sağlamıyor. Kurum içi sunucuda gh auth status çıktısıyla jetonun gerçekten süreli olup olmadığını doğrulayın.
Sık sorulan sorular
Mevcut gh oturumum etkilenir mi?
Hayır. Siz açıkça --expiring ile giriş yapmadıkça ya da ayarı açmadıkça mevcut oturumunuz eskisi gibi çalışır.
Jetonum ne kadar sürede doluyor?
GitHub kesin süre vermedi; duyuruda erişim jetonunun kısa ömürlü olduğu ve sızan bir jetonun saatler içinde kullanılamaz hale geldiği belirtiliyor. Geçerli bitiş zamanını gh auth status gösteriyor.
Yenileme jetonu çalınırsa ne olur?
Yenileme jetonu her kullanımda değişiyor. Şüpheli bir durumda gh auth logout ile çıkış yapıp GitHub hesap ayarlarındaki yetkili OAuth uygulamaları listesinden GitHub CLI erişimini iptal etmek en güvenli yol.
Gelecekte varsayılan olacak mı?
Evet. GitHub, ileriki bir sürümde süreli jetonları yeni girişler için varsayılan yapmayı planladığını açıkladı. Jetonu saklayan betiklerinizi şimdiden düzeltmek iyi olur.
Kaynaklar (References)
İlgili yazılar: GitHub package firewall · GitHub Actions kilit dosyası · Copilot CLI yerel model · Web yazılım hizmetleri
Kapak fotoğrafı: Gabriel Heinzer / Unsplash
Yorumlar
Yorum yazın

