Skip to content

OWNERS.toml

Place an OWNERS.toml in any directory to require review approvals for changes under that path. Ownership is hierarchical: a changed file is governed by the OWNERS files in its directory and all ancestor directories, unless a closer file sets no_parent.

# Optional. When true, OWNERS files in ANCESTOR directories no longer
# apply to paths under this directory (severs upward inheritance).
# Default false.
no_parent = false
[approvals]
# Principals eligible to approve changes in this scope.
# Format: "kind:id". Only "user:<id>" is supported today
# (e.g. "user:abc123"); "team:<id>" is reserved for later.
owners = ["user:abc123", "user:def456"]
# Number of distinct eligible approvals required in this scope.
# omitted -> 1
# 0 -> none required (e.g. a generated subtree; usually paired
# with no_parent = true)
# A positive `min` with no `owners` is rejected (it can never be met).
min = 1

The merge gate (garden pr merge) computes the changed-file set, loads the governing OWNERS scopes, and requires each to be satisfied: at least min distinct non-author owners have an APPROVED review. This is one of three merge requirements, alongside green CI and all review threads resolved.

Check a PR’s owner-approval status with garden pr view <pr>.