Files
cozystack/.github/CODEOWNERS
Timofei Larkin e5d4940338 chore(codeowners): don't gate per-app generated files on architect review
api/apps/v1alpha1/*/types.go and packages/system/*/cozyrds/*.yaml are
entirely produced by `make generate` from each app's own values.yaml,
but the /api/ codeowner rule pulled every app's regenerated types.go
into an architect-only review, regardless of which area actually
changed. Correctness there is already enforced by the pre-commit
make-generate CI hooks, not by human review, so list no owner for
these generated paths and let that check carry the weight instead.

Also fixes a stale api/.gitattributes pattern that never matched any
real file (zz_generated_deepcopy.go vs the actual
zz_generated.deepcopy.go), and adds a matching linguist-generated
attribute for the cozyrds ApplicationDefinition manifests, so both
collapse in the PR diff view like the Go files already do.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Timofei Larkin <lllamnyp@gmail.com>
2026-08-03 14:08:36 +03:00

152 lines
8.8 KiB
Plaintext

# This file encodes the area-scoped Reviewer role from the Contributor Ladder
# (CONTRIBUTOR_LADDER.md): the handles below have review authority over the
# matching paths. This is intentionally a different set from the governance
# roster in MAINTAINERS.md — a Reviewer owns a specific code area, while a
# Maintainer is responsible for the whole project. The two overlap but are not
# identical by design. Security reports are NOT routed through this file; see
# SECURITY.md (GitHub Private Vulnerability Reporting + MAINTAINERS.md).
#
# Ordering matters: CODEOWNERS applies the LAST matching pattern, so entries go
# from broad to specific. The API review gate block stays last so it cannot be
# overridden.
#
# "Require review from Code Owners" is already enabled on main, so these rules
# gate merges from the moment this file lands — they are not an intention to be
# tightened later. That makes an unhonoured owner worse than a wrong one: GitHub
# ignores a handle without write access, so scoping a path to someone who lacks
# it carves that path out from under the catch-all and leaves it gating on
# nobody, without reporting anything.
# --- Default: architects own anything not scoped below ---
* @kvaps @lllamnyp
# --- Dashboards, examples, tests (largest fall-throughs to the default) ---
/dashboards/ @myasnikovdaniil @IvanHunters
/examples/ @lllamnyp @myasnikovdaniil
/examples/backups/ @androndo @lllamnyp
/test/ @myasnikovdaniil
# --- All packages: general owners (overridden by the specific areas below) ---
/packages/ @lexfrei @IvanHunters @myasnikovdaniil @sircthulhu
# --- Go source: general owners (specific cmd/pkg areas overridden below) ---
/cmd/ @kvaps @lllamnyp @sircthulhu @lexfrei
/internal/ @kvaps @lllamnyp @sircthulhu @lexfrei
/pkg/ @kvaps @lllamnyp @sircthulhu @lexfrei
# --- Apps: default owners (specific apps overridden below) ---
/packages/apps/ @lexfrei @IvanHunters @myasnikovdaniil @scooby87
/packages/apps/vm-instance/ @scooby87 @lllamnyp @kvaps @myasnikovdaniil
/packages/apps/vm-disk/ @scooby87 @lllamnyp @kvaps @myasnikovdaniil
/packages/apps/vpc/ @kvaps @lllamnyp
# --- Managed Kubernetes: app chart, node pools, resource definitions, control plane, CAPI ---
/packages/apps/kubernetes/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
/packages/apps/kubernetes-nodes/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
/packages/system/kubernetes-rd/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
/packages/system/kubernetes-nodes-rd/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
/packages/system/kamaji/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
/packages/system/capi-operator/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
/packages/system/capi-providers-core/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
/packages/system/capi-providers-bootstrap/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
/packages/system/capi-providers-cpprovider/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
/packages/system/capi-providers-infraprovider/ @IvanHunters @kvaps @myasnikovdaniil @lexfrei
# --- Extra apps ---
/packages/extra/ @kvaps @lllamnyp @IvanHunters @lexfrei @myasnikovdaniil
# --- Core (installer / platform / talos / flux-aio) ---
/packages/core/ @lllamnyp @kvaps @myasnikovdaniil @IvanHunters @lexfrei
# --- Virtualization (system side) ---
/packages/system/kubevirt/ @scooby87 @lllamnyp @kvaps @lexfrei
/packages/system/kubevirt-cdi/ @scooby87 @lllamnyp @kvaps
/packages/system/kubevirt-cdi-operator/ @scooby87 @lllamnyp @kvaps @myasnikovdaniil
/packages/system/kubevirt-operator/ @scooby87 @lllamnyp @kvaps @myasnikovdaniil @IvanHunters
/packages/system/kubevirt-instancetypes/ @scooby87 @lllamnyp @kvaps @myasnikovdaniil
/packages/system/kubevirt-csi-node/ @scooby87 @lllamnyp @kvaps @myasnikovdaniil
/packages/system/vm-default-images/ @scooby87 @lllamnyp @kvaps @myasnikovdaniil
# --- Backups ---
/packages/system/backup-controller/ @androndo @lllamnyp @lexfrei
/packages/system/backupstrategy-controller/ @androndo @lllamnyp
/packages/system/velero/ @androndo @lllamnyp @lexfrei
/cmd/backup-controller/ @androndo @lllamnyp
/cmd/backupstrategy-controller/ @androndo @lllamnyp
# --- Flux ---
/packages/system/fluxcd/ @kingdonb @kvaps @lllamnyp @myasnikovdaniil
/packages/system/fluxcd-operator/ @kingdonb @kvaps @lllamnyp @myasnikovdaniil
# --- GPU ---
/packages/system/hami/ @lexfrei @kvaps
/packages/system/gpu-operator/ @lexfrei @kvaps
/dashboards/gpu/ @lexfrei @kvaps
# --- SeaweedFS ---
/packages/system/seaweedfs/ @IvanHunters @lexfrei @myasnikovdaniil
/packages/extra/seaweedfs/ @sircthulhu @lexfrei @myasnikovdaniil
# --- cozystack-api / controller / lineage webhook ---
/packages/system/cozystack-api/ @IvanHunters @kvaps @lllamnyp @lexfrei
/packages/system/cozystack-controller/ @IvanHunters @kvaps @lllamnyp @lexfrei
/packages/system/lineage-controller-webhook/ @IvanHunters @kvaps @lllamnyp @lexfrei
/cmd/cozystack-api/ @IvanHunters @kvaps @lllamnyp @lexfrei
/cmd/cozystack-controller/ @IvanHunters @kvaps @lllamnyp @lexfrei
/cmd/lineage-controller-webhook/ @IvanHunters @kvaps @lllamnyp @lexfrei
# --- Keycloak ---
/packages/system/keycloak/ @sircthulhu @lexfrei @IvanHunters @myasnikovdaniil
/packages/system/keycloak-operator/ @sircthulhu @lexfrei @IvanHunters @myasnikovdaniil
/packages/system/keycloak-configure/ @sircthulhu @lexfrei @IvanHunters @myasnikovdaniil
# --- API surface (architects): API types, aggregated apiserver, registry ---
/api/ @kvaps @lllamnyp
/pkg/apis/ @kvaps @lllamnyp
/pkg/apiserver/ @kvaps @lllamnyp
/pkg/registry/ @kvaps @lllamnyp
/pkg/generated/ @kvaps @lllamnyp
# --- Per-app generated mirrors of values.schema.json: no owner ---
# These files are entirely produced by `make generate` (cozyvalues-gen and
# hack/update-crd.sh) from each app's own values.yaml, which is already
# reviewed under its /packages/apps/ or /packages/extra/ entry above.
# Correctness is enforced by the pre-commit `run-make-generate` /
# `run-make-generate-root` CI hooks (regenerate, then fail on any diff), not
# by human review, so no owner is listed here — that intentionally waives
# the /api/ codeowner requirement above for just these generated paths.
/api/apps/v1alpha1/*/types.go
/api/apps/v1alpha1/*/zz_generated.deepcopy.go
/packages/system/*/cozyrds/
# --- Docs ---
/docs/ @lexfrei @myasnikovdaniil
# --- CI / automation ---
/.github/ @myasnikovdaniil @lexfrei
/hack/ @myasnikovdaniil @lexfrei
/Makefile @myasnikovdaniil @lexfrei
/.pre-commit-config.yaml @myasnikovdaniil @lexfrei
# --- Governance, licensing, project docs ---
/LICENSE @tym83 @kvaps
/GOVERNANCE.md @tym83 @kvaps
/MAINTAINERS.md @tym83 @kvaps
/CONTRIBUTOR_LADDER.md @tym83 @kvaps
/CODE_OF_CONDUCT.md @tym83 @kvaps
/CONTRIBUTING.md @tym83 @kvaps
/SECURITY.md @tym83 @kvaps
/ADOPTERS.md @tym83 @kvaps
/README.md @tym83 @kvaps
/.github/CODEOWNERS @kvaps @lllamnyp
# The API review gate must not be editable without an API-owner review, or a
# PR could neuter the detector (it is compiled from the head checkout during
# bootstrap) and slip a sizeable API change through unreviewed. Scoping these
# paths to the API owners overrides the catch-all above (last match wins), so
# changes here require @kvaps or @lllamnyp specifically. This is in force today,
# not pending a branch-protection change.
/cmd/api-gate/ @kvaps @lllamnyp
/internal/apigate/ @kvaps @lllamnyp
/.github/workflows/api-review-gate.yaml @kvaps @lllamnyp