Mulai cepat: Membuat alur kerja GitHub pemindaian keamanan
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: CodeQL
nama, "CodeQL" akan muncul dalam lencana status alur kerja.name: "CodeQL"
Simpul
on
menandakan 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
push
ataupull_request
terjadi padamain
cabang 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
jobs
menyusun 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
analyze
yang akan berjalan pada versi terbaru Ubuntu. - mendefinisikan
strategy
C# sebagailanguage
. github/codeql-action/init@v1
Tindakan GitHub digunakan untuk menginisialisasi CodeQL.github/codeql-action/autobuild@v1
GitHub Action membangun proyek .NET.github/codeql-action/analyze@v1
Tindakan 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 |
---|---|---|