{"meta":{"title":"Automatizar al Dependabot con las Acciones de GitHub","intro":"Ejemplos de cómo puede usar GitHub Actions para automatizar tareas comunes Dependabot relacionadas.","product":"Seguridad y calidad del código","breadcrumbs":[{"href":"/es/code-security","title":"Seguridad y calidad del código"},{"href":"/es/code-security/tutorials","title":"Tutorials"},{"href":"/es/code-security/tutorials/secure-your-dependencies","title":"Asegura tus dependencias"},{"href":"/es/code-security/tutorials/secure-your-dependencies/automate-dependabot-with-actions","title":"Automatización de Dependabot con acciones"}],"documentType":"article"},"body":"# Automatizar al Dependabot con las Acciones de GitHub\n\nEjemplos de cómo puede usar GitHub Actions para automatizar tareas comunes Dependabot relacionadas.\n\n> \\[!NOTE] En este artículo se explica cómo automatizar tareas relacionadas con Dependabot mediante GitHub Actions. Para obtener más información sobre cómo ejecutar Dependabot updates con GitHub Actions, vea [Dependabot en runners de Acciones de GitHub](/es/code-security/concepts/supply-chain-security/dependabot-on-actions) en su lugar.\n\nPuede usar GitHub Actions para ejecutar tareas automatizadas cuando Dependabot crea solicitudes de extracción para actualizar las dependencias. Es posible que esto te resulte útil si quieres:\n\n* Asegúrese de que Dependabot las solicitudes de incorporación de cambios (actualizaciones de versión y actualizaciones de seguridad) se creen con los datos adecuados para los procesos de trabajo, incluidas las etiquetas y los nombres.\n\n* Desencadene flujos de trabajo para enviar Dependabot solicitudes de incorporación de cambios (actualizaciones de versión y actualizaciones de seguridad) en el proceso de revisión o para combinarlas automáticamente.\n\n## Acerca de Dependabot y GitHub Actions\n\n> \\[!IMPORTANT]\n> Si Dependabot está habilitado para un repositorio, siempre se ejecutará en GitHub Actions, **omitiendo las comprobaciones de directiva de acciones y la deshabilitación en el nivel de repositorio o organización**. Esto garantiza que los flujos de trabajo de actualización de seguridad y versión siempre se ejecuten cuando Dependabot esté habilitado.\n\nDependabot crea solicitudes de incorporación de cambios para mantener actualizadas las dependencias. Puede usar GitHub Actions para realizar tareas automatizadas cuando se crean estas solicitudes de incorporación de cambios. Por ejemplo, recupera artefactos adicionales, agrega etiquetas, ejecuta pruebas o modifica la solicitud de incorporación de cambios de cualquier otra forma.\n\nEl Dependabot puede activar flujos de trabajo de las GitHub Actions en sus solicitudes de cambios y comentarios; sin embargo, algunos eventos se tratan de forma distinta. Para obtener más información, consulte [Solución de problemas de Dependabot en acciones de GitHub](/es/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions).\n\n> \\[!NOTE]\n> También puede usar agentic workflows para el análisis de dependencias, los resúmenes de actualización y las recomendaciones de corrección, a la vez que mantiene la aplicación de seguridad y combina la combinación en flujos de trabajo deterministas GitHub Actions . Para obtener más información, vea [Creación de flujos de trabajo agente de GitHub](/es/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows).\n\nEstos son varios escenarios comunes para las solicitudes de incorporación de cambios que se pueden automatizar mediante GitHub Actions.\n\n## Recuperación de metadatos de una solicitud de incorporación de cambios\n\nPara la mayoría de automatización es necesario conocer información del contenido de la solicitud de incorporación de cambios: cuál era el nombre de la dependencia, si es una dependencia productiva y si es una actualización de revisión, menor o mayor. Puede usar una acción para obtener información sobre las dependencias que se están actualizando mediante una solicitud de extracción generada por Dependabot.\n\nEjemplo:\n\n```yaml copy\n# Este flujo de trabajo usa acciones que no GitHub no certifica.\n# Estas las proporcionan entidades terceras y las gobiernan\n# condiciones de servicio, políticas de privacidad y documentación de soporte\n# en línea.\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 más información, consulte el repositorio [`dependabot/fetch-metadata`](https://github.com/dependabot/fetch-metadata).\n\n## Etiquetado de una solicitud de incorporación de cambios\n\nSi tiene otros flujos de trabajo de automatización o evaluación de prioridades basados en GitHub etiquetas, puede configurar una acción para asignar etiquetas en función de los metadatos proporcionados.\n\nEjemplo en el que marcan todas las actualizaciones de las dependencias de producción con una etiqueta:\n\n```yaml copy\n# Este flujo de trabajo usa acciones que no GitHub no certifica.\n# Estas las proporcionan entidades terceras y las gobiernan\n# condiciones de servicio, políticas de privacidad y documentación de soporte\n# en línea.\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## Aprobar una solicitud de incorporación de cambios automáticamente\n\nPuede aprobar automáticamente las solicitudes de incorporación de cambios Dependabot usando el GitHub CLI en un flujo de trabajo.\n\nEjemplo:\n\n```yaml copy\n# Este flujo de trabajo usa acciones que no GitHub no certifica.\n# Estas las proporcionan entidades terceras y las gobiernan\n# condiciones de servicio, políticas de privacidad y documentación de soporte\n# en línea.\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 la fusión automática en una solicitud de incorporación de cambios\n\nSi desea permitir que los mantenedores marquen determinadas solicitudes de extracción para la combinación automática, puede usar la funcionalidad de combinación automática de GitHub. Esto habilita a la solicitud de cambios para que se fusione cuando se cumpla cualquier prueba y aprobación requerida por las reglas de protección de rama.\n\nPara obtener más información, vea [Fusionar una solicitud de cambios automáticamente](/es/pull-requests/how-tos/merge-and-close-pull-requests/automatically-merging-a-pull-request) y [Administrar una regla de protección de rama](/es/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule).\n\nEn su lugar, puede usar GitHub Actions y .GitHub CLI Este es un ejemplo que fusiona automáticamente todas las actualizaciones de revisión a `my-dependency`:\n\n```yaml copy\n# Este flujo de trabajo usa acciones que no GitHub no certifica.\n# Estas las proporcionan entidades terceras y las gobiernan\n# condiciones de servicio, políticas de privacidad y documentación de soporte\n# en línea.\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> Si usa comprobaciones de estado para validar las solicitudes de extracción, debe habilitar **Exigir que las comprobaciones de estado se superen antes de la fusión** para la rama de destino de las solicitudes de extracción Dependabot. Esta regla de protección de rama garantiza que las solicitudes de incorporación de cambios no se fusionen a menos que **se superen todas las comprobaciones de estado necesarias**. Para obtener más información, vea [Administrar una regla de protección de rama](/es/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule).\n\nSi la rama de destino usa una cola de fusiones, la función integrada `GITHUB_TOKEN` no puede agregar solicitudes de extracción a la cola. En este caso, debe autenticar el flujo de trabajo con un token personal access token o con un token GitHub App que tenga permiso para fusionar, y usarlo en lugar de `GITHUB_TOKEN` para el paso `gh pr merge`.\n\n## Directivas deDependabot y GitHub Actions\n\nNormalmente, si un flujo de trabajo se puede ejecutar en un repositorio depende de GitHub Actions**las comprobaciones de directivas** y de si GitHub Actions está **habilitado** en el nivel de organización o repositorio. Estos controles pueden restringir la ejecución de flujos de trabajo, especialmente cuando se bloquean acciones externas o GitHub Actions están deshabilitadas por completo.\n\nSin embargo, cuando Dependabot está habilitado para un repositorio, sus flujos de trabajo siempre se ejecutarán en GitHub Actions, **omitiendo las comprobaciones de directivas de acciones y la deshabilitación**.\n\n* Dependabot Los flujos de trabajo no se ven bloqueados por la desactivación de Actions ni por las restricciones de las directivas empresariales.\n* Las acciones a las que se hace referencia en estos flujos de trabajo también se pueden ejecutar, incluso si no se permiten acciones externas.\n\nPara obtener más información, vea [Dependabot en runners de Acciones de GitHub](/es/code-security/concepts/supply-chain-security/dependabot-on-actions).\n\n## Investigación de ejecuciones de flujo de trabajo con errores\n\nSi tu ejecución de flujo de trabajo falla, verifica lo siguiente:\n\n* Estás ejecutando el flujo de trabajo únicamente cuando el actor adecuado lo activa.\n* Va a extraer del repositorio el `ref` correcto para `pull_request`.\n* Tus secretos están disponibles como secretos de Dependabot en lugar de como secretos de GitHub Actions.\n* Tiene un `GITHUB_TOKEN` con los permisos correctos.\n\nPara obtener información sobre cómo escribir y depurar GitHub Actions, vea [Escritura de flujos de trabajo](/es/actions/how-tos/write-workflows).\n\nPara obtener más sugerencias para ayudar a resolver problemas con los flujos de trabajo, consulte [Solución de problemas de Dependabot en acciones de GitHub](/es/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions)."}