Commit Graph

21 Commits

Author SHA1 Message Date
Sebastian Poxhofer e0cec3dc95 refactor(lint): add types-location rule and enable it for lib/modules (#45497)
feat(lint): add `types-location` rule and enable it for `lib/modules`

Reviewers consistently ask for exported types to be moved into a
colocated `types.ts`. Add a `renovate/types-location` oxlint rule that
reports `export interface` / `export type` declarations outside such a
file, and turn it on across `lib/modules`.

Re-exports (`export type { X }`, `export type *`), file-local types, and
values (enums, classes, functions) are left alone. `schema.ts` files and
`schema/` directories are excluded via config, matching how
`zod-schema-location` is configured — inferred types belong next to the
schema they are derived from.

Relocating the 87 existing violations means:

- new `types.ts` files for the modules that had none
- `terragrunt/common.ts` folded into its `types.ts`, as it held nothing
  else
- `RangeBound` in `versioning/gradle/compare.ts` un-exported, since only
  a file-local interface referenced it
- `bazel-module/parser/fragments.ts` split from its inferred types, which
  now live in `parser/types.ts` and infer through a namespace import so
  each schema keeps its merged name
2026-08-27 19:52:09 +00:00
Sebastian Poxhofer a1971afa78 fix(linters): add linting rule to enforce usage of our regEx utility (#44690)
* ci(linter): add renovate/require-regex-util rule

Adds a custom oxlint rule that flags raw RegExp usage in lib/
production code: any `new RegExp(...)` call and any regex literal
that is not the direct first argument of `regEx(...)`. The regEx()
helper from lib/util/regex.ts uses the RE2 engine for ReDoS-safe
matching and caches compiled patterns. lib/util/regex.ts itself is
exempt.

The rule is disabled for **/*.spec.ts, test/**, and tools/** via
config overrides, because vitest APIs such as expect.stringMatching
need bare RegExp instances (a past commit reverted regEx() there).

Severity is set to "warn" instead of "error": the repo currently has
197 pre-existing violations (above the agreed mechanical-fix
threshold of 80), and a number of them are deliberately
RE2-incompatible patterns (lookahead/lookbehind/named backreferences,
see TODO #12872/#12875 markers in e.g. lib/modules/versioning/rez/
pattern.ts and lib/modules/manager/dockerfile/extract.ts) that need
per-site judgment before they can be wrapped in regEx() or suppressed
with a justified disable comment. No violation fixes are included in
this commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* ci(linter): enforce renovate/require-regex-util at error

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor: use regEx() for regex literals and RegExp construction in lib

Burn down all renovate/require-regex-util violations (197):

- wrap RE2-compatible regex literals and RegExp constructions in regEx()
- rewrite lookaround patterns where behavior is provably preserved:
  goproxy separator split, sbt-package link extraction, leiningen
  comment stripping and keyword search, npm GitHub owner validation
  (unit-count bound replaced by an explicit length check)
- keep native RegExp with disable comments where RE2 cannot be used:
  moo / good-enough-parser lexer patterns (moo rejects RE2 instances),
  MigrationsService propertyName (matched via isRegExp, which RE2
  instances fail), rez named backreferences and lookaheads, GitHub
  markdown link negative lookbehind, emoji astral-plane matching
- drop stale TODO #12875 comments for patterns current re2 handles

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor: reduce require-regex-util disable comments

Rewrite the github massage-markdown-links URL regex to capture an
optional `api.` prefix in a named group (skipped in code) instead of
relying on a negative lookbehind, so both the base and global variants
can use regEx()/RE2 and their two disable comments are removed. Add
spec cases for api-prefixed URLs that match the URL shape.

Consolidate the four related line disables in rez/pattern.ts (bound and
range patterns emulating Python conditional patterns via named
backreferences and lookaheads, which RE2 cannot express) into a single
block disable/enable pair, matching the treatment of the lexer files.

Disable comment count drops from 13 to 8.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor(datasource/sbt-package): use named capture group in link regex

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor(manager/cake): restore original multiLineComment regex spelling

The [^] -> [\\s\\S] rewrite was only needed for an RE2 wrap that was
later reverted; keep the diff minimal.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(datasource/go): skip empty GOPROXY segments

The switch from a lookahead split to a capture-group split (needed because
RE2 has no lookahead support) changed how empty GOPROXY segments parse:
`a|,b` yielded `{ url: ',', fallback: '|' }` before and
`{ url: '', fallback: ',' }` after. The comma fallback only continues on
404/410, so a failing proxy ahead of an empty segment silently stopped the
lookup instead of falling through to the remaining proxies.

Empty segments carry no url to query, so drop them.

* refactor(datasource/go): use isTruthy for empty segment filter

* fix(datasource/go): filter empty segments before mapping

Filtering after the map broke the contextual typing from the
GoproxyItem[] annotation, widening fallback to string.

* refactor(platform/github): use regEx() for merge queue query stripping

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-14 14:30:46 +00:00
Clément Guillot eb255744d4 feat(bazel-module): add Crate dependency extraction (#40393)
* feat(bazel-module): add Crate dependency extraction

* feat(bazel-module): use `crate` versioning when building package dependencies

* feat(bazel-module): use `crate` versioning when building package dependencies

* feat(bazel-module): fix zod import path

* feat(bazel-module): remove explicit `versioning`
2026-03-09 13:18:09 +00:00
Satchi Z Davis 0b99aa135b fix(bazel): fixes parsing of urls in bazelrc files (#41598)
bazelrc spec supports surounding urls with quotes and this PR aligns
functionality to match spec
2026-03-02 16:05:33 +00:00
Sergei Zharinov 9d857c1f68 refactor(lint): Organize imports with biome (#40966) 2026-02-06 13:40:01 +00:00
Sergei Zharinov 930cf6633c refactor: Rewrite imports with .ts extensions (#40700)
fix: Additional vi.mock path corrections and prettier formatting
2026-01-26 22:48:17 +00:00
Punsoong Khut 20c0662fc9 fix(bazel-module): registryAliases for bazel-module oci.pull (#38511)
* registryAlias for bazel-module oci.pull

* use getDep from dockerfile manager instead

* expand testing for oci.pull

* test: merge autoReplaceStringTemplate assertion into registryAliases test

* move assertion to other test

* Update lib/modules/manager/bazel-module/extract.spec.ts

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>

---------

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-01-13 10:21:10 +00:00
Malte Poll b03b944b73 feat(bazel-module): Add support for rules_img use_repo_rule (#37984)
* feat(bazel-module): Add support for rules_img use_repo_rule

* feat(bazel-module): Set registryUrls for rules_img repo rule

* feat(bazel-module): Only set registryUrls on non-empty repository
2025-09-30 23:08:24 +00:00
Rhys Arkins 3da3ca9d17 fix(bazel-module): Revert "feat(bazel-module): Add support for rules_img" (#37501) 2025-08-14 07:32:37 +00:00
Malte Poll 420db001b6 feat(bazel-module): Add support for rules_img (#37429) 2025-08-12 08:24:43 +00:00
Sergei Zharinov 7c79c11285 fix: Always use default import from upath and semver-stable (#37325) 2025-08-05 11:01:45 +00:00
Tobias Schlatter ac782ba07e refactor(bazel-module): Move files that support parsing to ./parser (#34299) 2025-02-20 07:15:32 +00:00
Tobias Schlatter 2a809f4d98 refactor(bazel-module): use bazel syntactic concepts in parser (#34154) 2025-02-12 16:32:27 +00:00
Mark Reuter f97189c600 feat(bazel-module): Support git_repository (#33415) 2025-01-08 12:34:19 +00:00
Tobias Schlatter 22d356b9b1 feat(bazel-module): add support for oci.pull (#32453)
Co-authored-by: Rhys Arkins <rhys@arkins.net>
2024-12-05 16:26:35 +00:00
Aleksei Babich 49b7e1fc82 feat(bazel-module): Add support of maven methods (#30884)
Co-authored-by: Rhys Arkins <rhys@arkins.net>
2024-08-22 13:15:51 +00:00
Sergei Zharinov b69416ce17 refactor(prettier): Force trailing commas (#25631) 2023-11-07 15:50:29 +00:00
Chuck Grindel d99048d7b6 feat: support registry discovery in the bazel-module manager (#22563) 2023-06-06 04:41:29 +00:00
Chuck Grindel 0b96755c64 feat: support git_override in bazel-module manager (#22334) 2023-06-02 06:19:46 +00:00
Michael Kriese 497d4c131f fix(manager): unify logging (#22398)
Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2023-05-25 16:53:05 +00:00
Chuck Grindel 7a1d24209c feat: initial implementation of bazel-module manager (#21893) 2023-05-20 05:34:30 +00:00