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.
Dalam mulai cepat ini, Anda akan mempelajari cara membuat alur kerja CodeQL GitHub untuk mengotomatiskan penemuan kerentanan di basis kode .NET Anda.
Di CodeQL, kode diperlakukan sebagai data. Kerentanan keamanan, bug, dan kesalahan lainnya dimodelkan sebagai kueri yang dapat dieksekusi terhadap database yang diekstraksi dari kode.
Prasyarat
- Akun GitHub.
- Repositori kode sumber .NET.
Membuat file alur kerja
Di repositori GitHub, tambahkan file YAML baru ke direktori .github/workflows . Pilih nama file yang bermakna, sesuatu yang akan dengan jelas menunjukkan apa yang dimaksudkan alur kerja. Untuk informasi selengkapnya, lihat File alur kerja.
Penting
GitHub mengharuskan file komposisi alur kerja ditempatkan dalam direktori .github/workflows .
File alur kerja biasanya menentukan komposisi satu atau beberapa GitHub Action melalui jobs.<job_id>/steps[*]. Untuk informasi selengkapnya, lihat Sintaks alur kerja untuk Tindakan GitHub.
Buat file baru bernama codeql-analysis.yml, salin dan tempel konten YML berikut ke dalamnya:
name: "CodeQL"
on:
push:
branches: [main]
paths:
- '**.cs'
- '**.csproj'
pull_request:
branches: [main]
paths:
- '**.cs'
- '**.csproj'
schedule:
- cron: '0 8 * * 4'
jobs:
analyze:
name: analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: ['csharp']
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 2
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
- name: Autobuild
uses: github/codeql-action/autobuild@v1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
Dalam komposisi alur kerja sebelumnya:
menentukan
name: CodeQLnama, "CodeQL" akan muncul dalam lencana status alur kerja.name: "CodeQL"Simpul
onmenandakan peristiwa yang memicu alur kerja:on: push: branches: [main] paths: - '**.cs' - '**.csproj' pull_request: branches: [main] paths: - '**.cs' - '**.csproj' schedule: - cron: '0 8 * * 4'- Dipicu ketika
pushataupull_requestterjadi padamaincabang di mana setiap file berubah berakhir dengan ekstensi file .cs atau .csproj . - Sebagai pekerjaan cron (sesuai jadwal)—untuk berjalan pada pukul 08.00 UTC setiap hari Kamis.
- Dipicu ketika
Simpul
jobsmenyusun langkah-langkah untuk diambil alur kerja.jobs: analyze: name: analyze runs-on: ubuntu-latest strategy: fail-fast: false matrix: language: ['csharp'] steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 2 - run: git checkout HEAD^2 if: ${{ github.event_name == 'pull_request' }} - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: languages: ${{ matrix.language }} - name: Autobuild uses: github/codeql-action/autobuild@v1 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1- Ada satu pekerjaan, bernama
analyzeyang akan berjalan pada versi terbaru Ubuntu. - mendefinisikan
strategyC# sebagailanguage. github/codeql-action/init@v1Tindakan GitHub digunakan untuk menginisialisasi CodeQL.github/codeql-action/autobuild@v1GitHub Action membangun proyek .NET.github/codeql-action/analyze@v1Tindakan GitHub melakukan analisis CodeQL.
- Ada satu pekerjaan, bernama
Untuk informasi selengkapnya, lihat Tindakan GitHub: Mengonfigurasi pemindaian kode.
Membuat lencana status alur kerja
Nomenklatur umum bagi repositori GitHub untuk memiliki file README.md di akar direktori repositori. Demikian juga, ada baiknya untuk melaporkan status terbaru untuk berbagai alur kerja. Semua alur kerja dapat menghasilkan lencana status, yang menarik secara visual dalam file README.md . Untuk menambahkan lencana status alur kerja:
Dari repositori GitHub pilih opsi navigasi Tindakan .
Semua alur kerja repositori ditampilkan di sisi kiri, pilih alur kerja yang diinginkan dan tombol elipsis (...).
- Tombol elipsis (...) memperluas opsi menu untuk alur kerja yang dipilih.
Pilih opsi menu Buat lencana status.
Pilih tombol Salin markdown lencana status.
Tempelkan Markdown ke dalam file README.md , simpan file, terapkan, dan dorong perubahan.
Untuk informasi selengkapnya, lihat Menambahkan lencana status alur kerja.
Contoh lencana status alur kerja CodeQL
| Lulus | Gagal | Tidak ada status |
|---|---|---|

