Rychlý start: Vytvoření pracovního postupu GitHubu pro kontrolu zabezpečení
V tomto rychlém startu se dozvíte, jak vytvořit pracovní postup GitHubu CodeQL, který automatizuje zjišťování ohrožení zabezpečení v základu kódu .NET.
V CodeQL se kód považuje za data. Ohrožení zabezpečení, chyby a další chyby jsou modelovány jako dotazy, které se dají spouštět na databázích extrahovaných z kódu.
Požadavky
- Účet GitHub.
- Úložiště zdrojového kódu .NET.
Vytvoření souboru pracovního postupu
V úložišti GitHub přidejte do adresáře .github/workflows nový soubor YAML. Zvolte smysluplný název souboru, který jasně indikuje, co má pracovní postup udělat. Další informace naleznete v souboru pracovního postupu.
Důležité
GitHub vyžaduje, aby se soubory složení pracovního postupu umístily do adresáře .github/workflows .
Soubory pracovního postupu obvykle definují složení jedné nebo více akcí GitHubu prostřednictvím .jobs.<job_id>/steps[*]
Další informace najdete v syntaxi pracovního postupu pro GitHub Actions.
Vytvořte nový soubor s názvem codeql-analysis.yml, zkopírujte a vložte do něj následující obsah YML:
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
V předchozím složení pracovního postupu:
Definuje
name: CodeQL
název CodeQL se zobrazí v odznácích stavu pracovního postupu.name: "CodeQL"
Uzel
on
označuje události, které aktivují pracovní postup:on: push: branches: [main] paths: - '**.cs' - '**.csproj' pull_request: branches: [main] paths: - '**.cs' - '**.csproj' schedule: - cron: '0 8 * * 4'
- Aktivuje se, když
push
ve větvi dojdepull_request
kemain
změně souborů, které končí .cs nebo příponou souboru .csproj . - Jako úlohu cron (podle plánu) – spuštění v 8:00 UTC každý čtvrtek.
- Aktivuje se, když
Uzel
jobs
sestaví kroky, které má pracovní postup provést.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
- Existuje jedna úloha s názvem
analyze
, která se spustí na nejnovější verzi Ubuntu. - Definuje
strategy
jazyk C# jako .language
- Akce GitHubu
github/codeql-action/init@v1
se používá k inicializaci CodeQL. - Akce
github/codeql-action/autobuild@v1
GitHubu sestaví projekt .NET. - Akce
github/codeql-action/analyze@v1
GitHubu provádí analýzu CodeQL.
- Existuje jedna úloha s názvem
Další informace najdete v tématu GitHub Actions: Konfigurace skenování kódu.
Odznak Vytvoření stavu pracovního postupu
Pro úložiště GitHubu se běžně používá README.md soubor v kořenovém adresáři úložiště. Stejně tak je dobré hlásit nejnovější stav pro různé pracovní postupy. Všechny pracovní postupy můžou generovat odznáček stavu, který je vizuálně atraktivní v souboru README.md . Přidání odznaku stavu pracovního postupu:
V úložišti GitHub vyberte možnost Navigace v akcích .
Všechny pracovní postupy úložiště se zobrazují na levé straně, vyberte požadovaný pracovní postup a tlačítko se třemi tečkami (...).
- Tlačítko se třemi tečkami (...) rozbalí možnosti nabídky pro vybraný pracovní postup.
Vyberte možnost nabídky Vytvořit stavový odznáček.
Vyberte tlačítko Kopírovat odznáček Markdown.
Vložte Markdown do souboru README.md , uložte soubor, potvrďte a nasdílejte změny.
Další informace najdete v tématu Přidání odznaku stavu pracovního postupu.
Ukázkový odznak stavu pracovního postupu CodeQL
Předávání | Selhání | Žádný stav |
---|---|---|