Skip to content

fix(CI): add required patterns key to Dependabot ecosystem entries#123

Merged
mxriverlynn merged 1 commit into
mainfrom
fix/dependabot-multi-ecosystem-patterns
Jul 14, 2026
Merged

fix(CI): add required patterns key to Dependabot ecosystem entries#123
mxriverlynn merged 1 commit into
mainfrom
fix/dependabot-multi-ecosystem-patterns

Conversation

@mxriverlynn

Copy link
Copy Markdown
Collaborator

What's broken

Dependabot rejects .github/dependabot.yml outright:

The property #/updates/0/patterns is required when multi-ecosystem-group is set.

Because the config fails to parse, no Dependabot update PRs can open at all — the monthly dev-tooling bundle has never run. The failing check shows up on every open PR, including #114.

Why

An updates: entry that joins a multi-ecosystem group has to declare which dependencies it takes in. All three entries (npm, github-actions, pre-commit) set multi-ecosystem-group: dev-tooling but omitted patterns, so none of them validated.

The fix

Add patterns: ["*"] to each of the three entries, which is how GitHub documents "include every dependency in this ecosystem." The existing group and cooldown settings are unchanged.

Verified against GitHub's multi-ecosystem updates docs, whose troubleshooting section states the patterns key is "required when using multi-ecosystem-group", and corroborated by dependabot-core#12437, where a user hits the identical error string.

Note on the lint check

This branch is cut from main, which still carries pre-existing lint failures (Prettier was never run across the repo, plus two shellcheck findings and a broken symlink). Those are fixed in #114, so the lint job on this PR will fail until #114 merges. It is not caused by this change, which touches only .github/dependabot.yml.

Dependabot rejected the whole config with:

  The property '#/updates/0/patterns' is required when 'multi-ecosystem-group'
  is set.

An updates entry that joins a multi-ecosystem group must declare which
dependencies it takes in; GitHub documents `["*"]` as the way to include all
of them. All three entries (npm, github-actions, pre-commit) set the group but
omitted patterns, so none of them validated and no update PRs could open.

Add `patterns: ["*"]` to each entry, preserving the existing group and
cooldown settings.
@mxriverlynn mxriverlynn merged commit ecad828 into main Jul 14, 2026
1 of 2 checks passed
@mxriverlynn mxriverlynn deleted the fix/dependabot-multi-ecosystem-patterns branch July 14, 2026 16:49
mxriverlynn added a commit that referenced this pull request Jul 14, 2026
## Why

The `lint` job has failed on every branch, including `main`, since CI
landed in #120. Two of its three failures are small and fixed here.

These fixes were originally pushed to the
`fix/dependabot-multi-ecosystem-patterns` branch, but #123 merged at
`408ff77` before they were picked up, so they never reached `main`. This
re-lands them.

## What

- **`init-guidance.sh` (SC2016).** The `sed` expression matches the
literal string `${CLAUDE_PLUGIN_ROOT}`, which must *not* expand, so the
single quotes are correct. Silences the check rather than changing
behavior.
- **`upload-screenshots.sh` (SC2034).** The retry loop's counter is
never read. Binding it to `_` states that in the code instead of
suppressing the warning.
- **`.claude/rules/plugin-entity-taxonomy.md`.** The symlink pointed at
`docs/guidance/`, where the taxonomy no longer lives. Repointed at its
real home under `han-plugin-builder/`.

## Verification

`shellcheck` and `check-symlinks` both pass; `npm test` passes.

## Still red: prettier

The lint job's third failure is prettier, and it is **not** fixed here.
It is not a mechanical reformat — running it corrupts instructional
content:

- It **renumbers ordered lists**. In `coding-standard/SKILL.md` step
`4.` becomes `3.`, while that file's prose still refers to "Step 6" and
"Step 7" — silently misdirecting instructions Claude executes.
- It **trims inline code spans**. The issue-heading spec `` ` — ` ``
(em-dash *with surrounding spaces*) becomes `` `—` ``, while the prose
beside it still reads "em-dash with surrounding spaces".

Neither is configurable away: both persist under `proseWrap: preserve` +
`embeddedLanguageFormatting: off`. They are core CommonMark
normalizations. Left for a separate decision.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant