Skip to content

Server settings ​

Operator settings for patchula --server, in a Pkl file that amends the bundled PatchulaServer.pkl. Print the schema with patchula config server-schema and check a file with patchula config check-server <path>. Secrets are never settings.

FieldTypeDefaultMeaning
triggersTriggersall onwhich events start a batch
sweepCronString?"0 0 * * * *"six-field cron with seconds; null turns sweeps off
sweepTimezoneString"UTC"IANA timezone for the sweep
concurrencyInt8repositories scanned at once, 1 to 100
batchSizeInt32queue entries per batch, 1 to 1000
coalescingMsInt1000how long the first event waits for company, 0 to 60000
recheck"now"|"next-run"?null (now)checkbox wording; flags and environment win
reportDirectoryString?nullwrite each report to a file here instead of logging it
allowedInstallationsListing<Int>anyinstallation IDs to serve
allowedRepositoriesListing<String>anyowner/repo names to serve, case-insensitive

triggers has push, dashboard, pullRequestEdited, pullRequestClosed, installation and checks, all true by default.

When both allowlists are set, both must match. Work is filtered when it is accepted and again just before it runs.

The schema ​

pkl
/// Operator-owned API server settings. Secrets are deliberately absent.
module PatchulaServer

triggers: Triggers = new {}
sweepCron: String? = "0 0 * * * *"
sweepTimezone: String = "UTC"
concurrency: Int = 8
batchSize: Int = 32
coalescingMs: Int = 1000
/// null uses server default (now); flags/env take precedence.
recheck: "now"|"next-run"? = null
/// null emits the versioned report as a structured log event.
reportDirectory: String? = null
/// Empty lists allow all installations/repositories the App can access.
allowedInstallations: Listing<Int> = new {}
allowedRepositories: Listing<String> = new {}

class Triggers {
  push: Boolean = true
  dashboard: Boolean = true
  pullRequestEdited: Boolean = true
  pullRequestClosed: Boolean = true
  installation: Boolean = true
  checks: Boolean = true
}

MIT licensed. Clean-room: no Renovate source was read in the making of this bat.