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çãoAllow 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
Para mais informações sobre o Digestabot acesse o link da Action no Marketplace ou o repositório oficial no GitHub..
Top comments (0)