{"meta":{"title":"Automatizando o Dependabot com GitHub Actions","intro":"Exemplos de como você pode usar GitHub Actions para automatizar tarefas comuns Dependabot relacionadas.","product":"Qualidade de segurança e código","breadcrumbs":[{"href":"/pt/code-security","title":"Qualidade de segurança e código"},{"href":"/pt/code-security/tutorials","title":"Tutorials"},{"href":"/pt/code-security/tutorials/secure-your-dependencies","title":"Proteger suas dependências"},{"href":"/pt/code-security/tutorials/secure-your-dependencies/automate-dependabot-with-actions","title":"Automatizar o Dependabot com Ações"}],"documentType":"article"},"body":"# Automatizando o Dependabot com GitHub Actions\n\nExemplos de como você pode usar GitHub Actions para automatizar tarefas comuns Dependabot relacionadas.\n\n> \\[!NOTE] Este artigo explica como automatizar Dependabottarefas relacionadas usando GitHub Actions. Para obter mais informações sobre como executar Dependabot updates usando GitHub Actions, consulte [Dependabot nos executores do GitHub Actions](/pt/code-security/concepts/supply-chain-security/dependabot-on-actions) em vez disso.\n\nVocê pode usar GitHub Actions para executar tarefas automatizadas quando Dependabot cria solicitações de pull para atualizar dependências. Talvez isso seja útil se você quiser:\n\n* Dependabot Verifique se as solicitações de pull (atualizações de versão e atualizações de segurança) são criadas com os dados certos para seus processos de trabalho, incluindo rótulos e nomes.\n\n* Acione fluxos de trabalho para enviar solicitações de pull Dependabot (atualizações de versão e de segurança) para seu processo de revisão ou mesclá-las automaticamente.\n\n## Sobre Dependabot e GitHub Actions\n\n> \\[!IMPORTANT]\n> Se Dependabot estiver habilitado para um repositório, ele sempre será executado em GitHub Actions, **ignorando tanto as verificações de política do GitHub Actions quanto a desativação no nível do repositório ou da organização**. Isso garante que os fluxos de trabalho de atualização de versão e segurança sempre sejam executados quando o Dependabot estiver habilitado.\n\nDependabot cria solicitações de pull para manter suas dependências atualizadas. Você pode usar GitHub Actions para executar tarefas automatizadas quando essas solicitações de pull são criadas. Por exemplo, busque artefatos adicionais, adicione etiquetas, execute testes ou modifique o pull request.\n\nDependabot consegue acionar fluxos de trabalho de GitHub Actions nos seus pull requests e comentários. No entanto, certos eventos são tratados de maneira diferente. Para obter mais informações, consulte [Solução de problemas do Dependabot no GitHub Actions](/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions).\n\n> \\[!NOTE]\n> Você também pode usar agentic workflows para análise de dependência, resumos de atualização e recomendações de correção, mantendo a imposição de segurança e mesclagem em fluxos de trabalho determinísticos GitHub Actions . Para obter mais informações, consulte [Criando fluxos de trabalho agênticos do GitHub](/pt/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows).\n\nAqui estão vários cenários comuns para solicitações de pull que podem ser automatizadas usando GitHub Actions.\n\n## Obter metadados sobre um pull request\n\nA maioria das automações exige que você tenha informações sobre o conteúdo da solicitação de pull: qual era o nome da dependência, se for uma dependência de produção, e se for uma atualização maior, menor ou de patch. Você pode usar uma ação para recuperar informações sobre as dependências que estão sendo atualizadas por uma solicitação de pull gerada por Dependabot.\n\nExample:\n\n```yaml copy\n# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.\n# São fornecidas por terceiros e regidas por\n# termos de serviço, política de privacidade e suporte separados\n# online.\nname: Dependabot fetch metadata\non: pull_request\n\npermissions:\n  pull-requests: write\n  issues: write\n\njobs:\n  dependabot:\n    runs-on: ubuntu-latest\n    if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'owner/my_repo'\n    steps:\n      - name: Dependabot metadata\n        id: metadata\n        uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7\n        with:\n          github-token: \"${{ secrets.GITHUB_TOKEN }}\"\n      # The following properties are now available:\n      #  - steps.metadata.outputs.dependency-names\n      #  - steps.metadata.outputs.dependency-type\n      #  - steps.metadata.outputs.update-type\n```\n\nPara obter mais informações, confira o repositório [`dependabot/fetch-metadata`](https://github.com/dependabot/fetch-metadata).\n\n## Etiquetar uma solicitação de pull\n\nSe você tiver outros fluxos de trabalho de automação ou triagem com base em GitHub rótulos, poderá configurar uma ação para atribuir rótulos com base nos metadados fornecidos.\n\nExemplo que sinaliza todas as atualizações de dependências de produção com uma etiqueta:\n\n```yaml copy\n# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.\n# São fornecidas por terceiros e regidas por\n# termos de serviço, política de privacidade e suporte separados\n# online.\nname: Dependabot auto-label\non: pull_request\n\npermissions:\n  pull-requests: write\n  issues: write\n\njobs:\n  dependabot:\n    runs-on: ubuntu-latest\n    if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'owner/my_repo'\n    steps:\n      - name: Dependabot metadata\n        id: metadata\n        uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7\n        with:\n          github-token: \"${{ secrets.GITHUB_TOKEN }}\"\n      - name: Add a label for all production dependencies\n        if: steps.metadata.outputs.dependency-type == 'direct:production'\n        run: gh pr edit \"$PR_URL\" --add-label \"production\"\n        env:\n          PR_URL: ${{github.event.pull_request.html_url}}\n```\n\n## Aprovar automaticamente uma solicitação de pull\n\nVocê pode aprovar automaticamente Dependabot pull requests usando o GitHub CLI em um fluxo de trabalho.\n\nExample:\n\n```yaml copy\n# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.\n# São fornecidas por terceiros e regidas por\n# termos de serviço, política de privacidade e suporte separados\n# online.\nname: Dependabot auto-approve\non: pull_request\n\npermissions:\n  pull-requests: write\n\njobs:\n  dependabot:\n    runs-on: ubuntu-latest\n    if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'owner/my_repo'\n    steps:\n      - name: Dependabot metadata\n        id: metadata\n        uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7\n        with:\n          github-token: \"${{ secrets.GITHUB_TOKEN }}\"\n      - name: Approve a PR\n        run: gh pr review --approve \"$PR_URL\"\n        env:\n          PR_URL: ${{github.event.pull_request.html_url}}\n          GH_TOKEN: ${{secrets.GITHUB_TOKEN}}\n```\n\n## Habilitar a mesclagem automática em uma solicitação de pull\n\nSe você quiser permitir que os mantenedores marquem certos pull requests para mesclagem automática, você pode usar a funcionalidade de mesclagem automática do GitHub. Isto permite que a solicitação de pull seja mesclada quando todos os testes e as aprovações exigidos pelas regras de proteção de branch forem cumpridos com sucesso.\n\nPara obter mais informações, consulte [Mesclar automaticamente uma pull request](/pt/pull-requests/how-tos/merge-and-close-pull-requests/automatically-merging-a-pull-request) e [Gerenciar uma regra de proteção de ramo](/pt/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule).\n\nEm vez disso, você pode usar GitHub Actions e o GitHub CLI. Veja um exemplo que mescla automaticamente todas as atualizações de patch para `my-dependency`:\n\n```yaml copy\n# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.\n# São fornecidas por terceiros e regidas por\n# termos de serviço, política de privacidade e suporte separados\n# online.\nname: Dependabot auto-merge\non: pull_request\n\npermissions:\n  contents: write\n  pull-requests: write\n\njobs:\n  dependabot:\n    runs-on: ubuntu-latest\n    if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'owner/my_repo'\n    steps:\n      - name: Dependabot metadata\n        id: metadata\n        uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7\n        with:\n          github-token: \"${{ secrets.GITHUB_TOKEN }}\"\n      - name: Enable auto-merge for Dependabot PRs\n        if: contains(steps.metadata.outputs.dependency-names, 'my-dependency') && steps.metadata.outputs.update-type == 'version-update:semver-patch'\n        run: gh pr merge --auto --merge \"$PR_URL\"\n        env:\n          PR_URL: ${{github.event.pull_request.html_url}}\n          GH_TOKEN: ${{secrets.GITHUB_TOKEN}}\n```\n\n> \\[!NOTE]\n> Se você usar verificações de status para testar as solicitações de pull, será necessário habilitar a opção **Exigir a aprovação das verificações de status antes de mesclar** para a ramificação de destino para as solicitações de pull de Dependabot. Essa regra de proteção de branch garante que as solicitações de pull não sejam mescladas, a menos que **todas as verificações de status necessárias sejam aprovadas**. Para obter mais informações, consulte [Gerenciar uma regra de proteção de ramo](/pt/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule).\n\nSe a ramificação de destino usar uma fila de mesclagem, o `GITHUB_TOKEN` integrado não poderá adicionar solicitações de pull à fila. Nesse caso, você deve autenticar o fluxo de trabalho com um personal access token ou um token GitHub App que tenha permissão para fazer merge e usá-lo no lugar de `GITHUB_TOKEN` na etapa `gh pr merge`.\n\n## políticas Dependabot e GitHub Actions\n\nNormalmente, se um fluxo de trabalho pode ser executado em um repositório depende GitHub Actions de **verificações de política** e se GitHub Actions está **habilitado** no nível da organização ou do repositório. Esses controles podem restringir a execução de fluxos de trabalho, especialmente quando ações externas são bloqueadas ou GitHub Actions são totalmente desabilitadas.\n\nNo entanto, quando Dependabot estiver habilitado em um repositório, seus fluxos de trabalho sempre serão executados em GitHub Actions, **ignorando tanto as verificações de política do GitHub Actions quanto sua desativação**.\n\n* Dependabot os fluxos de trabalho não são bloqueados pela desativação do Actions nem por restrições de política corporativa.\n* As ações mencionadas nesses fluxos de trabalho também podem ser executadas, mesmo que ações externas não sejam permitidas.\n\nPara obter mais informações, consulte [Dependabot nos executores do GitHub Actions](/pt/code-security/concepts/supply-chain-security/dependabot-on-actions).\n\n## Investigando execuções de fluxo de trabalho com falha\n\nSe a execução do fluxo de trabalho falhar, verifique o seguinte:\n\n* Você só está executando o fluxo de trabalho quando o ator correto o acionar.\n* Você está fazendo check-out da `ref` correta para o `pull_request`.\n* Seus segredos estão disponíveis como segredos em Dependabot, e não como segredos em GitHub Actions.\n* Você tem um `GITHUB_TOKEN` com as permissões corretas.\n\nPara obter informações sobre gravação e depuração GitHub Actions, consulte [Escrevendo fluxos de trabalho](/pt/actions/how-tos/write-workflows).\n\nPara obter mais dicas sobre como solucionar problemas com fluxos de trabalho, consulte [Solução de problemas do Dependabot no GitHub Actions](/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions)."}