DO NOT MERGE: dependencyDashboard, matchPackageNames, hostRules placeholder for @wave-av registry - #44
Draft
yakimoto wants to merge 1 commit into
Draft
DO NOT MERGE: dependencyDashboard, matchPackageNames, hostRules placeholder for @wave-av registry#44yakimoto wants to merge 1 commit into
yakimoto wants to merge 1 commit into
Conversation
…al placeholder Renovate's own Dependency Dashboard (wave-foundation issue #698) reports `Failed to look up npm package @wave-av/messaging: no-result` because npmrc pointed @wave-av at npm.pkg.github.com with no credential attached. This has meant zero @wave-av/* bumps in ~61 consumer repos. - dependencyDashboard: true set explicitly (was only implied via the :dependencyDashboard preset + config:recommended default) so every consumer surfaces its own Renovate failures instead of failing silently. - matchPackagePatterns (removed from current Renovate docs) migrated to matchPackageNames with glob syntax per https://docs.renovatebot.com/configuration-options/#packagerulesmatchpackagenames - hostRules added using the Mend-hosted-app-current `{{ secrets.NAME }}` reference (developer.mend.io Credentials UI), NOT the classic app.renovatebot.com/encrypt `encrypted` field, because Mend's own docs state cloud apps no longer read encrypted secrets from repo config files: https://docs.renovatebot.com/mend-hosted/credentials/ - npmrc registry URL aligned with hostRules matchHost (trailing slash) per Renovate's private-packages GitHub Packages example. Validated with renovate-config-validator --strict --no-global (both renovate@42.99.0 and current renovate@44.65.1): Config validated successfully. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BdUbkR1zhogcTMWdbFRJKz
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
Reviewer's guide (collapsed on small PRs)Reviewer's GuideUpdates the shared Renovate configuration to expose lookup failures, use current package matching syntax, and reference a Mend-hosted GitHub Packages token. The configuration validates, but the PR is intentionally incomplete operationally: an org-level secret and confirmation or remediation of Mend inherited-config and installation-mode settings are still required before the changes can affect the intended consumer repositories. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DO NOT MERGE — one human step still required (see bottom)
Measured evidence
Renovate's own Dependency Dashboard on
wave-av/wave-foundation(issue #698) prints, verbatim:Root cause:
wave-av/.github/renovate.jsonsets"npmrc": "@wave-av:registry=https://npm.pkg.github.com"but supplies no credential forthat registry, so every npm-registry lookup for a
@wave-av/*scoped package returnsno-result(GitHub Packages requires auth even for reads). Result: Renovate has neveropened a
@wave-av/spoke-chassisbump PR in any of the ~61 consumer repos.What changed in this PR
dependencyDashboard: trueset explicitly (top-level), in addition to the existing:dependencyDashboardpreset already inextends. This is the highest-value changelandable without a token: every consumer repo that actually resolves this shared config
will get a Dependency Dashboard issue printing its own Renovate failures, the same way
wave-foundation's issue #698 already does — instead of failing with zero visible symptom.
matchPackagePatterns→matchPackageNames.matchPackagePatternsno longer appearsanywhere in current Renovate docs (verified: zero hits against the live
configuration-optionspage) — it is fully retired, not merely soft-deprecated. Migrated"matchPackagePatterns": ["^@wave-av/"]to the documented glob form"matchPackageNames": ["@wave-av/**"], perhttps://docs.renovatebot.com/configuration-options/#packagerulesmatchpackagenames (the
docs' own example for scope-prefix matching is literally
"@angular/**").hostRulesadded — but NOT the way the brief assumed. I initially planned to use theclassic
app.renovatebot.com/encrypt→"encrypted": {"token": "..."}shape shown inRenovate's self-hosted "private packages" doc. Checking Mend's own Mend-hosted Apps
Configuration → Credentials page first:
Since wave-av uses the Mend GitHub App (confirmed, not self-hosted), an
encryptedblobpasted into this file would be silently ignored — it would look fixed and would not
be. The current, actually-functional mechanism is a secrets-template reference resolved
by the Mend Portal at runtime:
This value needs no further edit once the matching secret exists (see human step below).
npmrcregistry URL aligned withmatchHost(added trailing slash) to matchRenovate's own GitHub-Packages example exactly (mismatched slash has caused silent
non-matches for other users per Renovate's issue tracker patterns for this exact config).
Why the caret-on-0.x behavior hid this for so long
@wave-av/*packages are consumed with npm's default caret range (^0.x.y). Renovate'sdefault
rangeStrategyisauto, which for npm behaves as: if the newest version alreadysatisfies the existing range, do nothing (https://docs.renovatebot.com/configuration-options/#rangestrategy
— "if your package.json specifies
^1.0.0and latest is1.2.0, Renovate won't changeanything because 1.2.0 satisfies the range"). Caret on a
0.xversion is even narrower —it only floats the patch digit. The packageRule in this same file already sets
rangeStrategy: "bump"specifically to force visible PRs on every publish and defeat thisquieting effect — but that packageRule, like the npmrc credential, never reached any
consumer repo (see propagation finding below), so consumers got the least-visible possible
behavior: a caret range that silently absorbs same-0.x releases, on top of a registry
lookup that silently fails outright. Zero PRs looked exactly like "this scope just doesn't
publish often," not like "this is broken."
Why the dashboard fix matters independently of the credential
Even after a human adds the token, Renovate will still hit
no-resultfailures for otherreasons over time (registry incidents, revoked/rotated tokens, new private scopes added
without updating
npmrc/hostRules, rate limits). Without a Dependency Dashboard, everyfuture failure of this kind is invisible again, org-wide, indefinitely — exactly what
happened here for however long this config has existed. The dashboard is the fleet's only
early-warning surface for this entire class of failure; it needs to be on regardless of
whether today's specific credential problem is fixed.
Validator output
Ran
renovate-config-validator --strict --no-global renovate.jsonvianpx --package renovateagainst both the currently-installed major (
42.99.0) and the latest resolvable publishedversion (
44.65.1—44.65.2/latestdist-tag currently 404s from the npm registry, aregistry-side issue unrelated to this PR):
(A harmless
RE2 not usable, falling back to RegExpwarning appears on 44.65.1 — anative-module build artifact of the sandboxed
npxinstall, not a config issue.)Other repos with their own renovate.json (checked per brief's instruction)
gh api search/code -f q='filename:renovate.json org:wave-av'returns exactly 3 hits in thewhole org:
wave-av/.github(this file),wave-av/wave-foundation, andwave-av/wave-foundation-public. Neither wave-foundation repo's renovate.json extends orreferences
wave-av/.githubin any way — both are fully self-contained, with their own":dependencyDashboard"and nonpmrc/hostRulesat all. That is consistent withwave-foundation's issue #698 dashboard existing (it has its own explicit
dependencyDashboardconfig) independent of anything in this PR, and itsno-resulterrors coming from wave-foundation's own
package.jsondepending on@wave-av/messaging/@wave-av/observabilitydirectly, hitting the default (unauthenticated) npm registryresolution path.
IMPORTANT — additional finding beyond the brief's scope (not fixed here, flagging honestly)
Cross-checking Mend's hosted-app docs (not just the generic self-hosted Renovate docs)
surfaced that
wave-av/.github/renovate.jsonis very likely not read by the Mend GitHubApp for org-wide default/inherited config at all, independent of anything in this diff:
inherited config only in a repo literally named
renovate-config(not.github),containing a file literally named
org-inherited-config.json(notrenovate.json):https://docs.renovatebot.com/mend-hosted/hosted-apps-config/
wave-av/renovate-configdoes not exist (gh repo view wave-av/renovate-config→ 404,verified this session).
renovate.json(confirmed by thesame code search above), there is no
"extends": ["github>wave-av/.github"]-stylereference anywhere that would pull this file in another way either.
repo to Silent mode (
dryRun=lookup), which suppresses both PRs and Issues(including the Dependency Dashboard) regardless of config content, until flipped to
Interactive at the repo or org level in the Mend Developer Portal.
I did not act on either of these — creating an org-visible
renovate-configrepository orchanging the GitHub App's install/silent-mode settings has organization-wide blast radius
and is exactly the kind of decision that needs a human, same as the credential. Flagging so
the credential fix in this PR isn't mistaken for "done" if the dashboards still don't show
up after it merges.
Exact remaining human step(s)
https://developer.mend.io, opens the
wave-avorganization's Credentials settingspage, and adds an org-level secret named exactly
WAVE_AV_NPM_PKG_GITHUB_TOKENcontaining a GitHub PAT scoped to
read:packagesfor thewave-avorg (classic PAT, ora fine-grained PAT with Packages: Read). No further file edit is needed — the
{{ secrets.WAVE_AV_NPM_PKG_GITHUB_TOKEN }}reference in this file resolvesautomatically once that secret exists. (This replaces the brief's assumed
app.renovatebot.com/encryptstep, which Mend's cloud app no longer honors — see above.)whether
wave-av/.github/renovate.jsonis intended to be the org-wide default, and ifso, create
wave-av/renovate-configwithorg-inherited-config.json(same content asthis file) per Mend's actual inherited-config mechanism, and confirm the app's install
mode (All vs. Selected repositories / Silent vs. Interactive) in the Mend Developer
Portal — otherwise steps 1–4 in this PR may have no observable effect on the 61 consumer
repos.
🤖 Generated with Claude Code
https://claude.ai/code/session_01BdUbkR1zhogcTMWdbFRJKz
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by Sourcery
Improve Renovate visibility and private @wave-av package resolution by enabling dashboards and updating registry authentication and package matching configuration.
New Features:
Bug Fixes:
Tests:
Chores: