Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Copilot Otomatik Düzeltme, kod tarama uyarıları için önerilen düzeltmeler oluşturan Azure DevOps için GitHub Gelişmiş Güvenlik'in yapay zeka destekli bir özelliğidir. CodeQL bir güvenlik açığı veya kodlama hatası tanımladığında, doğrudan Gelişmiş Güvenlik sekmesinden uyarı için bir düzeltme oluşturabilirsiniz. Copilot Otomatik Düzeltme, düzeltmeyi oluşturmak için Copilot kodlama aracısını kullanır ve önerilen değişiklikle bir çekme isteği açar; böylece bunu normal çekme isteği iş akışınızda gözden geçirebilir, düzenleyebilir ve birleştirebilirsiniz.
Note
Bu özellik sınırlı genel önizleme aşamasındadır. Microsoft şu anda önizleme için ek kullanıcıları kabul etmemekte.
İşlevsellik bildirimde bulunmaksızın değiştirilebilir veya kaldırılabilir. Önizleme özelliklerinin Hizmet Düzeyi Sözleşmesi (SLA) ve sınırlı desteği yoktur.
Azure DevOps için GitHub Advanced Security, Azure Repos ile çalışır. GitHub Gelişmiş Güvenliği GitHub depolarla kullanmak için bkz. GitHub Advanced Security.
Prerequisites
| Kategori | Requirements |
|---|---|
| Permissions | - Depoya yönelik tüm uyarıların özetini görüntülemek için: Katkıda Bulunan depo izinleri. - Gelişmiş Güvenlik'te uyarıları kapatmak için: Project administrator izinleri. - Gelişmiş Güvenlik izinlerini yönetmek için: Project Collection Administrators grubunun üyesi olun veya Gelişmiş Güvenlik: ayarları yönet iznini İzin Ver olarak ayarlayın. |
Gelişmiş Güvenlik izinleri hakkında daha fazla bilgi için bkz. Gelişmiş Güvenlik izinlerini yönetme.
- Varsayılan kurulum veya gelişmiş kurulum kullanılarak deponuz için yapılandırılmış kod tarama.
- En az bir CodeQL kod tarama uyarısı.
Copilot Otomatik Düzeltme Hakkında
Copilot Otomatik Düzeltme, CodeQL'in analiz gücünü Copilot kodlama aracısını destekleyen büyük dil modeliyle birleştirir. Desteklenen bir kod tarama uyarısı için düzeltme oluşturduğunuzda, Copilot Autofix uyarıyı ve çevresindeki kodu analiz eder, ardından şunları içeren bir çekme isteği açar:
- Altta yatan güvenlik açığını gideren önerilen kod değişikliği.
- Uyarı kimliği, önem derecesi ve değişikliğin özeti de dahil olmak üzere düzeltilmekte olan uyarının açıklaması .
Önerilen düzeltme kod tabanınızın daha geniş bağlamını dikkate aldığı için, değişiklik uyarının oluşturulduğu tek satırdan daha fazla yayılabilir ve gerektiğinde diğer dosyalarda değişiklik içerebilir.
Note
Copilot Autofix tarafından işlenen veriler, büyük dil modellerini (LLM) eğitmek için kullanılmaz.
Important
Copilot Otomatik düzeltme önerileri bir yapay zeka modeli tarafından oluşturulur ve doğru, eksiksiz veya güvenli olduğu garanti edilmemektedir. Çekme isteğini her zaman dikkatlice gözden geçirin, uyarıyı yeni sorunlar ortaya çıkarmadan giderdiğini doğrulayın ve birleştirmeden önce değişikliklerinizi test edin.
Desteklenen diller
Copilot Autofix, CodeQL’in kod taraması kapsamında analiz ettiği C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby ve Swift dahil olmak üzere aynı dilleri destekler. CodeQL tarafından desteklenen dillerin geçerli listesi için bkz. Dil ve sorgu desteği.
Billing
Copilot Otomatik Düzeltme, Azure DevOps için GitHub Gelişmiş Güvenlik lisansınıza dahildir. Bir düzeltme oluşturmak, kuruluşunuzun Azure faturalama sayacından yapay zeka kredileri tüketir.
Her düzeltme oluşturma işlemi modele gönderilen kod bağlamı için giriş belirteçleri, önerilen değişiklik için çıkış belirteçleri ve var olan bağlamı yeniden kullanan önbelleğe alınmış belirteçleri içeren belirteçleri kullanır.
Faturalandırmayı basit tutmak için bu belirteçler, 1 kredinin 0,01 ABD dolarına eşit olduğu GitHub yapay zeka kredisi olarak adlandırılan standart bir birime dönüştürülür. Ücretler, Azure DevOps kuruluşunuza bağlı Azure aboneliğine faturalandırılır ve Azure Maliyet Yönetimi’ta ayrı bir ölçüm olarak görünür.
Her düzeltmenin maliyeti, çevresindeki kod bağlamının boyutuna ve değişikliğin karmaşıklığına göre değişir.
Günlük ücretlerinizi izlemek için Azure portalında>>Maliyet analizi'ne gidin.
Copilot Otomatik Düzelt özelliğini etkinleştir
Copilot Otomatik Düzeltme'yi kuruluş, proje veya depo düzeyinde etkinleştirebilirsiniz. Otomatik Düzeltme'yi daha geniş bir kapsamda etkinleştirdiğinizde, bu ayar bu kapsamdaki tüm depolar için geçerlidir. Autofix'i, ayarın uygulanacağı depolara göre nerede yapılandıracağınızı seçin:
| Scope | Autofix nerede yapılandırılır |
|---|---|
| Organizasyon | Kuruluştaki tümdepolar için Otomatik Düzeltme'yi etkinleştirmek için Kuruluş ayarları> Depoları'nı seçin. |
| Project | Projedeki tüm depolar için Otomatik Düzeltme'yi etkinleştirmek üzere Proje ayarları>Depolar>'ı seçin. |
| Depo | Project ayarları>Depolar'ı seçin ve ardından yalnızca bu depo için Otomatik Düzeltme'yi etkinleştirmek üzere bir depo seçin. |
Copilot Otomatik Düzeltmeyi etkinleştirmek için:
- Azure DevOps kuruluşunuzda (
https://dev.azure.com/{yourorganization}) oturum açın. - Yapılandırmak istediğiniz kuruluş, proje veya depo kapsamının ayarlar sayfasına gidin.
- Gelişmiş Güvenlik bölümünde Kod Güvenliği özellikleri panelini açın.
- Copilot kodlama aracısı tarafından oluşturulan kod tarama uyarıları için otomatik düzeltmeler oluşturmak üzere kod tarama uyarıları için Autofix onay kutusunu seçin.
- Yaptığınız değişiklikleri kaydetmek için Apply'ı (Uygula) seçin.
CodeQL zaten çalışıyor ve depo için uyarılar oluşturuyor olmalıdır. Daha fazla bilgi için Kod taramayı ayarlama ve GitHub Advanced Security özelliklerini yapılandırma konularına bakın.
Uyarı için düzeltme oluşturma
otomatik düzeltmeyi Copilot etkinleştirdikten sonra desteklenen tüm kod tarama uyarılarından bir düzeltme oluşturabilirsiniz.
- Repos>Gelişmiş Güvenlik'yi seçin.
- Kod tarama sekmesini seçin ve ardından ayrıntı görünümünü açmak için bir uyarı seçin.
- Bulguyu anlamak için uyarının Konum, Açıklama ve Öneri'sini gözden geçirin.
- Düzeltme oluştur'a tıklayın.
Copilot Otomatik Düzeltme düzeltme üzerinde çalışsa da, uyarı ayrıntı görünümü düzeltmenin devam ettiğini gösterir. Düzeltme hazır olduğunda, Copilot Autofix bir çekme isteği açar.
Copilot Otomatik Düzeltme düzeltmeyi oluşturur ve copilot-autofix/... adlı daldan bir çekme isteği açar. Çekme isteği, çekme istekleri listesinde Autofix çekme isteklerini tanımlamak için kullanabileceğiniz Copilot Autofix etiketiyle etiketlenmiştir.
CodeQL uyarıları için çekme isteği, uyarı ayrıntıları görünümünde İlgili çekme istekleri altında otomatik olarak görünür ve oluşturma ile tamamlama süreci ilerledikçe güncellenmeye devam eder; bu nedenle sayfayı yenilemeniz gerekmez.
Copilot Otomatik Düzeltme uyarıya yönelik herhangi bir kod değişikliği oluşturmazsa bir dal veya çekme isteği oluşturmaz ve uyarı ayrıntıları görünümünde çekme isteğine bağlantı vermez. Bu durumda uyarıyı el ile düzeltin. Daha fazla bilgi için Düzeltme kullanılamaz bölümüne bakın.
Düzeltmeyi gözden geçirin ve birleştirin
Copilot Autofix’in açtığı çekme isteği, diğer Azure Repos çekme istekleri gibi davranır. Açıklaması, düzeltmenin ele aldığı uyarıyı özetler.
Copilot Otomatik Düzeltme etiketi, otomatik düzeltme çekme isteklerini belirtir.
- Çekme isteğini uyarının İlgili çekme istekleri bölümünden veya Repos>Çekme istekleri bölümünden açın.
- Tüm etkilenen dosyalardaki Dosyalar sekmesinde önerilen değişikliği gözden geçirin.
- Kod stilinize, adlandırma kurallarınıza veya proje gereksinimlerinize uymanız gerekiyorsa değişikliği düzenleyin.
- Pull request’i alışılmış inceleme sürecinizi izleyerek onaylayın ve tamamlayın.
Pull request birleştirildikten ve sonraki kod taraması tamamlandıktan sonra, düzeltme altta yatan güvenlik açığını gideriyorsa uyarı otomatik olarak kapanır.
Tip
Oluşturulan düzeltme, son bir yanıt değil başlangıç noktasıdır. Pull request’i diğer değişiklikler gibi ele alın: birleştirmeden önce gözden geçirin, test edin ve gerektiğinde ek gözden geçirenler talep edin.
Copilot Otomatik Düzeltme Sorunlarını Giderme
Bir düzeltme oluşturuldu ancak commit edilemedi veya push edilemedi
Copilot Autofix, commit yazarı e-postası olarak noreply@dev.azure.com kullanır. Bir commit yazarı e-posta doğrulama ilkesi bu adrese izin vermiyorsa, Copilot Autofix kod değişikliğini oluşturabilir; ancak çekme isteğini oluşturmak için bunu commit edemez veya pushlayamaz.
Uyarı ayrıntı görünümü, engellenen commit yazarının e-posta adresini belirten bir hata görüntüler.
noreply@dev.azure.com öğesini, commit yazarı e-posta doğrulama ilkesindeki izin verilen e-posta kalıplarına ekleyin:
- Proje ayarları>Depolar'ı seçin.
- Proje düzeyi ilkesini güncelleştirmek için Tüm Depolar'ı seçin veya ilkeyi içeren depoyu seçin.
- Politikalar'ı seçin.
- Depo İlkeleri'nin altında Commit author e-posta doğrulamayı bulun.
-
noreply@dev.azure.comöğesini izin verilen e-posta kalıplarına ekleyin. - Kod tarama uyarısına dönün ve Düzeltmeyi yeniden dene'yi seçin.
Çalıştırma başarısız oluyor
Copilot Otomatik Düzeltme çalıştırması tamamlanamadıysa, uyarı belirgin bir hata durumu gösterir, böylece çalıştırmanın başarılı olmadığını hızlı bir şekilde görebilirsiniz. Hata durumundan çalıştırmayı yeniden deneyerek yeni bir düzeltme oluşturabilirsiniz.
Bir çalıştırma geçici nedenlerle veya çalıştırma kullanılabilir bir kod değişikliği üretmediğinde başarısız olabilir. Düzeltmeyi yeniden oluşturmak için çalıştırmayı yeniden deneyin.
Çözüm mevcut değil
Copilot Autofix her uyarı için bir düzeltme üretemez. Aşağıdaki durumlarda bir düzeltme kullanılamayabilir:
- Uyarı türü şu anda Copilot Autofix tarafından desteklenmiyor.
- Copilot uyarının hatalı pozitif olabileceğini belirler.
- Uyarıyı CodeQL yerine özel sorgu veya üçüncü taraf bir araç oluşturur.
- Copilot Autofix çalışıyor ancak kodda herhangi bir değişiklik üretmiyor. Bu durumda dal veya çekme talebi oluşturulmaz.
Copilot Otomatik Düzeltme, uyarının yanlış pozitif olabileceğini belirler ve herhangi bir değişiklik üretmezse sonuç, uyarı ayrıntıları görünümünde gösterilir. Çalıştırmayı gözden geçirebilir veya düzeltmeyi yeniden deneyebilirsiniz.
Bir düzeltme kullanılamadığında, uyarıyı düzeltmek veya el ile kapatmak için uyarının Öneri ve Örnek bölümlerini kullanın. Daha fazla bilgi için bkz. Uyarı ayrıntıları.
İlgili makaleler
- Kod taramayı kurma
- Kod tarama sorunlarını giderme
- Özel sorgular ve sorgu paketleri kullanma
- Gelişmiş Güvenlik özelliklerini GitHub yapılandırma
- Azure DevOps için GitHub Gelişmiş Güvenliği hakkında bilgi edinin