Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Copilot Autofix adalah fitur GitHub Advanced Security yang didukung AI untuk Azure DevOps yang menghasilkan perbaikan yang disarankan untuk pemberitahuan pemindaian kode. Ketika CodeQL mengidentifikasi kerentanan atau kesalahan pengkodean, Anda dapat menghasilkan perbaikan untuk pemberitahuan langsung dari tab Keamanan Tingkat Lanjut. Copilot Autofix menggunakan agen pengodean Copilot untuk menghasilkan perbaikan dan membuka permintaan pull dengan perubahan yang diusulkan, sehingga Anda dapat meninjau, mengedit, dan menggabungkannya melalui alur kerja permintaan pull normal Anda.
Note
Fitur ini berada dalam pratinjau publik terbatas. Microsoft saat ini tidak menerima pengguna tambahan untuk pratinjau.
Fungsionalitas mungkin berubah atau dihapus tanpa pemberitahuan. Fitur pratinjau tidak memiliki Perjanjian Tingkat Layanan (SLA) dan dukungan terbatas.
GitHub Advanced Security untuk Azure DevOps berfungsi dengan Azure Repos. Untuk menggunakan GitHub Advanced Security dengan repositori GitHub, lihat GitHub Advanced Security.
Prerequisites
| Kategori | Requirements |
|---|---|
| Permissions | - Untuk melihat ringkasan semua peringatan untuk repositori: izin Kontributor untuk repositori. - Untuk mengabaikan peringatan di Advanced Security: izin Project administrator. - Untuk mengelola izin di Keamanan Tingkat Lanjut: Anggota grup Administrator Koleksi Proyek atau Pengaturan Keamanan Lanjutan: mengelola pengaturan dengan izin yang diatur pada Izinkan. |
Untuk informasi selengkapnya tentang izin Keamanan Tingkat Lanjut, lihat Mengelola izin Keamanan Tingkat Lanjut.
- Pemindaian kode dikonfigurasi untuk repositori Anda, menggunakan penyiapan default atau penyiapan tingkat lanjut.
- Setidaknya satu pemberitahuan pemindaian kode CodeQL.
Tentang Copilot Autofix
Copilot Autofix menggabungkan kekuatan analisis CodeQL dengan model bahasa besar yang mendukung agen pengodean Copilot. Saat Anda membuat perbaikan untuk pemberitahuan pemindaian kode yang didukung, Copilot Autofix menganalisis pemberitahuan dan kode di sekitarnya, lalu membuka permintaan pull yang berisi:
- Perubahan kode yang disarankan yang mengatasi kerentanan yang mendasar.
- Deskripsi pemberitahuan yang diperbaiki, termasuk ID pemberitahuan, tingkat keparahan, dan ringkasan perubahan.
Karena perbaikan yang disarankan mempertimbangkan konteks yang lebih luas dari basis kode Anda, perubahan dapat mencakup lebih dari satu baris tempat pemberitahuan dimunculkan, dan dapat menyertakan perubahan ke file lain jika diperlukan.
Note
Data yang ditangani oleh Copilot Autofix tidak digunakan untuk melatih model bahasa besar (LLM).
Important
Saran Autofix Copilot dihasilkan oleh model AI dan tidak dijamin akurat, lengkap, atau aman. Selalu tinjau permintaan pull dengan hati-hati, validasi bahwa permintaan tersebut menyelesaikan pemberitahuan tanpa memperkenalkan masalah baru, dan menguji perubahan Anda sebelum menggabungkannya.
Bahasa yang didukung
Copilot Autofix mendukung bahasa yang sama dengan yang dianalisis CodeQL untuk pemindaian kode, termasuk C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, dan Swift. Untuk daftar bahasa yang didukung CodeQL saat ini, lihat Dukungan bahasa dan kueri.
Billing
Copilot Autofix disertakan dengan lisensi GitHub Advanced Security for Azure DevOps Anda. Membuat perbaikan menggunakan kredit AI dari meter penagihan Azure milik organisasi Anda.
Setiap pembuatan perbaikan menggunakan token, yang mencakup token input untuk konteks kode yang dikirim ke model, token output untuk perubahan yang disarankan, dan token cache yang menggunakan kembali konteks yang ada.
Agar penagihan tetap sederhana, token ini dikonversi menjadi unit standar yang disebut kredit AI GitHub, di mana 1 kredit sama dengan $0,01 USD. Biaya ditagihkan ke langganan Azure yang ditautkan ke organisasi Azure DevOps Anda dan muncul sebagai meter terpisah dalam Azure Cost Management.
Biaya setiap perbaikan bervariasi menurut ukuran konteks kode di sekitarnya dan kompleksitas perubahan.
Untuk memantau biaya harian Anda, buka Langganan>Manajemen Biaya>Analisis biaya di portal Azure.
Aktifkan Copilot Autofix
Anda dapat mengaktifkan Copilot Autofix di tingkat organisasi, proyek, atau repositori. Saat Anda mengaktifkan Autofix pada cakupan yang lebih luas, pengaturan berlaku untuk semua repositori dalam cakupan tersebut. Pilih tempat untuk mengonfigurasi Autofix berdasarkan repositori yang ingin Anda terapkan pengaturannya:
| Ruang lingkup | Tempat mengonfigurasi Autofix |
|---|---|
| Organisasi | Pilih Pengaturan organisasi>Repositori untuk mengaktifkan Autofix untuk semua repositori di organisasi. |
| Proyek | Pilih Pengaturan proyek>Repositori>Semua Repositori untuk mengaktifkan Autofix untuk semua repositori di proyek. |
| Penyimpanan | Pilih pengaturan Project>Repositori, lalu pilih repositori untuk mengaktifkan Autofix hanya untuk repositori tersebut. |
Untuk mengaktifkan Copilot Autofix:
- Masuk ke organisasi Azure DevOps Anda (
https://dev.azure.com/{yourorganization}). - Buka halaman pengaturan untuk lingkup organisasi, proyek, atau repositori yang ingin Anda konfigurasi.
- Di bagian Keamanan Tingkat Lanjut , buka panel fitur Keamanan Kode .
- Pilih kotak centang Autofix untuk pemberitahuan pemindaian kode untuk membuat perbaikan otomatis untuk pemberitahuan pemindaian kode, yang dihasilkan oleh agen pengodean Copilot.
- Pilih Terapkan untuk menyimpan perubahan.
CodeQL harus sudah menjalankan dan menghasilkan pemberitahuan untuk repositori. Untuk informasi selengkapnya, lihat Siapkan pemindaian kode dan Konfigurasi fitur Keamanan Tingkat Lanjut GitHub.
Buat perbaikan untuk peringatan
Setelah mengaktifkan Copilot Autofix, Anda dapat menghasilkan perbaikan dari peringatan pemindaian kode yang didukung.
- Pilih Repositori>Advanced Security.
- Pilih tab Pemindaian kode , lalu pilih pemberitahuan untuk membuka tampilan detailnya.
- Tinjau Lokasi, Deskripsi, dan Rekomendasi pemberitahuan untuk memahami temuan tersebut.
- Pilih Hasilkan perbaikan.
Saat Copilot Autofix berfungsi pada perbaikan, tampilan detail pemberitahuan menunjukkan bahwa perbaikan sedang berlangsung. Copilot Autofix membuat pull request ketika perbaikannya siap.
Copilot Autofix menghasilkan perbaikan dan membuka pull request dari cabang yang diberi nama copilot-autofix/.... Permintaan pull diberi label dengan tag Autofix Copilot, yang dapat Anda gunakan untuk mengidentifikasi permintaan pull Autofix dalam daftar permintaan pull.
Untuk pemberitahuan CodeQL, permintaan pull muncul secara otomatis di bawah Permintaan pull terkait pada tampilan detail pemberitahuan dan terus diperbarui saat pembuatan dan kemajuan penyelesaian, sehingga Anda tidak perlu merefresh halaman.
Jika Copilot Autofix tidak menghasilkan perubahan kode apa pun untuk pemberitahuan, itu tidak membuat cabang atau permintaan pull, dan tidak menautkan permintaan pull pada tampilan detail pemberitahuan. Dalam hal ini, perbaiki pemberitahuan secara manual. Untuk informasi selengkapnya, lihat Perbaikan tidak tersedia.
Tinjau dan gabungkan perbaikan
Pull request yang dibuka oleh Copilot Autofix berfungsi seperti pull request Azure Repos lainnya. Deskripsinya merangkum peringatan yang ditangani oleh perbaikan tersebut.
Label Copilot Autofix mengidentifikasi permintaan penarikan perbaikan otomatis.
- Buka pull request dari bagian Related pull requests pada pemberitahuan, atau dari Repositori>Pull requests.
- Tinjau perubahan yang diusulkan di tab File di semua file yang terpengaruh.
- Edit perubahan jika Anda perlu mencocokkan gaya kode, konvensi penamaan, atau persyaratan proyek Anda.
- Setujui dan selesaikan pull request melalui alur kerja peninjauan seperti biasa.
Setelah permintaan pull bergabung dan eksekusi pemindaian kode berikutnya selesai, pemberitahuan ditutup secara otomatis jika perbaikan menghapus kerentanan yang mendasarinya.
Tip
Perbaikan yang dihasilkan adalah titik awal, bukan jawaban akhir. Perlakukan permintaan pull seperti perubahan lainnya: tinjau, uji, dan minta peninjau tambahan sesuai kebutuhan sebelum Anda menggabungkan.
Memecahkan masalah Copilot Autofix
Perbaikan dibuat tetapi tidak dapat diterapkan atau didorong
Copilot Autofix menggunakan noreply@dev.azure.com sebagai email penulis commit. Jika kebijakan validasi email penulis commit tidak mengizinkan alamat ini, Copilot Autofix dapat menghasilkan perubahan kode tetapi tidak dapat melakukan commit atau push untuk membuat pull request.
Tampilan detail peringatan menampilkan pesan kesalahan yang mengidentifikasi alamat email penulis commit yang diblokir.
Tambahkan noreply@dev.azure.com ke pola email yang diizinkan dalam kebijakan validasi email penulis commit:
- Pilih Pengaturan proyek >Repositori.
- Pilih Semua Repositori untuk memperbarui kebijakan tingkat proyek, atau pilih repositori yang memiliki kebijakan.
- Pilih Kebijakan.
- Di bawah Kebijakan Repositori, temukan Terapkan validasi email pembuat.
- Tambahkan
noreply@dev.azure.comke pola email yang diizinkan. - Kembali ke pemberitahuan pemindaian kode dan pilih Coba lagi perbaikan.
Sebuah eksekusi gagal
Jika eksekusi Autofix Copilot tidak dapat diselesaikan, peringatan akan menampilkan status kegagalan yang menonjol sehingga Anda dapat dengan cepat melihat bahwa eksekusi tersebut tidak berhasil. Dari status kegagalan, Anda dapat mencoba kembali eksekusi untuk menghasilkan perbaikan baru.
Eksekusi dapat gagal karena alasan sementara, atau ketika eksekusi tidak menghasilkan perubahan kode yang dapat digunakan. Coba lagi eksekusi untuk menghasilkan perbaikan lagi.
Perbaikan tidak tersedia
Copilot Autofix tidak dapat menghasilkan perbaikan untuk setiap pemberitahuan. Perbaikan mungkin tidak tersedia ketika:
- Jenis pemberitahuan saat ini tidak didukung oleh Copilot Autofix.
- Copilot menentukan bahwa peringatan tersebut mungkin merupakan positif palsu.
- Kueri kustom atau alat pihak ketiga, bukan CodeQL, menghasilkan pemberitahuan.
- Copilot Autofix berjalan tetapi tidak menghasilkan perubahan kode apa pun. Dalam hal ini, tidak ada cabang atau pull request yang dibuat.
Jika Copilot Autofix menentukan bahwa pemberitahuan bisa berupa positif palsu dan tidak menghasilkan perubahan apa pun, tampilan detail pemberitahuan menunjukkan hasilnya. Anda dapat meninjau eksekusi atau mengulangi perbaikan.
Saat perbaikan tidak tersedia, gunakan bagian Rekomendasi dan Contoh pemberitahuan untuk memulihkannya atau menutup pemberitahuan secara manual. Untuk informasi selengkapnya, lihat detail Pemberitahuan .