{"meta":{"title":"Personalizar as solicitações de pull do Dependabot para se adequarem aos seus processos","intro":"Saiba como personalizar suas solicitações de pull do Dependabot para melhor se adequarem aos seus fluxos de trabalho internos","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/customizing-dependabot-prs","title":"Personalizar pull requests do Dependabot"}],"documentType":"article"},"body":"# Personalizar as solicitações de pull do Dependabot para se adequarem aos seus processos\n\nSaiba como personalizar suas solicitações de pull do Dependabot para melhor se adequarem aos seus fluxos de trabalho internos\n\nHá várias maneiras de personalizar suas Dependabot solicitações de pull para que elas se adaptem melhor aos seus próprios processos internos.\n\nPor exemplo, para integrar as pull requests do Dependabot aos pipelines de CI/CD, ele pode aplicar **rótulos personalizados** às pull requests, que você pode usar para disparar fluxos de trabalho.\n\nHá várias opções de personalização diferentes que podem ser usadas em combinação e personalizadas para cada ecossistema de pacotes.\n\n## Adicionando destinatários automaticamente\n\nPor padrão, Dependabot gera solicitações de pull sem atribuições.\n\nPara atribuir automaticamente pull requests a uma equipe de segurança designada, você pode usar `assignees` para definir esses valores por ecossistema de pacotes.\n\nO exemplo de arquivo `dependabot.yml` abaixo altera a configuração do npm para que todas as pull requests em aberto com as atualizações de versão e segurança para o npm tenham:\n\n* Um indivíduo (\"`user-name`\") atribuído automaticamente às pull requests.\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## Adicionar revisores automaticamente\n\nPor padrão, Dependabot gera solicitações de pull sem nenhum revisor.\n\nPara garantir que as atualizações de segurança do seu projeto sejam tratadas prontamente pela equipe responsável, você pode adicionar revisores automaticamente a pull requests Dependabot usando um arquivo CODEOWNERS. Confira [Sobre os proprietários de código](/pt/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners).\n\n## Como rotular pull requests com rótulos personalizados\n\nPor padrão, Dependabot cria pull requests com o rótulo `dependencies`.\n\nDependabot também aplica um rótulo de ecossistema, como `java`, `npm` ou `github-actions`, a solicitações de pull.\nDependabot adiciona o rótulo `dependencies` e o rótulo do ecossistema a todos os pull requests, incluindo atualizações de um único ecossistema, para melhorar a filtragem e a triagem.\n\nDependabot criará os rótulos padrão que ele aplica às solicitações de pull se elas ainda não existirem no repositório. Se você quiser usar rótulos personalizados em vez dos padrões, poderá definir a opção `labels` em seu `dependabot.yml` arquivo por ecossistema de pacotes; isso substitui os padrões. Para obter mais informações, consulte [Gerenciar etiquetas](/pt/issues/using-labels-and-milestones-to-track-work/managing-labels) e [`labels`](/pt/code-security/reference/supply-chain-security/dependabot-options-reference#labels--).\n\nSe rótulos semânticos de versão (SemVer) estiverem presentes no repositório, Dependabot também os aplicará automaticamente para indicar o tipo de atualização de versão (`major`ou`minor``patch`). Esses rótulos são aplicados além de quaisquer rótulos personalizados que você definir.\n\nVocê pode usar `labels` para substituir os rótulos padrão e especificar seus próprios rótulos personalizados por ecossistema de pacotes. Isso é útil se, por exemplo, você quiser:\n\n* Usar rótulos para atribuir prioridade a determinadas solicitações de pull.\n* Usar rótulos acionando outro fluxo de trabalho, como adicionar automaticamente a solicitação de pull a um quadro de projeto.\n\nO exemplo de arquivo `dependabot.yml` abaixo altera a configuração do npm para que todas as solicitações de pull em aberto com as atualizações de versão e segurança para o npm tenham rótulos personalizados.\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\nSe você definir essa opção, isso também afetará as solicitações de pull para atualizações de segurança nos arquivos de manifesto deste gerenciador de pacotes, a menos que você use `target-branch` para verificar se há atualizações de versão em um branch não padrão.\n\nConsulte também [`labels`](/pt/code-security/reference/supply-chain-security/dependabot-options-reference#labels--).\n\n## Adicionar um prefixo a mensagens de confirmação\n\nPor padrão, Dependabot tenta detectar suas preferências de mensagem de confirmação e usar padrões semelhantes. Além disso, Dependabot preenche os títulos de solicitações de pull com base nas mensagens de confirmação.\n\nVocê pode especificar o próprio prefixo para as mensagens de commit do Dependabot (e os títulos de pull request) de um ecossistema de pacotes específico. Isso pode ser útil se, por exemplo, você estiver executando automações que processam mensagens de commit ou títulos de solicitações de pull.\n\nPara especificar suas preferências explicitamente, use `commit-message` juntamente com as seguintes opções compatíveis:\n\n* `prefix`:\n  * Especifica um prefixo para todas as mensagens de commit.\n  * O prefixo também é adicionado ao início do título da solicitação de pull.\n* `prefix-development`:\n  * Especifica um prefixo separado para todas as mensagens de commit que atualizam dependências de desenvolvimento, conforme definido pelo gerenciador de pacotes ou ecossistema.\n  * Com suporte para `bundler`, `composer`, , `mix`, `maven`, `npm`, `pip`e `uv`.\n* `include: \"scope\"`:\n  * Especifica que qualquer prefixo é seguido pelos tipos de dependência (`deps` ou `deps-dev`) atualizadas no commit.\n\nO exemplo abaixo mostra diversas opções diferentes, adaptadas a cada ecossistema de pacotes:\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\nSe você definir essa opção, isso também afetará as solicitações de pull para atualizações de segurança nos arquivos de manifesto deste gerenciador de pacotes, a menos que você use `target-branch` para verificar se há atualizações de versão em um branch não padrão.\n\nConsulte também [`commit-message`](/pt/code-security/reference/supply-chain-security/dependabot-options-reference#commit-message--).\n\n## Associar pull requests a um marco\n\nOs marcos ajudam você a acompanhar o progresso de grupos de solicitações de pull (ou problemas) em direção a uma meta ou versão do projeto. Com Dependabot, você pode usar a opção `milestone` para associar solicitações de pull para atualizações de dependência a um marco específico.\n\nVocê precisa especificar o identificador numérico do marco e não sua etiqueta. Para encontrar o identificador numérico, verifique a parte final do URL da página, após `milestone`. Por exemplo, para `https://github.com/<org>/<repo>/milestone/3`, \"`3`\" é o identificador numérico do marco.\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\nSe você definir essa opção, isso também afetará as solicitações de pull para atualizações de segurança nos arquivos de manifesto deste gerenciador de pacotes, a menos que você use `target-branch` para verificar se há atualizações de versão em um branch não padrão.\n\nConsulte também [`milestone`](/pt/code-security/reference/supply-chain-security/dependabot-options-reference#milestone--) e [Sobre marcos](/pt/issues/using-labels-and-milestones-to-track-work/about-milestones).\n\n## Personalizando nomes de branches de pull request\n\nDependabot gera um branch para cada solicitação de pull. Cada nome de ramificação inclui `dependabot`, bem como o nome do gerenciador de pacotes e a dependência a ser atualizada. Por padrão, essas partes do nome da ramificação são separadas por um símbolo `/`, por exemplo:\n\n* `dependabot/npm_and_yarn/next_js/acorn-6.4.1`\n\nVocê pode personalizar nomes de branch usando a opção `pull-request-branch-name` com os seguintes parâmetros: `separator`, , `prefix`, `max-length`, `word-separator`, e `branch-name-case``template`. Todas as opções são combináveis, e você pode combinar qualquer uma delas. Para obter a referência completa de cada parâmetro, consulte [`pull-request-branch-name`](/pt/code-security/reference/supply-chain-security/dependabot-options-reference#pull-request-branch-name--).\n\n### Combinando opções de formatação\n\nVocê pode combinar `separator`, `word-separator`, `branch-name-case`, `max-length`e `template` produzir nomes de ramificação que atendam aos requisitos do seu sistema. Por exemplo, compatibilidade com marcações do Docker, nomenclatura do Registro de Contêineres do Azure ou limites de comprimento de ramificação do Kubernetes.\n\nQuando `template` é definido juntamente com outras opções, a formatação é aplicada como pós-processamento após a renderização do modelo nesta ordem: substituição de separadores, substituição de separadores de palavras, transformação de maiúsculas e minúsculas e, em seguida, truncamento de comprimento máximo.\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** (padrão): `dependabot/npm_and_yarn/Lodash-4.17.21`\n* **Depois** (com configuração acima): `dependabot-npm-and-yarn-lodash-4.17.21`\n\nQuando um nome de ramificação excede `max-length`, ele é truncado com um sufixo hash para preservar a unicidade.\n\n### Exemplo completo com grupos de vários ecossistemas\n\nO seguinte `dependabot.yml` demonstra todas as opções disponíveis em diferentes ecossistemas, incluindo a configuração de grupo de vários ecossistemas:\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\nEssa configuração produz os seguintes nomes de branch:\n\n| Scenario                                                        | Strategy            | Nome do branch                                     |\n| --------------------------------------------------------------- | ------------------- | -------------------------------------------------- |\n| atualizar npm do lodash                                         | Solo                | `dependabot-npm-and-yarn-lodash-4.17.21`           |\n| Atualização do grupo frontend-deps do npm                       | Agrupados           | `dependabot-npm-and-yarn-frontend-deps-fc93691fd4` |\n| atualização do nginx somente com Docker                         | Solo                | `dependabot/docker/nginx-1.25.0`                   |\n| atualizar Django com pip                                        | Solo                | `deps/pip/django-4.2.1`                            |\n| atualizar grupo django-deps pip                                 | Agrupados           | `deps/pip/django-deps-a1b2c3d4e5`                  |\n| Grupo de infraestrutura entre ecossistemas (Docker + Terraform) | Vários ecossistemas | `dependabot/infra/infrastructure-fc93691fd4`       |\n\n> \\[!NOTE]\n> Para grupos de vários ecossistemas:\n>\n> * O `pull-request-branch-name` na entrada `multi-ecosystem-groups` controla o nome da ramificação do PR agrupado entre ecossistemas.\n> * Entradas individuais `updates` que especificam `multi-ecosystem-group`**não podem** ter suas próprias `pull-request-branch-name`. A configuração de nível de grupo tem precedência e é a única usada para essas entradas.\n> *\n\n`{package_manager}` não está disponível em modelos de grupo de vários ecossistemas porque o grupo abrange vários ecossistemas.\n\n> * Um resumo de conteúdo é sempre anexado automaticamente às ramificações de grupos de vários ecossistemas para garantir a unicidade.\n\n### Como a configuração do nome da ramificação se aplica\n\n* **A configuração é por entrada de atualização**: cada entrada `package-ecosystem` independente pode ter sua própria configuração de nome de ramificação. As entradas atribuídas a um grupo de múltiplos ecossistemas usam a configuração no nível do grupo em vez disso.\n* **As PRs existentes não são afetadas**: as alterações se aplicam somente a PRs recém-criadas.\n* **O comportamento padrão permanece inalterado**: se você não configurar nenhuma opção, os nomes de branch permanecerão exatamente como estão hoje.\n\nSe você definir essa opção, isso também afetará as solicitações de pull para atualizações de segurança nos arquivos de manifesto deste gerenciador de pacotes, a menos que você use `target-branch` para verificar se há atualizações de versão em um branch não padrão.\n\n## Direcionar solicitações de pull a uma ramificação não padrão\n\nPor padrão, Dependabot verifica se há arquivos de manifesto na ramificação padrão e abre solicitações de pull para atualizações na ramificação padrão.\n\nGeralmente, faz mais sentido manter as verificações e atualizações de Dependabot na ramificação padrão. No entanto, pode haver casos em que seja necessário especificar uma ramificação de destino diferente. Se, por exemplo, os processos da sua equipe exigirem que você primeiro teste e valide as atualizações em um branch que não seja de produção, você pode usar `target-branch` para especificar um branch diferente para o qual Dependabot abrirá pull requests.\n\n> \\[!NOTE]\n> Dependabot gera solicitações de pull para atualizações de segurança **somente na ramificação padrão**. Se você usar `target-branch`, como resultado, todas as configurações desse gerenciador de pacotes serão aplicadas *somente* às atualizações de versão, e não às de segurança.\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 também [`target-branch`](/pt/code-security/reference/supply-chain-security/dependabot-options-reference#target-branch-)."}