Ir para o conteúdo

🧪 Revisão de Dependências

Adicionar Verificações de Segurança

A revisão de dependências ajuda você a entender as mudanças nas dependências e o impacto de segurança dessas mudanças em cada pull request. Ela fornece uma visualização facilmente compreensível das alterações de dependências com um diff detalhado na guia "Arquivos Alterados" de um pull request. A revisão de dependências informa você sobre:

  • Quais dependências foram adicionadas, removidas ou atualizadas, juntamente com as datas de lançamento.
  • Quantos projetos usam esses componentes.
  • Dados de vulnerabilidade para essas dependências.

Revisar dependência


Exercício: Automatizar a Aplicação da Revisão de Dependências


Entender as Configurações da Revisão de Dependências

.github/dependency-review-config.yml
fail-on-severity: moderate #(1)!

comment-summary-in-pr: always #(2)!

allow-licenses: #(3)!
  - MIT
  - GPL-3.0
  - BSD-3-Clause

deny-licenses: #(4)!
  - LGPL-2.0
  - BSD-2-Clause

allow-ghsas: #(5)!
  - GHSA-abcd-1234-5679
  - GHSA-efgh-1234-5679

fail-on-scopes: #(6)!
  - development
  - runtime
  - unknown
  1. Valores possíveis: "critical", "high", "moderate", "low"
  2. Publicar resumo como um comentário no respectivo pull request
  3. Permitir apenas as licenças listadas (opcional). Valores possíveis: Quaisquer valores spdx_id de https://docs.github.com/pt/rest/licenses
  4. Bloquear o pull request nestas licenças (opcional). Valores possíveis: Quaisquer valores spdx_id de https://docs.github.com/pt/rest/licenses

    ⚠ Você só pode incluir uma dessas duas opções: allow-licenses e deny-licenses.

  5. Ignorar esses IDs do Banco de Dados de Avisos do GitHub durante a detecção (opcional). Valores possíveis: Qualquer ID válido do Banco de Dados de Avisos do GitHub de https://github.com/advisories

  6. Bloquear pull requests que introduzem vulnerabilidades nos escopos que correspondem a esta lista (opcional). Valores possíveis: "development", "runtime", "unknown"

Implementar Verificação de Revisão de Dependências

Abra o arquivo .github/workflows/continuous.integration.yml no editor e adicione o conteúdo destacado da seguinte forma:

.github/workflows/continuous.integration.yml
name: Run Checks on PR

on:
  pull_request:
    branches:
      - main

permissions:
  actions: write
  checks: write
  contents: read
  security-events: write
  pull-requests: write

env:
  CI: true
  SITE_DIR: site
  TETRIS_APP_HOST: "127.0.0.1"
  TETRIS_APP_PORT: "8080"
  TETRIS_APP_PATH: "github-devsecops-fundamentals"

jobs:
  quality-checks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - uses: actions/setup-python@v4
        with:
          python-version: 3.12
      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install Dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.ci.txt
          npm ci
          # Install browsers for running functional tests
          npx playwright install --with-deps chromium

      - name: Build
        run: |
          python -m mkdocs build --clean --strict --verbose --site-dir '${{ env.SITE_DIR }}'

      - name: Functional Test
        run: npx playwright test

      - name: Upload Functional Test Report
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: playwright-report
          path: playwright-report/
          retention-days: 30

  security-checks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Dependency Review
        uses: actions/dependency-review-action@v4
        with:
          config-file: >-
            ./.github/dependency-review-config.yml
Análise
  • Linhas 58 - 67

    Estamos utilizando o dependency-review-action@v4 configurado pelo arquivo dependency-review-config.yml. Foi adicionado no rodapé desta pagina recursos para facilitar o endentimento mais aprofundado.


Fazer commit e publicar suas alterações

Enviar suas alterações aplicará a verificação no pull request existente.

Você pode vincular suas alterações a uma issue

Lembre-se da issue que você criou anteriormente e seu respectivo número, você o usará para vincular suas alterações atuais à issue.

1
2
3
git add .
git commit -m "$(printf 'Criar um jogo de tetris para impulsionar o engajamento do site\n\n-Adicionar revisão de dependências como verificação de segurança\n\n- Resolve #<NÚMERO-DA-ISSUE>')"
git push origin feature/tetris-game

Quando você navegar até o repositório no GitHub e abrir o pull request existente, poderá confirmar que a verificação foi executada. Como não há violações de conformidade atualmente no PR, a verificação é bem-sucedida.

Mostrar resultado da revisão de dependências

Tarefa para casa

Você consegue tentar fazer com que a verificação de revisão de dependências falhe?


📚 Recursos