DEV Community

Eduardo Florêncio
Eduardo Florêncio

Posted on • Edited on

Como atualizar automaticamente as dependências do seu repositório com Dependabot no Github [PT/BR]

Você já sofreu com erros de dependencias desatualizadas depois de instalar o projeto?
Ou, usando Dependabot, você deixou acumular alertas de atualizações por meses?

Então aqui vai um pequeno tutorial que vai te ajudar!

Mas primeiro…

O que é o Dependabot?

De acordo com sua própria descrição, Dependabot é um bot que nos ajuda em manter as dependências dos nossos projetos atualizadas. Todo dia, ele checa se todas as dependências estão desatualizadas e abre uma PR individualmente toda vez que encontrar. Você então faz o review, o merge, e volta a trabalhar com o projeto mais seguro.

Como instalar o Dependabot no meu repositório

Dentro do seu repositório no Github, vá em:
Settings > [ Security ] > _Code security and analysis
_
e então, ative o Dependabot version updates.
Clique em Configure e então o código que você verá será mais o menos assim:

version: 2
updates:
  - package-ecosystem: npm
    directory: '/'
    schedule:
      interval: daily
      time: '02:00'
    open-pull-requests-limit: 10
Enter fullscreen mode Exit fullscreen mode

Explicando o que significa, ele irá diariamente verificar as dependências as 2h00 (UTC 0).

Aqui uma configuração BONUS caso você queira alterar a branch em que ele irá abrir as PRs e/ou alterar as labels dessas PRs. Você pode inserir o código no fim do código acima.

    # BONUS
    # Raise pull requests for version updates
    # to pip against the `develop` branch
      target-branch: "dev"
    # Labels on pull requests for version updates only
          labels:
          - "dependecies"
Enter fullscreen mode Exit fullscreen mode

A raiz do seu repositório irá ficar assim:

Repository tree

Pronto, seu projeto já está com o Dependabot configurado. Então diariamente será analisado se alguma dependência esta desatualizada.

Só tem um problema: se você não fizer o review e o merge, ele continua sendo apenas uma PR.

Como automatizar o merge do Dependabot

Com o Github Actions nós conseguimos automatizar esse processo de "mergear" as PRs criadas pelo Dependabot.

Vá para Actions dentro do repositorio Github do projeto e depois clique em New Workflow.
Existem vários modelos de Actions prontos. Você pode escolher qualquer um e então delete o conteúdo e cole esse código:

name: 'Dependabot Automerge - Action'

on:
  pull_request:

permissions:
  pull-requests: write
  issues: write

jobs:
  worker:
    runs-on: ubuntu-latest

    if: github.actor == 'dependabot[bot]'
    steps:
      - name: 'Wait for status checks'
        id: waitforstatuschecks
        uses: WyriHaximus/github-action-wait-for-status@v1.2.0
        with:
          ignoreActions: worker,WIP
          checkInterval: 60
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: 'Automerge'
        uses: pascalgn/automerge-action@v0.11.0
        if: steps.waitforstatuschecks.outputs.status == 'success'
        env:
          MERGE_LABELS: ''
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          MERGE_DELETE_BRANCH: true
Enter fullscreen mode Exit fullscreen mode

Com isso, toda vez que um pull request for aberto pelo Dependabot, será verificado primeiramente se não houve nenhum conflito no projeto com a atualização dessa dependência e dar merge caso tudo esteja certo.

Seu repositório ficará assim:

Repository tree with all config

Pronto, seu projeto agora atualiza todas suas dependências automaticamente!

Top comments (0)