{"meta":{"title":"Automatizando o Dependabot com GitHub Actions","intro":"Exemplos de como você pode usar GitHub Actions para automatizar tarefas comuns de 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/automating-dependabot-with-github-actions","title":"Usar o Dependabot com o Actions"}],"documentType":"article"},"body":"# Automatizando o Dependabot com GitHub Actions\n\nExemplos de como você pode usar GitHub Actions para automatizar tarefas comuns de Dependabot relacionadas.\n\n1.\n\nVocê pode usar GitHub Actions para executar tarefas automatizadas quando Dependabot criar solicitações de pull para atualizar dependências. Talvez isso seja útil se você quiser:\n\n* Verificar se as pull requests do Dependabot (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* Disparar fluxos de trabalho para enviar pull requests do Dependabot (atualizações de versão e atualizações de segurança) para o processo de revisão ou para mesclar 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 as verificações de política de Ações e a desabilitaçã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\nO Dependabot cria pull requests para manter suas dependências atualizadas. Você pode usar GitHub Actions para executar tarefas automatizadas quando essas solicitações de pull forem 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 [Como solucionar problemas do Dependabot no GitHub Actions](/pt/code-security/dependabot/troubleshooting-dependabot/troubleshooting-dependabot-on-github-actions).\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\nExemplo:\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 outras automações ou fluxos de trabalho de triagem com base nas etiquetas de GitHub, poderá configurar uma ação para atribuir etiquetas 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 as solicitações de pull de Dependabot usando GitHub CLI em um fluxo de trabalho.\n\nExemplo:\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ê deseja permitir que os mantenedores marquem determinadas solicitações de pull para mesclagem automática,você pode usar a funcionalidade de mesclagem automática de 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 saber mais, confira [Mesclar automaticamente uma pull request](/pt/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/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 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 o branch 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 saber mais, confira [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\n## Políticas do Dependabot e do GitHub Actions\n\nNormalmente, se um fluxo de trabalho pode ser executado em um repositório depende de **verificações de política** do GitHub Actions e de se GitHub Actions está marcado como **enabled** no nível da organização ou do repositório. Esses controles podem impedir a execução de fluxos de trabalho, especialmente quando ações externas são bloqueadas ou o GitHub Actions está totalmente desabilitado.\n\nNo entanto, quando Dependabot está habilitado para um repositório, seus fluxos de trabalho sempre serão executados no GitHub Actions, **ignorando as verificações de política e a desabilitação de Ações**.\n\n* Os fluxos de trabalho do Dependabot não são bloqueados pela desabilitação de Ações ou restrições de políticas empresariais.\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, confira [Sobre o Dependabot em executores do GitHub Actions](/pt/code-security/dependabot/working-with-dependabot/about-dependabot-on-github-actions-runners).\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* Os seus segredos estão disponíveis nos segredos de Dependabot, ao invés estar nos segredos de GitHub Actions.\n* Você tem um `GITHUB_TOKEN` com as permissões corretas.\n\nPara obter informações sobre como escrever e depurar GitHub Actions, confira [Escrevendo fluxos de trabalho](/pt/actions/learn-github-actions).\n\nPara obter mais dicas sobre como solucionar problemas com fluxos de trabalho, consulte [Como solucionar problemas do Dependabot no GitHub Actions](/pt/code-security/dependabot/troubleshooting-dependabot/troubleshooting-dependabot-on-github-actions)."}