Skip to content

Commit b7c503b

Browse files
ci(dependabot): cap npm rollups at 11 for minor + patch (#36438)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 parent 9846ec3 commit b7c503b

4 files changed

Lines changed: 27 additions & 41 deletions

File tree

.agents/skills/dependabot-rollup/SKILL.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: dependabot-rollup
33
description: >-
4-
Review and optionally combine open Dependabot patch and minor pull requests into a validated draft rollup PR. Use this skill to test Dependabot bundling locally or in a cloud agent without adding a scheduled GitHub Actions workflow. Always presents a dry-run plan and requires explicit approval before changing branches or GitHub pull requests.
4+
Review and optionally combine at most 11 open Dependabot patch and minor pull requests into a validated draft rollup PR. Use this skill to test Dependabot bundling locally or in a cloud agent without adding a scheduled GitHub Actions workflow. Always presents a dry-run plan and requires explicit approval before changing branches or GitHub pull requests.
55
disable-model-invocation: true
66
argument-hint: '[--repo owner/repo] [--base branch] [--max count] [--push-remote remote]'
77
allowed-tools: Bash Read Grep Glob
@@ -17,10 +17,10 @@ Build a reviewable rollup of compatible Dependabot updates without scheduled aut
1717
| --------------- | ---------------------------------- | --------------------------------------------- |
1818
| `--repo` | `microsoft/fluentui` | Repository containing the Dependabot PRs |
1919
| `--base` | `master` | Base branch for discovery and the rollup |
20-
| `--max` | `11` | Maximum eligible PRs in one proposed rollup |
20+
| `--max` | `11` | Eligible PR limit, from 1 through 11 |
2121
| `--push-remote` | Current branch's configured remote | Writable fork remote used only after approval |
2222

23-
Parse overrides from `$ARGUMENTS`. Reject an invalid repository name, a non-positive integer for `--max`, an unknown Git remote, or unknown arguments instead of guessing.
23+
Parse overrides from `$ARGUMENTS`. Reject an invalid repository name, a `--max` value that is not an integer from 1 through 11, an unknown Git remote, or unknown arguments instead of guessing. The value 11 is an absolute ceiling, not only the default.
2424

2525
## Workflow
2626

@@ -197,6 +197,7 @@ Report:
197197
- Never run on a schedule or add a GitHub Actions workflow.
198198
- Never request or print a GitHub token; use the user's existing `gh` authentication.
199199
- Never include semver-major, non-semver, downgrade, or unparseable updates.
200+
- Never propose, merge, or publish a rollup containing more than 11 updates.
200201
- Never include more than one PR for the same dependency in a proposed rollup.
201202
- Never mutate the user's current working tree.
202203
- Never auto-resolve merge conflicts or bypass failed validation.

.github/dependabot.yml

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,14 @@ updates:
1313
- 'minor'
1414
- 'patch'
1515

16-
# npm dependencies - weekly minor and patch updates grouped by dependency type
16+
# npm dependencies - weekly minor and patch updates
1717
- package-ecosystem: 'npm'
1818
directory: '/'
1919
schedule:
2020
interval: 'weekly'
2121
open-pull-requests-limit: 6
2222
versioning-strategy: increase
2323
ignore:
24-
# Ignore major version bumps for all npm dependencies in weekly updates
24+
# Ignore major version bumps for scheduled npm version updates
2525
- dependency-name: '*'
2626
update-types: ['version-update:semver-major']
27-
groups:
28-
npm-security-updates:
29-
applies-to: security-updates
30-
patterns:
31-
- '*'
32-
npm-dev-minor-patch:
33-
dependency-type: 'development'
34-
patterns:
35-
- '*'
36-
update-types:
37-
- 'minor'
38-
- 'patch'
39-
npm-prod-minor-patch:
40-
dependency-type: 'production'
41-
patterns:
42-
- '*'
43-
update-types:
44-
- 'minor'
45-
- 'patch'

.github/instructions/dependabot-security-fixes.instructions.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,28 @@ This instruction guide explains how Dependabot automation works for security fix
1010

1111
Dependabot is configured to automatically create pull requests for:
1212

13-
1. **Security updates** - Advisory-driven updates grouped into consolidated npm pull requests
14-
2. **npm dependencies** - Weekly minor and patch updates grouped by dependency type
13+
1. **Security updates** - Advisory-driven npm pull requests created independently for each update
14+
2. **npm dependencies** - Weekly minor and patch version updates created as individual pull requests
1515
3. **GitHub Actions** - Weekly updates for workflow dependencies
1616

1717
## Configuration
1818

1919
The Dependabot configuration is defined in `.github/dependabot.yml`:
2020

21-
- **Production dependencies**: Weekly minor and patch version updates
22-
- **Development dependencies**: Weekly minor and patch version updates
21+
- **npm dependencies**: Weekly minor and patch version updates as individual pull requests
2322
- **GitHub Actions**: Weekly updates
24-
- **Security updates**: Grouped separately and not limited by the version update schedule
23+
- **Security updates**: Individual pull requests not limited by the version update schedule
24+
- **Rollups**: Maintainers can use `/dependabot-rollup` to combine at most 11 eligible non-major updates
25+
26+
The repository's Advanced Security **Grouped security updates** setting must remain disabled. Dependabot does not support a maximum dependency count for automatic groups, so enabling that setting would bypass the 11-update rollup limit.
27+
28+
The npm `open-pull-requests-limit` controls the number of scheduled version-update pull requests. It does not limit the number of dependencies in a pull request or change Dependabot's separate security-update pull request limit.
2529

2630
## Security Vulnerability Resolution
2731

2832
### Automatic Security Updates
2933

30-
GitHub triggers automatic security updates independently of the configured version update schedule. The Dependabot configuration groups eligible npm security updates into consolidated pull requests, including fixes that require major version bumps.
34+
GitHub triggers automatic security updates independently of the configured version update schedule. Each npm security update remains a separate pull request. Major security remediations are never included in `/dependabot-rollup`, so compatibility work stays isolated for focused review.
3135

3236
### Manual Resolution via Yarn Resolutions
3337

AGENTS.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,17 @@ state.root.className = mergeClasses(
9191

9292
## Skills (Slash Commands)
9393

94-
| Skill | Command | Purpose |
95-
| ------------------- | -------------------- | ---------------------------------------------------------- |
96-
| `v9-component` | `/v9-component Name` | Scaffold a new v9 component with all required files |
97-
| `change` | `/change` | Create beachball change file from current diff |
98-
| `lint-check` | `/lint-check [pkg]` | Run lint, parse errors, and auto-fix common issues |
99-
| `token-lookup` | `/token-lookup val` | Find the design token for a hardcoded CSS value |
100-
| `package-info` | `/package-info pkg` | Quick lookup: path, deps, owner, tests, structure |
101-
| `visual-test` | `/visual-test Name` | Visually verify a component via Storybook + playwright-cli |
102-
| `review-pr` | `/review-pr #123` | Review a PR with confidence scoring and category checks |
103-
| `triage-issues` | `/triage-issues` | Walk the Needs-Triage queue and recommend labels/assignee |
104-
| `dependabot-rollup` | `/dependabot-rollup` | Dry-run and optionally roll up Dependabot patch/minor PRs |
94+
| Skill | Command | Purpose |
95+
| ------------------- | -------------------- | -------------------------------------------------------------------- |
96+
| `v9-component` | `/v9-component Name` | Scaffold a new v9 component with all required files |
97+
| `change` | `/change` | Create beachball change file from current diff |
98+
| `lint-check` | `/lint-check [pkg]` | Run lint, parse errors, and auto-fix common issues |
99+
| `token-lookup` | `/token-lookup val` | Find the design token for a hardcoded CSS value |
100+
| `package-info` | `/package-info pkg` | Quick lookup: path, deps, owner, tests, structure |
101+
| `visual-test` | `/visual-test Name` | Visually verify a component via Storybook + playwright-cli |
102+
| `review-pr` | `/review-pr #123` | Review a PR with confidence scoring and category checks |
103+
| `triage-issues` | `/triage-issues` | Walk the Needs-Triage queue and recommend labels/assignee |
104+
| `dependabot-rollup` | `/dependabot-rollup` | Dry-run and optionally roll up at most 11 Dependabot patch/minor PRs |
105105

106106
## Package Layout
107107

0 commit comments

Comments
 (0)