Skip to content

Commit 5604e11

Browse files
authored
chore(deps): add dependabot configuration for example packages (#200)
Adds Dependabot monitoring for all four example package directories and fixes the Verify Package Coverage workflow to support non-workspace packages. Changes: - Added Dependabot npm configs for examples/cjs-consumer, examples/esm-consumer, examples/typescript-cjs-consumer, and examples/typescript-esm-consumer - Each example has weekly updates, lower PR limit (5), and 'examples' label - TypeScript examples include @types/node pinning (v20.x) - Updated Verify Package Coverage workflow to recognize individual Dependabot configs in addition to workspace packages The example packages are test fixtures for package compatibility verification that need dependency updates to stay current but are intentionally not part of the main workspace.
1 parent 8d63837 commit 5604e11

2 files changed

Lines changed: 74 additions & 2 deletions

File tree

.github/dependabot.yml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,69 @@ updates:
119119
# Note: Security updates are not grouped - they create immediate individual PRs
120120
open-pull-requests-limit: 10
121121
rebase-strategy: 'auto'
122+
123+
# Example packages - test fixtures for package compatibility
124+
- package-ecosystem: 'npm'
125+
directory: '/examples/cjs-consumer'
126+
schedule:
127+
interval: 'weekly'
128+
day: 'monday'
129+
time: '03:00'
130+
labels:
131+
- 'dependencies'
132+
- 'npm'
133+
- 'examples'
134+
commit-message:
135+
prefix: 'chore(deps)'
136+
include: 'scope'
137+
open-pull-requests-limit: 5
138+
139+
- package-ecosystem: 'npm'
140+
directory: '/examples/esm-consumer'
141+
schedule:
142+
interval: 'weekly'
143+
day: 'monday'
144+
time: '03:00'
145+
labels:
146+
- 'dependencies'
147+
- 'npm'
148+
- 'examples'
149+
commit-message:
150+
prefix: 'chore(deps)'
151+
include: 'scope'
152+
open-pull-requests-limit: 5
153+
154+
- package-ecosystem: 'npm'
155+
directory: '/examples/typescript-cjs-consumer'
156+
schedule:
157+
interval: 'weekly'
158+
day: 'monday'
159+
time: '03:00'
160+
labels:
161+
- 'dependencies'
162+
- 'npm'
163+
- 'examples'
164+
commit-message:
165+
prefix: 'chore(deps)'
166+
include: 'scope'
167+
# Pin @types/node to v20.x to match minimum supported Node.js version
168+
ignore:
169+
- dependency-name: '@types/node'
170+
update-types: ['version-update:semver-major']
171+
versions: ['>=21']
172+
open-pull-requests-limit: 5
173+
174+
- package-ecosystem: 'npm'
175+
directory: '/examples/typescript-esm-consumer'
176+
schedule:
177+
interval: 'weekly'
178+
day: 'monday'
179+
time: '03:00'
180+
labels:
181+
- 'dependencies'
182+
- 'npm'
183+
- 'examples'
184+
commit-message:
185+
prefix: 'chore(deps)'
186+
include: 'scope'
187+
open-pull-requests-limit: 5

.github/workflows/dependabot-verify.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,10 @@ jobs:
6666
echo " Root configuration covers all workspace packages"
6767
echo ""
6868
69-
# Verify all packages are in workspace
69+
# Extract all dependabot directories for checking
70+
dependabot_dirs=$(grep -A 1 "package-ecosystem: 'npm'" "$config_file" | grep "directory:" | awk '{print $2}' | tr -d "'")
71+
72+
# Verify all packages are covered (either in workspace or have individual config)
7073
coverage_ok=true
7174
for pkg in $packages; do
7275
pkg_dir=$(dirname "$pkg")
@@ -77,8 +80,11 @@ jobs:
7780
# Check if package is in workspace
7881
if echo "$has_workspaces" | jq -e --arg dir "$pkg_dir" 'any(. == $dir or . == ($dir | split("/")[0] + "/*"))' >/dev/null 2>&1; then
7982
echo "✅ $pkg_dir is covered (workspace)"
83+
# Check if package has individual dependabot config
84+
elif echo "$dependabot_dirs" | grep -q "^/$pkg_dir$"; then
85+
echo "✅ $pkg_dir is covered (individual config)"
8086
else
81-
echo "❌ $pkg_dir is NOT in workspace configuration!"
87+
echo "❌ $pkg_dir is NOT covered!"
8288
coverage_ok=false
8389
fi
8490
fi

0 commit comments

Comments
 (0)