{"meta":{"title":"Personalización de las pull requests de Dependabot para adaptarlas a tus procesos","intro":"Aprende a adaptar las solicitudes de cambios de Dependabot para ajustarlas mejor a tus propios flujos de trabajo internos.","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/customizing-dependabot-prs","title":"Personalización de PR de Dependabot"}],"documentType":"article"},"body":"# Personalización de las pull requests de Dependabot para adaptarlas a tus procesos\n\nAprende a adaptar las solicitudes de cambios de Dependabot para ajustarlas mejor a tus propios flujos de trabajo internos.\n\nHay varias maneras de personalizar las solicitudes de incorporación de cambios de Dependabot para que se adapten mejor a sus propios procesos internos.\n\nPor ejemplo, para integrar las solicitudes de incorporación de cambios de Dependabot en las canalizaciones de CI/CD, puede aplicar **etiquetas personalizadas** a las solicitudes de incorporación de cambios, que después puede usar para desencadenar flujos de trabajo de acción.\n\nHay varias opciones de personalización diferentes que se pueden usar de manera conjunta, adaptadas a cada ecosistema de paquetes.\n\n## Adición automática de usuarios asignados\n\nDe forma predeterminada, Dependabot genera solicitudes de extracción sin ninguna persona asignada.\n\nPara asignar automáticamente solicitudes de incorporación de cambios a un equipo de seguridad designado, puedes usar `assignees` para establecer estos valores por ecosistema de paquetes.\n\nEn el archivo `dependabot.yml` de ejemplo siguiente se cambia la configuración de npm para que todas las solicitudes de cambios que se hayan abierto con actualizaciones de versión y seguridad para npm tengan lo siguiente:\n\n* Un individuo (\"`user-name`\") asignado automáticamente a las solicitudes de cambios.\n\n```yaml copy\n# `dependabot.yml` file with\n#  assignee for all npm pull requests\n\nversion: 2\nupdates:\n  # Keep npm dependencies up to date\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    # Raise all npm pull requests with assignees\n    assignees:\n      - \"user-name\"\n```\n\n## Adición automática de revisores\n\nDe forma predeterminada, Dependabot genera solicitudes de incorporación de cambios sin revisores.\n\nPara asegurarse de que el equipo adecuado soluciona rápidamente las actualizaciones de seguridad del proyecto, puede agregar automáticamente revisores a las solicitudes de incorporación de cambios de Dependabot mediante un archivo CODEOWNERS. Consulta [Acerca de los propietarios de código](/es/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners).\n\n## Etiquetado de solicitudes de cambios con etiquetas personalizadas\n\nDe forma predeterminada, Dependabot genera solicitudes de extracción con la etiqueta `dependencies`.\n\nDependabot también aplica una etiqueta del ecosistema, como `java`, `npm`o `github-actions`, a las solicitudes de incorporación de cambios.\nDependabot agrega tanto la etiqueta `dependencies` como la etiqueta del ecosistema a todas las solicitudes de extracción, incluidas las actualizaciones de un solo ecosistema, para mejorar el filtrado y el triaje.\n\nDependabot crea las etiquetas predeterminadas que aplica a las solicitudes de extracción si aún no existen en el repositorio. Si quiere usar etiquetas personalizadas en lugar de los valores predeterminados, puede establecer la opción `labels` en su archivo `dependabot.yml` por ecosistema de paquetes; esto sobrescribe los valores predeterminados. Para obtener más información, consulta [Administrar las etiquetas](/es/issues/using-labels-and-milestones-to-track-work/managing-labels) y [`labels`](/es/code-security/reference/supply-chain-security/dependabot-options-reference#labels--).\n\nSi las etiquetas de versión semántica (SemVer) están presentes en el repositorio, Dependabot también las aplicará automáticamente para indicar el tipo de actualización de versión (`major`, `minor`o `patch`). Estas etiquetas se aplican además de las etiquetas personalizadas que defina.\n\nPuedes usar `labels` para invalidar las etiquetas predeterminadas y especificar etiquetas personalizadas propias para cada ecosistema de paquetes. Esto es útil, por ejemplo, si quieres:\n\n* Use etiquetas para asignar una prioridad a determinadas solicitudes de incorporación de cambios.\n* Usar etiquetas para desencadenar otro flujo de trabajo, como agregar automáticamente el pull request a un tablero de proyecto.\n\nEl archivo `dependabot.yml` de ejemplo mostrado a continuación cambia la configuración de npm para que todas las solicitudes de incorporación de cambios que se hayan abierto con actualizaciones de versión y seguridad para npm tengan etiquetas personalizadas.\n\n```yaml copy\n# `dependabot.yml` file with\n# customized npm configuration\n\nversion: 2\nupdates:\n  # Keep npm dependencies up to date\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    # Raise all npm pull requests with custom labels\n    labels:\n      - \"npm dependencies\"\n      - \"triage-board\"\n```\n\nConfigurar esta opción también afectará a las solicitudes de incorporación de cambios para las actualizaciones de seguridad en los archivos de manifiesto de este administrador de paquetes, a menos que use `target-branch` para buscar actualizaciones de versión en una rama diferente a la predeterminada.\n\nConsulte también [`labels`](/es/code-security/reference/supply-chain-security/dependabot-options-reference#labels--).\n\n## Adición de un prefijo a los mensajes de confirmación\n\nDe forma predeterminada, Dependabot intenta detectar las preferencias del mensaje de confirmación y usar patrones similares. Además, Dependabot rellena los títulos de las solicitudes de incorporación de cambios en función de los mensajes de confirmación.\n\nPuede especificar su propio prefijo para los mensajes de confirmación de Dependabot (y títulos de solicitud de incorporación de cambios) para un ecosistema de paquetes específico. Esto puede ser útil si, por ejemplo, vas a ejecutar automatizaciones que procesan mensajes de confirmación o títulos de solicitudes de cambios.\n\nPara especificar explícitamente tus preferencias, usa `commit-message` junto con las siguientes opciones admitidas:\n\n* `prefix`:\n  * especifica un prefijo para todos los mensajes de confirmación.\n  * El prefijo también se agrega al inicio del título del pull request.\n* `prefix-development`:\n  * especifica un prefijo independiente para todos los mensajes de confirmación que actualizan las dependencias de desarrollo, en función de lo definido por el administrador de paquetes o el ecosistema.\n  * Compatible con `bundler`, `composer`, `mix`, `maven`, `npm`, `pip`, y `uv`.\n* `include: \"scope\"`:\n  * Especifica que cualquier prefijo va seguido de los tipos de dependencias (`deps` o `deps-dev`) actualizadas en la confirmación.\n\nEn el ejemplo siguiente se muestran varias opciones diferentes, adaptadas para cada ecosistema de paquetes:\n\n```yaml copy\n# Customize commit messages\n\nversion: 2\nupdates:\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    commit-message:\n      # Prefix all commit messages with \"npm: \"\n      prefix: \"npm\"\n\n  - package-ecosystem: \"docker\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    commit-message:\n      # Prefix all commit messages with \"[docker] \" (no colon, but a trailing whitespace)\n      prefix: \"[docker] \"\n\n  - package-ecosystem: \"composer\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    # Prefix all commit messages with \"Composer\" plus its scope, that is, a\n    # list of updated dependencies\n    commit-message:\n      prefix: \"Composer\"\n      include: \"scope\"\n\n  - package-ecosystem: \"pip\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    # Include a list of updated dependencies\n    # with a prefix determined by the dependency group\n    commit-message:\n      prefix: \"pip prod\"\n      prefix-development: \"pip dev\"\n```\n\nConfigurar esta opción también afectará a las solicitudes de incorporación de cambios para las actualizaciones de seguridad en los archivos de manifiesto de este administrador de paquetes, a menos que use `target-branch` para buscar actualizaciones de versión en una rama diferente a la predeterminada.\n\nConsulte también [`commit-message`](/es/code-security/reference/supply-chain-security/dependabot-options-reference#commit-message--).\n\n## Asociación de solicitudes de incorporación de cambios con un hito\n\nLos hitos ayudan a realizar el seguimiento del progreso de grupos de solicitudes de incorporación de cambios (o incidencias) hacia un objetivo o una versión del proyecto. Con Dependabot, puede usar la opción `milestone` para asociar solicitudes de incorporación de cambios para las actualizaciones de dependencia con un hito específico.\n\nDebes especificar el identificador numérico del hito y no su etiqueta. Para buscar el identificador numérico, comprueba la parte final de la dirección URL de la página, después de `milestone`. Por ejemplo, para `https://github.com/<org>/<repo>/milestone/3`, \"`3`\" es el identificador numérico del hito.\n\n```yaml copy\n# Specify a milestone for pull requests\n\nversion: 2\nupdates:\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    # Associate pull requests with milestone \"4\"\n    milestone: 4\n```\n\nConfigurar esta opción también afectará a las solicitudes de incorporación de cambios para las actualizaciones de seguridad en los archivos de manifiesto de este administrador de paquetes, a menos que use `target-branch` para buscar actualizaciones de versión en una rama diferente a la predeterminada.\n\nConsulta también [`milestone`](/es/code-security/reference/supply-chain-security/dependabot-options-reference#milestone--) y [Acerca de los hitos](/es/issues/using-labels-and-milestones-to-track-work/about-milestones).\n\n## Personalizar los nombres de las ramas de las pull requests\n\nDependabot genera una rama para cada solicitud de incorporación de cambios. Cada nombre de rama incluye `dependabot`, así como el nombre del administrador de paquetes y la dependencia que se va a actualizar. De manera predeterminada, estas partes del nombre de la rama están separadas por un símbolo `/`, por ejemplo:\n\n* `dependabot/npm_and_yarn/next_js/acorn-6.4.1`\n\nPuede personalizar los nombres de rama mediante la `pull-request-branch-name` opción con los parámetros siguientes: `separator`, `prefix`, `max-length`, `word-separator`, `branch-name-case`y `template`. Todas las opciones se pueden combinar entre sí, y puedes combinar cualquiera de ellas. Para obtener la referencia completa de cada parámetro, consulte [`pull-request-branch-name`](/es/code-security/reference/supply-chain-security/dependabot-options-reference#pull-request-branch-name--).\n\n### Combinación de opciones de formato\n\nPuede combinar `separator`, `word-separator`, `branch-name-case`, `max-length`y `template` para generar nombres de rama que cumplan los requisitos del sistema. Por ejemplo, compatibilidad de etiquetas de Docker, nombres de Azure Container Registry o límites de longitud de rama de Kubernetes.\n\nCuando `template` se configura junto con otras opciones, el formato se aplica en una fase de posprocesamiento después del procesamiento de la plantilla, en este orden: reemplazo del separador, reemplazo del separador de palabras, cambio entre mayúsculas y minúsculas y, por último, truncamiento a la longitud máxima.\n\n```yaml copy\n# Combine template with formatting options\n\nversion: 2\nupdates:\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    pull-request-branch-name:\n      template: \"{prefix}/{package_manager}/{dependency}-{version}\"\n      separator: \"-\"\n      word-separator: \"-\"\n      branch-name-case: \"lowercase\"\n      max-length: 80\n```\n\n* **Antes** (valor predeterminado): `dependabot/npm_and_yarn/Lodash-4.17.21`\n* **Después** (con la configuración anterior): `dependabot-npm-and-yarn-lodash-4.17.21`\n\nCuando un nombre de rama supera `max-length`, se trunca con un sufijo hash para conservar la unicidad.\n\n### Ejemplo completo con grupos de varios ecosistemas\n\nA continuación se `dependabot.yml` muestran todas las opciones disponibles en distintos ecosistemas, incluida la configuración de grupos de varios ecosistemas:\n\n```yaml copy\n# Full example demonstrating all branch name options\n\nversion: 2\n\nmulti-ecosystem-groups:\n  infrastructure:\n    schedule:\n      interval: \"weekly\"\n    pull-request-branch-name:\n      template: \"{prefix}/infra/{name}\"\n      word-separator: \"-\"\n      branch-name-case: \"lowercase\"\n\nupdates:\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    pull-request-branch-name:\n      separator: \"-\"\n      word-separator: \"-\"\n      branch-name-case: \"lowercase\"\n    groups:\n      frontend-deps:\n        patterns: [\"react*\", \"next*\"]\n\n  - package-ecosystem: \"docker\"\n    directory: \"/\"\n    schedule:\n      interval: \"monthly\"\n    pull-request-branch-name:\n      template: \"{prefix}/{package_manager}/{dependency}-{version}\"\n      max-length: 60\n\n  - package-ecosystem: \"pip\"\n    directory: \"/backend\"\n    schedule:\n      interval: \"weekly\"\n    pull-request-branch-name:\n      prefix: \"deps\"\n      branch-name-case: \"lowercase\"\n    groups:\n      django-deps:\n        patterns: [\"django*\"]\n\n  # These entries participate in the \"infrastructure\" multi-ecosystem group\n  - package-ecosystem: \"docker\"\n    directory: \"/infra\"\n    patterns: [\"nginx\", \"redis\", \"postgres\"]\n    multi-ecosystem-group: \"infrastructure\"\n\n  - package-ecosystem: \"terraform\"\n    directory: \"/infra\"\n    patterns: [\"hashicorp/*\"]\n    multi-ecosystem-group: \"infrastructure\"\n```\n\nEsta configuración genera los siguientes nombres de rama:\n\n| Escenario                                                       | Strategy           | Nombre de rama                                     |\n| --------------------------------------------------------------- | ------------------ | -------------------------------------------------- |\n| actualización de lodash en npm                                  | Solo               | `dependabot-npm-and-yarn-lodash-4.17.21`           |\n| Actualización del grupo frontend-deps en npm                    | Agrupado           | `dependabot-npm-and-yarn-frontend-deps-fc93691fd4` |\n| actualización de nginx solo en Docker                           | Solo               | `dependabot/docker/nginx-1.25.0`                   |\n| actualizar Django con pip                                       | Solo               | `deps/pip/django-4.2.1`                            |\n| actualización del grupo pip django-deps                         | Agrupado           | `deps/pip/django-deps-a1b2c3d4e5`                  |\n| Grupo de infraestructura entre ecosistemas (Docker + Terraform) | Varios ecosistemas | `dependabot/infra/infrastructure-fc93691fd4`       |\n\n> \\[!NOTE]\n> Para grupos de varios ecosistemas:\n>\n> * El `pull-request-branch-name` de la entrada `multi-ecosystem-groups` controla el nombre de la rama de PR agrupada entre ecosistemas.\n> * Las entradas individuales `updates` que especifiquen `multi-ecosystem-group`**no pueden** tener su propio `pull-request-branch-name`. La configuración de nivel de grupo tiene prioridad y es la única que se usa para esas entradas.\n> *\n\n`{package_manager}` no está disponible en plantillas de grupo de varios ecosistemas porque el grupo abarca varios ecosistemas.\n\n> * Un resumen de contenido siempre se anexa automáticamente a las ramas de grupos de varios ecosistemas para garantizar la unicidad.\n\n### Cómo se aplica la configuración del nombre de rama\n\n* **La configuración es por entrada de actualización**: cada entrada independiente `package-ecosystem` puede tener su propia configuración de nombre de rama. Las entradas asignadas a un grupo de varios ecosistemas usan la configuración de nivel de grupo en su lugar.\n* **Las solicitudes de incorporación de cambios existentes no se ven afectadas**: los cambios solo se aplican a las solicitudes de incorporación de cambios recién creadas.\n* **El comportamiento predeterminado no se modifica**: si no configura ninguna opción, los nombres de rama permanecen exactamente como están actualmente.\n\nConfigurar esta opción también afectará a las solicitudes de incorporación de cambios para las actualizaciones de seguridad en los archivos de manifiesto de este administrador de paquetes, a menos que use `target-branch` para buscar actualizaciones de versión en una rama diferente a la predeterminada.\n\n## Selección de destino de pull requests en una rama no por defecto\n\nDe forma predeterminada, Dependabot busca archivos de manifiesto en la rama predeterminada y crea solicitudes de incorporación de cambios para aplicar actualizaciones a la rama predeterminada.\n\nPor lo general, tiene más sentido mantener sus comprobaciones y actualizaciones en la rama predeterminada de Dependabot. Pero es posible que haya casos en los que quieras especificar otra rama de destino. Si, por ejemplo, los procesos de su equipo requieren probar y validar primero las actualizaciones en una rama de no producción, puede usar `target-branch` para especificar una rama diferente para que Dependabot cree solicitudes de extracción dirigidas a ella.\n\n> \\[!NOTE]\n> Dependabot genera solicitudes de incorporación de cambios para las actualizaciones de seguridad solo en la **rama predeterminada**. Si usas `target-branch`, como resultado, todas las opciones de configuración de ese administrador de paquetes *solo* se aplicarán a las actualizaciones de versión y no a las actualizaciones de seguridad.\n\n```yaml copy\n# Specify a non-default branch for pull requests for pip\n\nversion: 2\nupdates:\n  - package-ecosystem: \"pip\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    # Raise pull requests for version updates\n    # to pip against the `develop` branch\n    target-branch: \"develop\"\n    # Labels on pull requests for version updates only\n    labels:\n      - \"pip dependencies\"\n\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n      # Check for npm updates on Sundays\n      day: \"sunday\"\n    # Labels on pull requests for security and version updates\n    labels:\n      - \"npm dependencies\"\n```\n\nConsulte también [`target-branch`](/es/code-security/reference/supply-chain-security/dependabot-options-reference#target-branch-)."}