DEV Community

Raphael Borges
Raphael Borges

Posted on

Você já conhece o Digestabot?

Em resumo, o Digestabot é uma GitHub Action desenvolvida pela Chainguard para manter suas imagens sempre atualizadas, com o objetivo de minimizar os riscos de CVE (Vulnerabilidades Comuns e Exposições, do inglês "Common Vulnerabilities and Exposures").

Utilizando o padrão "tag+digest", a Action atualiza a imagem em uso e abre um Pull Request (PR) para que o usuário faça o merge com a(s) versão(ões) mais recente(s) da(s) imagem(ns) nao só da Chainguard, mas também de qualquer outro registry utilizado no repositório.

Algumas configurações às quais você deve estar atento ao usar o Digestabot:

  • Suas imagens devem seguir o padrão <repo>:<tag>@sha256:<digest>. Por exemplo, cgr.dev/chainguard/nginx:latest@sha256:81bed54c9e507503766c0f8f030f869705dae486f37c2a003bb5b12bcfcc713f.

  • É necessário autorizar o GitHub Actions para criar Pull Requests na aba Settings -> Actions marcando a opção Allow GitHub Actions to create and approve pull requests.

Para utilizar o Digestabot, vamos criar o arquivo digestabot.yml em .github/workflows

name: Image digest update

on:
  workflow_dispatch:
  schedule:
    # Agendado para rodar todos os dias as 00:00
    - cron: "0 0 * * *"

jobs:
  image-update:
    name: Image digest update
    runs-on: ubuntu-latest

    permissions:
      contents: write # Permissão para escrever no repositório
      pull-requests: write # Permissão para abrir PRs
      id-token: write # Necessário para solicitar o JWT (JSON Web Token)

    steps:
    - uses: actions/checkout@v4
    - uses: chainguard-dev/digestabot@v1.0.2
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        signoff: true # Adiciona o campo email ao commit  
        author: update-bot # Define o autor do commit
        committer: update-bot@example.com # Define o email do autor do commit
        labels-for-pr: automated pr, kind/cleanup, release-note-none # Define as labels do PR
        branch-for-pr: update-digests # Define o nome da branch do PR
        title-for-pr: Update images digests # Define o título do PR
        commit-message: Update images digests # Define a mensagem do commit
Enter fullscreen mode Exit fullscreen mode

Para mais informações sobre o Digestabot acesse o link da Action no Marketplace ou o repositório oficial no GitHub..

Top comments (0)