Files
cozystack/.github
Andrei Kvapil e16df56019 chore(codeowners): scope CODEOWNERS to per-area reviewers (#3228)
## What this PR does

Replaces the single catch-all owner line in `.github/CODEOWNERS` with
area-scoped reviewer ownership, so each part of the tree routes to the
people who actually own it (per the Contributor Ladder), instead of
requiring the whole roster on every change.

Highlights:
- Architects (`@kvaps @lllamnyp`) are the default owner and own the API
surface (`/api/`) and the VPC app.
- CI / automation → `@myasnikovdaniil @sircthulhu`; backups → `@androndo
@lllamnyp`; virtualization (kubevirt, vm-instance/disk) → `@scooby87
@lllamnyp @kvaps @myasnikovdaniil`.
- `cozystack-api` / controller / lineage webhook → `@IvanHunters @kvaps
@lllamnyp`.
- General packages / apps / CLI ownership → `@lexfrei @IvanHunters
@myasnikovdaniil` (+ `@scooby87` for apps), with `kubernetes` and
`extra` scoped separately.
- Flux → `@kingdonb`; GPU (hami, gpu-operator, GPU dashboards) →
`@lexfrei`; metrics-server and seaweedfs → `@nbykov0`.
- Governance / licensing files → `@tym83 @kvaps`.

Ordering follows "last match wins" (broad → specific). The API review
gate block is kept last so it cannot be overridden. This is
review-routing only — no runtime/functional change — and only binds once
"Require review from Code Owners" is enabled in branch protection.

This file is what the CNCF Incubation review reads as "code ownership",
so it is paired with #3462, which documents the same people in
`MAINTAINERS.md` and introduces the Reviewers table the ladder already
defined. Merging one without the other leaves the two describing
different projects, which is the gap both PRs exist to close. Three of
the people named here — `@kingdonb`, `@matthieu-robin`,
`@mattia-eleuteri` — hold only read access today, and a CODEOWNERS entry
for someone without write is silently ignored by GitHub, so the org-side
permission changes have to land alongside.

### Screenshots

N/A — governance/config change, no user-facing or UI impact.

### Downstream repositories

- [x] No downstream repository is affected by this change
- [ ] [cozystack/website](https://github.com/cozystack/website) -
follow-up:
- [ ]
[cozystack/terraform-provider-cozystack](https://github.com/cozystack/terraform-provider-cozystack)
- follow-up:
- [ ]
[cozystack/ansible-cozystack](https://github.com/cozystack/ansible-cozystack)
- follow-up:
- [ ] [cozystack/ccp](https://github.com/cozystack/ccp) - follow-up:
- [ ] [cozystack/talm](https://github.com/cozystack/talm) - follow-up:
- [ ] [cozystack/cozyhr](https://github.com/cozystack/cozyhr) -
follow-up:
- [ ] [cozystack/cozy-proxy](https://github.com/cozystack/cozy-proxy) -
follow-up:
- [ ]
[cozystack/cozystack-telemetry-server](https://github.com/cozystack/cozystack-telemetry-server)
- follow-up:
- [ ]
[cozystack/external-apps-example](https://github.com/cozystack/external-apps-example)
- follow-up:
- [ ] [cozystack/examples](https://github.com/cozystack/examples) -
follow-up:

Walked the trigger map against the diff: no row matches. The change
touches only `.github/CODEOWNERS` — no package, no `values.schema.json`,
no `ApplicationDefinition`, no platform variant, no release asset, no
node prerequisite. Every path named here was checked against current
`main`; all 65 exist.

### Release note

```release-note
NONE
```


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Updated CODEOWNERS from a single catch-all to an ordered, path-scoped
reviewer mapping.
* Clarified “last matching pattern wins” behavior and ensured the API
review gate rules remain last to avoid overrides.
* Expanded explicit ownership coverage across dashboards/examples,
packages and Go components, apps, platform/infrastructure modules,
CI/automation, and governance/licensing documentation (including
SECURITY).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-30 11:04:03 +02:00
..