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
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"
A raiz do seu repositório irá ficar assim:
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
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:
Pronto, seu projeto agora atualiza todas suas dependências automaticamente!
Top comments (0)