Files
renovate/lib/modules/platform/forgejo
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
..

Forgejo

Renovate supports Forgejo.

Authentication

First, create a Personal Access Token (PAT) for the bot account. The bot account should have full name and email address configured. Then let Renovate use your PAT by doing one of the following:

  • Set your PAT as a token in your config.js file
  • Set your PAT as an environment variable RENOVATE_TOKEN
  • Set your PAT when you run Renovate in the CLI with --token=

You must set platform=forgejo in your Renovate config file.

The PAT should have these permissions:

Scope Permission Valid for Forgejo versions Notes
repo Read and Write all
user Read all
issue Read and Write >= 1.20.0
organization Read >= 1.20.0 Required to read org labels and teams
email Read <= 1.19.3
misc Read Only for 1.20.0 and 1.20.1

If you use Forgejo packages, add the read:packages scope.

Unsupported platform features/concepts

  • platformAutomerge (true by default) for platform-native automerge not supported: Forgejo versions older than v10.0.0 don't support required branch autodelete for automerge.

Features awaiting implementation

  • none

Repo autodiscover

Renovate can discover repositories on Forgejo using the autodiscover feature. Repositories are ignored when one of the following conditions is met:

  • The repository is a mirror
  • We do not have push or pull permissions to that repository
  • Pull requests are disabled for that repository

You can change the default server-side sort method and order for autodiscover API. Set those via autodiscoverRepoSort and autodiscoverRepoOrder. Read the Forgejo swagger docs for more details.

Merge style

Renovate uses the repository's default merge style if allowed; if the default merge style is not an allowed merge style, renovate falls back to an allowed merge style as per an order chosen to minimize commits. If no merge style is allowed, the repository is blocked.