Files
renovate/lib/modules/manager/vendir
Sebastian Poxhofer 97327c3d28 refactor(linters): add prefer-coerce-array rule (#45492)
* refactor(linters): add prefer-coerce-array rule

Refs #45217

`x ?? []` and `coerceArray(x)` say the same thing, but only the second
one is searchable and consistent. The rule flags a `??` whose default is
a bare `[]` literal; a non-empty default or an asserted `([] as Foo[])`
still passes.

Applying it across `lib/` surfaced three spots the helper cannot cover,
which keep `?? []` with a disable comment or a narrower fix:

- `package-files.ts` destructures a tuple, which `coerceArray()` widens
- `generate.spec.ts` defaults `matchAll()`, an iterator rather than an array
- `mise/upgradeable-tooling.ts` declares a `Record` return, so its
  `?? []` fallback was wrong to begin with and becomes `coerceObject()`

* refactor(platform/github): hoist the GHE version header lookup

`Object.entries(...).find()` returns a tuple, and defaulting it with
`?? []` only to destructure the second element reads as an array
default when it is not one. Name the found entry instead, which drops
the `?? []` rather than routing a tuple through `coerceArray()`.
2026-08-28 09:27:58 +00:00
..

Renovate can update Helm Chart references and Git references in vendir.yml files, with the vendir tool.

For Renovate to work you must:

  • let vendir create a vendir lockfile
  • put the vendir lockfile in your repository

Helm Charts

Renovate supports HTTPS and OCI Helm chart repositories.

apiVersion: vendir.k14s.io/v1alpha1
kind: Config

# one or more directories to manage with vendir
directories:
  - # path is relative to the `vendir` CLI working directory
    path: config/_ytt_lib
    contents:
      path: github.com/cloudfoundry/cf-k8s-networking
      helmChart:
        # chart name (required)
        name: stable/redis
        # use specific chart version (string; optional)
        version: '1.2.1'
        # specifies Helm repository to fetch from (optional)
        repository:
          # repository url; supports experimental OCI Helm fetch via
          # oci:// scheme (required)
          url: https://...
        # specify Helm binary version to use;
        # '3' means binary 'helm3' needs to be on the path (optional)
        helmVersion: '3'

Registry Aliases

OCI

Aliases for OCI registries are supported via Renovate's dockerfile or docker managers.

Git

Renovate can update explicit refs in Git references in vendir.yml files.

apiVersion: vendir.k14s.io/v1alpha1
kind: Config

# one or more directories to manage with vendir
directories:
  - path: config/_ytt_lib
    contents:
      path: github.com/cloudfoundry/cf-k8s-networking
      git:
        # HTTP or SSH URLs are supported (required)
        url: https://github.com/cloudfoundry/cf-k8s-networking
        # branch, tag, commit; origin is the name of the remote (required)
        # optional if refSelection is specified (available in v0.11.0+)
        ref: origin/master
        # depth of commits to fetch; 0 (default) means everything (optional; v0.29.0+)
        depth: 1
        ...

GithubRelease

Renovate can update explicit tags in GitHub releases in vendir.yml files.

directories:
  - path: config/_ytt_lib
    contents:
      path: github.com/cloudfoundry/cf-k8s-networking
      githubRelease:
        # slug for repository (org/repo) (required)
        slug: k14s/kapp-controller
        # use release tag (optional)
        # optional if tagSelection is specified (available in v0.22.0+)
        tag: v0.1.0

HTTP

!!! note Updates to dependencies tracked through the HTTP source can only be updated using lockFileMaintenance.

Renovate can extract HTTP dependency sources, but will not update them without lockFileMaintenance.

apiVersion: vendir.k14s.io/v1alpha1
kind: Config
directories:
  - path: internal
    contents:
      - path: renovate-ce
        http:
          url: https://raw.githubusercontent.com/mend/renovate-ce-ee/refs/main/docs/openapi-community.yaml