Solucionar problemas de falhas quando Dependabot dispara fluxos de trabalho existentes
Etapas para solucionar problemas com o Dependabot em fluxos de trabalho no GitHub Actions
Algumas dicas de solução de problemas são fornecidos neste artigo. Você também pode conferir Sintaxe de fluxo de trabalho para o GitHub Actions.
Acessando segredos
Quando um evento de Dependabot aciona um fluxo de trabalho, os únicos segredos disponíveis para o fluxo de trabalho são segredos de Dependabot. Os segredos de GitHub Actions não estão disponíveis. Portanto, você deve armazenar todos os segredos que são usados por um fluxo de trabalho acionado por eventos Dependabot como segredos de Dependabot. Para saber mais, confira Configurando o acesso a registros privados para Dependabot.
Os segredos do Dependabot são adicionados ao contexto secrets e referenciados usando exatamente a mesma sintaxe dos segredos do GitHub Actions. Para saber mais, confira Usar segredos em ações do GitHub.
Se você tiver um fluxo de trabalho que será acionado por Dependabot e também por outros atores, a solução mais simples é armazenar o token com as permissões necessárias em uma ação e em um segredo Dependabot com nomes idênticos. Em seguida, o fluxo de trabalho pode incluir uma única chamada para esses segredos. Se o segredo de Dependabot tiver um nome diferente, use condições para especificar os segredos corretos para diferentes atores.
Para obter exemplos que usam condições, confira Automatizando o Dependabot com GitHub Actions.
Para acessar um registro de contêiner privado na AWS com um nome de usuário e uma senha, um fluxo de trabalho precisa incluir um segredo para username e password.
Neste exemplo, quando o Dependabot dispara o fluxo de trabalho, os segredos do Dependabot com os nomes READONLY_AWS_ACCESS_KEY_ID e READONLY_AWS_ACCESS_KEY são usados. Se outro ator disparar o fluxo de trabalho, as ações secretas com esses nomes serão usadas.
# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.
# São fornecidas por terceiros e regidas por
# termos de serviço, política de privacidade e suporte separados
# online.
name: CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Login to private container registry for dependencies
uses: docker/login-action@3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c
with:
registry: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
username: ${{ secrets.READONLY_AWS_ACCESS_KEY_ID }}
password: ${{ secrets.READONLY_AWS_ACCESS_KEY }}
- name: Build the Docker image
run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)
# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.
# São fornecidas por terceiros e regidas por
# termos de serviço, política de privacidade e suporte separados
# online.
name: CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Login to private container registry for dependencies
uses: docker/login-action@3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c
with:
registry: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
username: ${{ secrets.READONLY_AWS_ACCESS_KEY_ID }}
password: ${{ secrets.READONLY_AWS_ACCESS_KEY }}
- name: Build the Docker image
run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)
Como alterar as permissões GITHUB_TOKEN
Por padrão, os fluxos de trabalho do GitHub Actions disparados pelo Dependabot obtêm um GITHUB_TOKEN com permissões somente leitura. Use a chave permissions no fluxo de trabalho para aumentar o acesso ao token:
name: CI on: pull_request # Set the access for individual scopes, or use permissions: write-all permissions: pull-requests: write issues: write ... jobs: ...
name: CI
on: pull_request
# Set the access for individual scopes, or use permissions: write-all
permissions:
pull-requests: write
issues: write
...
jobs:
...
Para saber mais, confira Usar GITHUB_TOKEN para autenticação em fluxos de trabalho.
Reexecutando manualmente um fluxo de trabalho
Quando você executar manualmente um fluxo de trabalho do Dependabot outra vez, ele será executado com os mesmos privilégios de antes, mesmo que o usuário que iniciou a nova execução tenha privilégios diferentes. Para saber mais, confira Reexecutando fluxos de trabalho e tarefas.