Decision Goal
Should OpenCHAMI adopt the following four baseline org-wide governance settings together, as a single coordinated rollout — (1) CODEOWNERS files on every active repo pointing at @openchami/tsc, (2) standardized SECURITY.md content plus Private Vulnerability Reporting (PVR) enabled per repo, (3) Dependabot alerts (security side only) enabled as the org default for new repos and enabled per-repo for the active set, (4) tightened org settings baseline (web commit signoff required, repo creation restricted, eventually 2FA mandated)?
Category
Process
Stakeholders / Affected Areas
The TSC; all org maintainers and contributors; security researchers (via the disclosure path); downstream packagers and consumers of OpenCHAMI components; org members enrolled (or not) in 2FA. The mechanical changes touch openchami/.github (for inherited SECURITY.md content), every active repo's settings page (per-repo PVR + Dependabot toggles, CODEOWNERS file), and the org-level Settings → Security/Permissions page.
Decision Needed By
No hard deadline, but earlier is better — each item independently reduces real governance debt. Aim for in-discussion at this TSC meeting; concrete rollout sequencing decided in the same meeting if scope is accepted.
Problem Statement
A May 2026 audit across 10 representative repos (5 management-layer, 5 core services) surfaced a cluster of governance gaps that share a common shape: each is a "set once, applies to many repos" baseline that's currently absent or only present in the openchami/.github repo (which doesn't inherit for several of them).
Findings, by artifact:
- CODEOWNERS: 1 of 10 repos has it (
openchami/.github only). This is a real gap — unlike most community-health files, CODEOWNERS does not inherit from the org's .github repo. Each repo needs its own. Today, code review on most repos relies on whoever happens to be watching.
- SECURITY.md: inherits from
openchami/.github (one source of truth, applies org-wide). Mechanically present. Two gaps: (a) the content quality of the inherited file has not been reviewed recently for this RFD; (b) GitHub Private Vulnerability Reporting must be enabled per-repo for the "Report a vulnerability" UI to appear — likely off on most repos.
- Dependabot alerts: org-level setting
dependabot_alerts_enabled_for_new_repositories is null. Existing repos: per-repo toggles unverified but likely mostly off. Vulnerable transitive deps are surfaced only by manual review.
- Org settings:
web_commit_signoff_required: false, members_can_create_repositories: true, two_factor_requirement_enabled: null. New repos start permissive; commit authorship audit trail not enforced; any member can create a repo (a contributor to the org's accumulation of stale repos visible elsewhere).
Each gap is small individually. The cost of not fixing them compounds across the 60-repo org surface, and the rollout for each is structurally similar — toggle org settings, optionally add a small file to each repo, possibly notify members. Bundling them avoids four separate TSC review rounds.
Existing related work, for context: the .github repo already hosts CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, pull_request_template.md, .pre-commit-config.yaml, and .yamllint — i.e., it's already the canonical home for org-wide config. This RFD's CODEOWNERS template and (eventually) dependabot.yml template would land in the same repo.
Proposed Solution
Adopt all four together with the following sequencing (low-risk → higher-risk):
- Dependabot alerts (org level). Enable
dependabot_alerts_enabled_for_new_repositories: true and dependabot_security_updates_enabled_for_new_repositories: true org-wide. Sweep existing active repos to enable per-repo. Note: this is alerts only, paired with a separate Renovate RFD for active-update PRs.
- SECURITY.md + PVR. Review and refresh
openchami/.github/SECURITY.md for content quality (supported-version statement, disclosure timeline target, PVR contact). Enable GitHub PVR per-repo across the active set.
- CODEOWNERS rollout. Add a baseline
CODEOWNERS template at openchami/.github/CODEOWNERS (already present, but as a template for new repos to copy — does not inherit). For each active repo, add .github/CODEOWNERS with * @openchami/tsc as the starting pattern. This is intentionally blunt; evolve to subteam-based ownership later if PR volume justifies it.
- Org settings tighten (sequenced last because most disruptive):
web_commit_signoff_required: true (low friction — one extra flag for contributors).
members_can_create_repositories: false or scoped to a defined subset.
two_factor_requirement_enabled: true — announce with notice; existing members without 2FA need a grace period or get removed.
Each step takes minutes to hours of GitHub-side work. The CODEOWNERS rollout is the largest mechanical task (one file per repo for ~28 active repos); a sweep can be scripted via gh repo edit and PRs.
Alternatives Considered
- Address each independently across four TSC meetings. Defensible, but creates inertia — easier to defer one and lose momentum on the rest. The audit found these as a cluster; the rollout naturally pairs them. Bundling preserves the cluster framing.
- Adopt with stricter CODEOWNERS pattern from day one (per-repo-class subteams instead of
@openchami/tsc blanket). Higher fidelity but requires creating teams that don't exist yet. Start blunt; refine later when the contributor mix justifies the team-creation overhead.
- Bundle in REUSE compliance / LICENSE coverage as well. REUSE is a non-trivial body of work (per-file SPDX headers,
.reuse/dep5, LICENSES/ directory adoption across all repos) — separate RFD warranted. Some repos already use the REUSE pattern (e.g., ochami, openchami.org); rollout is in flight.
- Status quo / do nothing. Real cost: CODEOWNERS gap means PRs go to whoever's watching; Dependabot gap means CVEs in transitive deps go unsurfaced; org-settings gap means new repos start permissive.
Other Considerations
- 2FA enforcement is the disruptive item. Members not currently enrolled may get removed when the toggle flips. Recommended: announce 4 weeks in advance via the community repo and
MAINTAINERS.md channels.
- CODEOWNERS auto-pings the whole TSC. If the TSC is, say, 8 people, every PR creates 8 review requests. GitHub's auto-assignment feature (assign a subset of code owners per PR) partly mitigates. Worth considering as part of the rollout.
- Dependabot PR noise (alerts only). Alerts-only is much quieter than active dep-update PRs — it surfaces vulnerabilities only when one exists. Mitigated by design.
- Inherited vs per-repo files. Critical distinction:
SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, issue templates, and PR template all inherit from .github. CODEOWNERS and dependabot.yml do not inherit — each repo needs its own. The proposal accounts for this.
members_can_create_repositories: false restricts org members' ability to spin up a new repo without TSC approval. Reduces the abandoned-repo accumulation problem but adds a friction step for legitimate experiments. Consider scoping to a specific team (e.g., @openchami/maintainers) rather than full restriction.
Related Docs / PRs
Outcome (to be filled in after discussion)
Decision date:
Recorded by:
Decision Goal
Should OpenCHAMI adopt the following four baseline org-wide governance settings together, as a single coordinated rollout — (1)
CODEOWNERSfiles on every active repo pointing at@openchami/tsc, (2) standardizedSECURITY.mdcontent plus Private Vulnerability Reporting (PVR) enabled per repo, (3) Dependabot alerts (security side only) enabled as the org default for new repos and enabled per-repo for the active set, (4) tightened org settings baseline (web commit signoff required, repo creation restricted, eventually 2FA mandated)?Category
Process
Stakeholders / Affected Areas
The TSC; all org maintainers and contributors; security researchers (via the disclosure path); downstream packagers and consumers of OpenCHAMI components; org members enrolled (or not) in 2FA. The mechanical changes touch
openchami/.github(for inherited SECURITY.md content), every active repo's settings page (per-repo PVR + Dependabot toggles, CODEOWNERS file), and the org-level Settings → Security/Permissions page.Decision Needed By
No hard deadline, but earlier is better — each item independently reduces real governance debt. Aim for in-discussion at this TSC meeting; concrete rollout sequencing decided in the same meeting if scope is accepted.
Problem Statement
A May 2026 audit across 10 representative repos (5 management-layer, 5 core services) surfaced a cluster of governance gaps that share a common shape: each is a "set once, applies to many repos" baseline that's currently absent or only present in the
openchami/.githubrepo (which doesn't inherit for several of them).Findings, by artifact:
openchami/.githubonly). This is a real gap — unlike most community-health files, CODEOWNERS does not inherit from the org's.githubrepo. Each repo needs its own. Today, code review on most repos relies on whoever happens to be watching.openchami/.github(one source of truth, applies org-wide). Mechanically present. Two gaps: (a) the content quality of the inherited file has not been reviewed recently for this RFD; (b) GitHub Private Vulnerability Reporting must be enabled per-repo for the "Report a vulnerability" UI to appear — likely off on most repos.dependabot_alerts_enabled_for_new_repositoriesisnull. Existing repos: per-repo toggles unverified but likely mostly off. Vulnerable transitive deps are surfaced only by manual review.web_commit_signoff_required: false,members_can_create_repositories: true,two_factor_requirement_enabled: null. New repos start permissive; commit authorship audit trail not enforced; any member can create a repo (a contributor to the org's accumulation of stale repos visible elsewhere).Each gap is small individually. The cost of not fixing them compounds across the 60-repo org surface, and the rollout for each is structurally similar — toggle org settings, optionally add a small file to each repo, possibly notify members. Bundling them avoids four separate TSC review rounds.
Existing related work, for context: the
.githubrepo already hostsCONTRIBUTING.md,SECURITY.md,CODE_OF_CONDUCT.md,pull_request_template.md,.pre-commit-config.yaml, and.yamllint— i.e., it's already the canonical home for org-wide config. This RFD's CODEOWNERS template and (eventually)dependabot.ymltemplate would land in the same repo.Proposed Solution
Adopt all four together with the following sequencing (low-risk → higher-risk):
dependabot_alerts_enabled_for_new_repositories: trueanddependabot_security_updates_enabled_for_new_repositories: trueorg-wide. Sweep existing active repos to enable per-repo. Note: this is alerts only, paired with a separate Renovate RFD for active-update PRs.openchami/.github/SECURITY.mdfor content quality (supported-version statement, disclosure timeline target, PVR contact). Enable GitHub PVR per-repo across the active set.CODEOWNERStemplate atopenchami/.github/CODEOWNERS(already present, but as a template for new repos to copy — does not inherit). For each active repo, add.github/CODEOWNERSwith* @openchami/tscas the starting pattern. This is intentionally blunt; evolve to subteam-based ownership later if PR volume justifies it.web_commit_signoff_required: true(low friction — one extra flag for contributors).members_can_create_repositories: falseor scoped to a defined subset.two_factor_requirement_enabled: true— announce with notice; existing members without 2FA need a grace period or get removed.Each step takes minutes to hours of GitHub-side work. The CODEOWNERS rollout is the largest mechanical task (one file per repo for ~28 active repos); a sweep can be scripted via
gh repo editand PRs.Alternatives Considered
@openchami/tscblanket). Higher fidelity but requires creating teams that don't exist yet. Start blunt; refine later when the contributor mix justifies the team-creation overhead..reuse/dep5,LICENSES/directory adoption across all repos) — separate RFD warranted. Some repos already use the REUSE pattern (e.g.,ochami,openchami.org); rollout is in flight.Other Considerations
MAINTAINERS.mdchannels.SECURITY.md,CONTRIBUTING.md,CODE_OF_CONDUCT.md, issue templates, and PR template all inherit from.github.CODEOWNERSanddependabot.ymldo not inherit — each repo needs its own. The proposal accounts for this.members_can_create_repositories: falserestricts org members' ability to spin up a new repo without TSC approval. Reduces the abandoned-repo accumulation problem but adds a friction step for legitimate experiments. Consider scoping to a specific team (e.g.,@openchami/maintainers) rather than full restriction.Related Docs / PRs
openchami/.github— existing org-wide config home; landing zone for the CODEOWNERS template + dependabot.yml template that doesn't inherit.Outcome (to be filled in after discussion)
Decision date:
Recorded by: