{"meta":{"title":"Solução de problemas do Dependabot no GitHub Actions","intro":"Este artigo fornece informações de solução de problemas para problemas que você pode encontrar ao usar Dependabot com GitHub Actions.","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/reference","title":"Referência"},{"href":"/pt/code-security/reference/supply-chain-security","title":"Segurança da cadeia de fornecedores"},{"href":"/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot","title":"Solucionar problemas do Dependabot"},{"href":"/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions","title":"Dependabot no Actions"}],"documentType":"article"},"body":"# Solução de problemas do Dependabot no GitHub Actions\n\nEste artigo fornece informações de solução de problemas para problemas que você pode encontrar ao usar Dependabot com GitHub Actions.\n\n## Solução de falhas quando Dependabot aciona fluxos de trabalho existentes\n\nDepois de configurar atualizações de Dependabot para GitHub.com, você poderá ver falhas quando os fluxos de trabalho existentes forem disparados por eventos Dependabot.\n\nPor padrão, as execuções de fluxo de trabalho GitHub Actions disparadas por Dependabot de eventos `push`, `pull_request`, `pull_request_review` ou `pull_request_review_comment` são tratadas como se tivessem sido abertas em uma bifurcação do repositório. Ao contrário dos fluxos de trabalho acionados por outros atores, isso significa que eles recebem um `GITHUB_TOKEN` somente para leitura e não têm acesso a quaisquer segredos normalmente disponíveis. Isso fará com que todos os fluxos de trabalho que tentam gravar no repositório falhem quando forem disparados por Dependabot.\n\nHá três maneiras de resolver este problema:\n\n1. Você pode atualizar seus fluxos de trabalho para que eles não sejam mais disparados por Dependabot usando uma expressão como: `if: github.actor != 'dependabot[bot]'`. Para saber mais, confira [Avaliar expressões em fluxos de trabalho e ações](/pt/actions/reference/workflows-and-actions/expressions).\n2. Modifique seus fluxos de trabalho para usar um processo de duas etapas que inclui `pull_request_target` que não tem essas limitações. Para saber mais, confira [Solução de problemas do Dependabot no GitHub Actions](/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions).\n3. Você pode disponibilizar fluxos de trabalho acionados pelo acesso a segredos de Dependabot e permitir que o termo `permissions` aumente o escopo padrão do `GITHUB_TOKEN`.\n\nAlgumas 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](/pt/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idpermissions).\n\n### Acessando segredos\n\nQuando um evento Dependabot aciona um fluxo de trabalho, os únicos segredos disponíveis para o fluxo de trabalho são os segredos Dependabot.\nGitHub Actions os segredos **não estão disponíveis**. Portanto, você deve armazenar todos os segredos utilizados por um fluxo de trabalho disparado por eventos Dependabot como segredos Dependabot. Para obter mais informações, consulte [Configurando o acesso a registros privados para Dependabot](/pt/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-access-to-private-registries#storing-credentials-for-dependabot-to-use).\n\nDependabot os segredos são adicionados ao `secrets` contexto e referenciados usando exatamente a mesma sintaxe que os segredos para GitHub Actions. Para obter mais informações, consulte [Usar segredos em ações do GitHub](/pt/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets#using-secrets-in-a-workflow).\n\nSe você tiver um fluxo de trabalho que será disparado 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 Dependabot segredo 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 que diferentes atores os usem.\n\nPara obter exemplos que usam condições, confira [Automatizando o Dependabot com GitHub Actions](/pt/code-security/tutorials/secure-your-dependencies/automate-dependabot-with-actions).\n\nPara 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`.\n\nNeste exemplo, quando Dependabot aciona o fluxo de trabalho, os segredos de 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.\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: CI\non:\n  pull_request:\n    branches: [ main ]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n\n      - name: Login to private container registry for dependencies\n        uses: docker/login-action@3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c\n        with:\n          registry: https://1234567890.dkr.ecr.us-east-1.amazonaws.com\n          username: ${{ secrets.READONLY_AWS_ACCESS_KEY_ID }}\n          password: ${{ secrets.READONLY_AWS_ACCESS_KEY }}\n\n      - name: Build the Docker image\n        run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)\n```\n\n### Como alterar as permissões `GITHUB_TOKEN`\n\nPor padrão, os fluxos de trabalho GitHub Actions acionados por Dependabot recebem um `GITHUB_TOKEN` com permissões somente de leitura. Use a chave `permissions` no fluxo de trabalho para aumentar o acesso ao token:\n\n```yaml copy\nname: CI\non: pull_request\n\n# Set the access for individual scopes, or use permissions: write-all\npermissions:\n  pull-requests: write\n  issues: write\n  ...\n\njobs:\n  ...\n```\n\nPara obter mais informações, consulte [Usar GITHUB\\_TOKEN para autenticação em fluxos de trabalho](/pt/actions/tutorials/authenticate-with-github_token#modifying-the-permissions-for-the-github_token).\n\n## Reexecutando manualmente um fluxo de trabalho\n\nQuando você executar manualmente um Dependabot fluxo de trabalho, 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 obter mais informações, consulte [Reexecutando fluxos de trabalho e tarefas](/pt/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs)."}