Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste início rápido, você aprenderá a criar um fluxo de trabalho do GitHub do CodeQL para automatizar a descoberta de vulnerabilidades em sua base de código do .NET.
No CodeQL, o código é tratado como dados. Vulnerabilidades de segurança, bugs e outros erros são modelados como consultas que podem ser executadas em bancos de dados extraídos do código.
Pré-requisitos
- Uma conta do GitHub.
- Um repositório de código-fonte do .NET.
Criar um arquivo do fluxo de trabalho
No repositório do GitHub, adicione um novo arquivo YAML ao diretório .github/workflows. Escolha um nome de arquivo significativo, algo que indique claramente o que o fluxo de trabalho se destina a fazer. Para obter mais informações, confira Arquivo do fluxo de trabalho.
Importante
O GitHub exige que os arquivos que compõem o fluxo de trabalho sejam colocados no diretório .github/workflows.
Os arquivos do fluxo de trabalho normalmente definem uma composição de uma ou mais ações do GitHub por meio do jobs.<job_id>/steps[*]. Para obter mais informações, confira Sintaxe de fluxo de trabalho do GitHub Actions.
Crie um novo arquivo chamado codeql-analysis.yml e copie e cole o seguinte conteúdo YML nele:
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
Na composição anterior do fluxo de trabalho:
O
name: CodeQLdefine o nome, "CodeQL" aparecerá nas notificações de status do fluxo de trabalho.name: "CodeQL"O nó
onindica os eventos que disparam o fluxo de trabalho:on: push: branches: [main] paths: - '**.cs' - '**.csproj' pull_request: branches: [main] paths: - '**.cs' - '**.csproj' schedule: - cron: '0 8 * * 4'- Disparado quando um
pushoupull_requestocorrem no branchmainquando todos os arquivos alterados terminam com as extensões de arquivo .cs ou .csproj. - Como um trabalho cron (em um agendamento)— para ser executado às 8:00 UTC todas as quintas-feiras.
- Disparado quando um
O nó
jobscompila as etapas para o fluxo de trabalho a ser realizado.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- Há um único trabalho, chamado
analyze, que será executado na versão mais recente do Ubuntu. strategydefine a C# comolanguage.- A ação do GitHub
github/codeql-action/init@v1é usada para inicializar o CodeQL. - A ação do GitHub
github/codeql-action/autobuild@v1cria o projeto .NET. - A ação do GitHub
github/codeql-action/analyze@v1executa a análise de CodeQL.
- Há um único trabalho, chamado
Para obter mais informações, confira GitHub Actions: Configurar a verificação de código.
Criar uma notificação de status de fluxo de trabalho
É comum que os repositórios do GitHub tenham um arquivo README.md na raiz do diretório do repositório. Da mesma forma, é bom relatar o status mais recente para vários fluxos de trabalho. Todos os fluxos de trabalho podem gerar uma notificação de status, que são visualmente atraentes no arquivo README.md. Para adicionar a notificação de status ao fluxo de trabalho:
No repositório do GitHub, selecione a opção de navegação Ações.
Todos os fluxos de trabalho do repositório são exibidos no lado esquerdo. Selecione o fluxo de trabalho desejado e o botão de reticências (...).
- O botão de reticências (...) expande as opções de menu para o fluxo de trabalho selecionado.
Selecione a opção no menu Criar notificação de status.
Selecione o botão Copiar Markdown da notificação de status.
Cole o Markdown no arquivo README.md, salve o arquivo, faça commit das alterações e envie por push.
Para obter mais informações, confira Como adicionar uma notificação de status do fluxo de trabalho.
Exemplo de notificação de status de fluxo de trabalho de CodeQL
| Em aprovação | Com falha | Sem status |
|---|---|---|

