# Personalizando sua configuração de ação de revisão de dependência

Saiba como adicionar uma personalização básica à sua configuração de ação de revisão de dependência.

## Introduction

O ação de revisão de dependência verifica seus pull requests em busca de alterações nas dependências e sinaliza um erro caso alguma nova dependência tenha vulnerabilidades conhecidas. Após a instalação, se a execução do fluxo de trabalho for marcada como necessária, a mesclagem das solicitações de pull que introduzem pacotes vulneráveis conhecidos será impedida.

Este guia mostra como adicionar três personalizações muito comuns: builds com falha com base no nível de gravidade da vulnerabilidade, licença de dependência e escopo.

### Pré-requisitos

Este guia supõe que:

* Verifique se o grafo de dependência está habilitado para o repositório. Para obter mais informações, consulte [Habilitar o grafo de dependência](/pt/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/enable-dependency-graph#enabling-the-dependency-graph-for-a-repository).
* GitHub Actions está habilitado para o repositório. Para obter mais informações, consulte [Gerenciando configurações de GitHub Actions para um repositório](/pt/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository).

## Etapa 1: Adicionando a ação de revisão de dependência

Nesta etapa, adicionaremos o fluxo de trabalho de revisão de dependência ao seu repositório.

1. Em GitHub, acesse a página principal do repositório.
2. No nome do repositório, clique em **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Actions**.

   ![Captura de tela das guias do repositório "github/docs". A guia "Ações" está realçada com um contorno laranja.](/assets/images/help/repository/actions-tab-global-nav-update.png)
3. Em "Comece a usar GitHub Actions", localize a categoria "Segurança" e depois clique em **Ver tudo**.
4. Encontre "Revisão de dependência" e clique em **Configurar**. Como alternativa, pesquise "Revisão de dependência" usando a barra de pesquisa.
5. Isso abrirá o arquivo de fluxo de trabalho GitHub Actions da revisão de dependências, `dependency-review.yml`. Ele deve conter o seguinte:

   ```yaml copy
   name: 'Dependency review'
   on:
     pull_request:
       branches: [ "main" ]

   permissions:
     contents: read

   jobs:
     dependency-review:
       runs-on: ubuntu-latest
       steps:
         - name: 'Checkout repository'
           uses: actions/checkout@v6
         - name: 'Dependency Review'
           uses: actions/dependency-review-action@v4
   ```

## Etapa 2: Alterando a gravidade

Você pode impedir que código contendo dependências vulneráveis seja mesclado, definindo ação de revisão de dependência como obrigatório. No entanto, vale a pena observar que o bloqueio de vulnerabilidades de baixo risco pode ser muito restritivo em algumas circunstâncias. Nessa etapa, vamos alterar a gravidade da vulnerabilidade que fará com que haja falha em um build com a opção `fail-on-severity`.

1. Adicione a opção `fail-on-severity` ao final do arquivo `dependency-review.yml`:

   ```yaml copy
         - name: 'Dependency Review'
           uses: actions/dependency-review-action@v4
           with:
             fail-on-severity: moderate
   ```

## Etapa 3: Adicionando licenças a serem bloqueadas

As vulnerabilidades não são o único motivo pelo qual você pode querer bloquear uma dependência. Se a sua organização tiver restrições sobre os tipos de licenças que podem ser usados, você poderá usar a revisão de dependência para impor essas políticas com a opção `deny-licenses`. Nesta etapa, vamos adicionar uma personalização que interromperá o build se a solicitação de pull introduzir uma dependência que contenha a licença LGPL-2.0 ou BSD-2-Clause.

1. Adicione a opção `deny-licenses` ao final do arquivo `dependency-review.yml`:

   ```yaml copy
         - name: 'Dependency Review'
           uses: actions/dependency-review-action@v4
           with:
             fail-on-severity: moderate
             deny-licenses: LGPL-2.0, BSD-2-Clause
   ```

## Etapa 4: Adicionando escopos

Por fim, vamos usar a opção `fail-on-scopes` para impedir a mesclagem de dependências vulneráveis em ambientes de implantação específicos. Neste caso, o ambiente de desenvolvimento.

1. Adicione a opção `fail-on-scopes` ao final do arquivo `dependency-review.yml`:

   ```yaml copy
         - name: 'Dependency Review'
           uses: actions/dependency-review-action@v4
           with:
             fail-on-severity: moderate
             deny-licenses: LGPL-2.0, BSD-2-Clause
             fail-on-scopes: development
   ```

## Etapa 5: Verificar a configuração

O arquivo `dependency-review.yml` deve estar assim agora:

```yaml copy

name: 'Dependency Review'
on: [pull_request]

permissions:
  contents: read

jobs:
  dependency-review:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout Repository'
        uses: actions/checkout@v6
      - name: Dependency Review
        uses: actions/dependency-review-action@v4
        with:
          fail-on-severity: moderate
          deny-licenses: LGPL-2.0, BSD-2-Clause
          fail-on-scopes: development
```

Você pode usar essa configuração como um modelo para suas próprias configurações personalizadas.

Para obter mais informações sobre todas as opções de personalização possíveis, consulte o arquivo [LEIAME](https://github.com/actions/dependency-review-action/blob/main/README.md#configuration) na documentação da ação de revisão de dependência.

## Práticas recomendadas

Ao personalizar sua configuração de revisão de dependência, há algumas melhores práticas que você pode seguir:

* Escolha listas de bloqueio em vez de listas de permissões. É mais prático compilar uma lista das dependências "muito ruins" que você deseja bloquear do que criar uma lista inclusiva de todas as bibliotecas que deseja permitir.

* Escolha bloquear licenças em vez de especificar quais licenças permitir. Há uma grande variedade de licenças disponíveis. Por isso, geralmente é mais prático excluir aquelas que você sabe que são incompatíveis com as licenças atuais do que compilar uma lista completa de licenças compatíveis.

* Escolha `fail-on-severity`. Ter falha com base na gravidade de uma vulnerabilidade é uma boa maneira de equilibrar a necessidade de segurança com a necessidade de criar experiências de baixo atrito para os desenvolvedores.

## Leitura adicional

* [Configurando a ação de revisão de dependências](/pt/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action)
* [Como aplicar a revisão de dependências em uma organização](/pt/code-security/how-tos/secure-at-scale/configure-organization-security/configure-specific-tools/enforce-dependency-review)