Files
the-nexus/CODEOWNERS
Line: 36: incorrect codeowner user: replace Line: 36: no users/groups matched Line: 37: incorrect format Line: 39: incorrect format Line: 40: incorrect format Line: 41: incorrect codeowner user: search Line: 41: no users/groups matched Line: 46: incorrect codeowner user: repositories Line: 46: incorrect codeowner user: must Line: 46: incorrect codeowner user: enforce Line: 46: incorrect codeowner user: these Line: 46: incorrect codeowner user: rules Line: 46: incorrect codeowner user: on Line: 46: incorrect codeowner user: the Line: 46: incorrect codeowner user: `main` Line: 46: incorrect codeowner user: branch: Line: 46: no users/groups matched Line: 48: incorrect codeowner user: Rule Line: 48: incorrect codeowner user: | Line: 48: incorrect codeowner user: Status Line: 48: incorrect codeowner user: | Line: 48: incorrect codeowner user: Rationale Line: 48: incorrect codeowner user: | Line: 48: no users/groups matched Line: 49: incorrect format Line: 50: incorrect codeowner user: Require Line: 50: incorrect codeowner user: PR Line: 50: incorrect codeowner user: for Line: 50: incorrect codeowner user: merge Line: 50: incorrect codeowner user: | Line: 50: incorrect codeowner user: ✅ Line: 50: incorrect codeowner user: Enabled Line: 50: incorrect codeowner user: | Line: 50: incorrect codeowner user: Prevent Line: 50: incorrect codeowner user: direct Line: 50: incorrect codeowner user: commits Line: 50: incorrect codeowner user: | Line: 50: no users/groups matched Line: 51: incorrect codeowner user: Required Line: 51: incorrect codeowner user: approvals Line: 51: incorrect codeowner user: | Line: 51: incorrect codeowner user: ✅ Line: 51: incorrect codeowner user: 1+ Line: 51: incorrect codeowner user: | Line: 51: incorrect codeowner user: Minimum Line: 51: incorrect codeowner user: review Line: 51: incorrect codeowner user: threshold Line: 51: incorrect codeowner user: | Line: 51: no users/groups matched Line: 52: incorrect codeowner user: Dismiss Line: 52: incorrect codeowner user: stale Line: 52: incorrect codeowner user: approvals Line: 52: incorrect codeowner user: | Line: 52: incorrect codeowner user: ✅ Line: 52: incorrect codeowner user: Enabled Line: 52: incorrect codeowner user: | Line: 52: incorrect codeowner user: Re-review Line: 52: incorrect codeowner user: after Line: 52: incorrect codeowner user: new Line: 52: incorrect codeowner user: commits Line: 52: incorrect codeowner user: | Line: 52: no users/groups matched Line: 53: incorrect codeowner user: Require Line: 53: incorrect codeowner user: CI Line: 53: incorrect codeowner user: to Line: 53: incorrect codeowner user: pass Line: 53: incorrect codeowner user: | Line: 53: incorrect codeowner user: � Line: 53: incorrect codeowner user: Conditional Line: 53: incorrect codeowner user: | Line: 53: incorrect codeowner user: Only Line: 53: incorrect codeowner user: where Line: 53: incorrect codeowner user: CI Line: 53: incorrect codeowner user: exists Line: 53: incorrect codeowner user: | Line: 53: no users/groups matched Line: 54: incorrect codeowner user: Block Line: 54: incorrect codeowner user: force Line: 54: incorrect codeowner user: push Line: 54: incorrect codeowner user: | Line: 54: incorrect codeowner user: ✅ Line: 54: incorrect codeowner user: Enabled Line: 54: incorrect codeowner user: | Line: 54: incorrect codeowner user: Protect Line: 54: incorrect codeowner user: commit Line: 54: incorrect codeowner user: history Line: 54: incorrect codeowner user: | Line: 54: no users/groups matched Line: 55: incorrect codeowner user: Block Line: 55: incorrect codeowner user: branch Line: 55: incorrect codeowner user: deletion Line: 55: incorrect codeowner user: | Line: 55: incorrect codeowner user: ✅ Line: 55: incorrect codeowner user: Enabled Line: 55: incorrect codeowner user: | Line: 55: incorrect codeowner user: Prevent Line: 55: incorrect codeowner user: accidental Line: 55: incorrect codeowner user: deletion Line: 55: incorrect codeowner user: | Line: 55: no users/groups matched Line: 59: incorrect codeowner regexp: error parsing regexp: invalid nested repetition operator: `**` Line: 60: incorrect codeowner user: ✅ Line: 60: incorrect codeowner user: All Line: 60: incorrect codeowner user: protections Line: 60: incorrect codeowner user: enabled Line: 60: no users/groups matched Line: 61: incorrect codeowner user: 🔒 Line: 61: incorrect codeowner user: Required Line: 61: incorrect codeowner user: reviewer: Line: 61: incorrect codeowner user: `@Timmy` Line: 61: incorrect codeowner user: (owner Line: 61: incorrect codeowner user: gate) Line: 61: no users/groups matched Line: 62: incorrect codeowner user: 🧪 Line: 62: incorrect codeowner user: CI: Line: 62: incorrect codeowner user: Enabled Line: 62: incorrect codeowner user: (currently Line: 62: incorrect codeowner user: functional) Line: 62: no users/groups matched Line: 64: incorrect codeowner regexp: error parsing regexp: invalid nested repetition operator: `**` Line: 65: incorrect codeowner user: ✅ Line: 65: incorrect codeowner user: All Line: 65: incorrect codeowner user: protections Line: 65: incorrect codeowner user: enabled Line: 65: no users/groups matched Line: 66: incorrect codeowner user: � Line: 66: incorrect codeowner user: CI: Line: 66: incorrect codeowner user: Disabled Line: 66: incorrect codeowner user: (runner Line: 66: incorrect codeowner user: dead Line: 66: incorrect codeowner user: - Line: 66: incorrect codeowner user: see Line: 66: no users/groups matched Line: 67: incorrect codeowner user: 🧪 Line: 67: incorrect codeowner user: CI: Line: 67: incorrect codeowner user: Re-enable Line: 67: incorrect codeowner user: when Line: 67: incorrect codeowner user: runner Line: 67: incorrect codeowner user: restored Line: 67: no users/groups matched Line: 69: incorrect codeowner regexp: error parsing regexp: invalid nested repetition operator: `**` Line: 70: incorrect codeowner user: ✅ Line: 70: incorrect codeowner user: PR Line: 70: incorrect codeowner user: + Line: 70: incorrect codeowner user: 1 Line: 70: incorrect codeowner user: approval Line: 70: incorrect codeowner user: required Line: 70: no users/groups matched Line: 71: incorrect codeowner user: 🧪 Line: 71: incorrect codeowner user: CI: Line: 71: incorrect codeowner user: No Line: 71: incorrect codeowner user: CI Line: 71: incorrect codeowner user: configured Line: 71: no users/groups matched Line: 73: incorrect codeowner regexp: error parsing regexp: invalid nested repetition operator: `**` Line: 74: incorrect codeowner user: ✅ Line: 74: incorrect codeowner user: PR Line: 74: incorrect codeowner user: + Line: 74: incorrect codeowner user: 1 Line: 74: incorrect codeowner user: approval Line: 74: incorrect codeowner user: required Line: 74: no users/groups matched Line: 75: incorrect codeowner user: 🧪 Line: 75: incorrect codeowner user: CI: Line: 75: incorrect codeowner user: Limited Line: 75: incorrect codeowner user: CI Line: 75: no users/groups matched Line: 79: incorrect codeowner user: repositories Line: 79: incorrect codeowner user: must: Line: 79: no users/groups matched Line: 80: incorrect codeowner user: 🧑‍ Line: 80: incorrect codeowner user: Default Line: 80: incorrect codeowner user: reviewer: Line: 80: incorrect codeowner user: `@perplexity` Line: 80: incorrect codeowner user: (QA Line: 80: incorrect codeowner user: gate) Line: 80: no users/groups matched Line: 81: incorrect codeowner user: 🧑 Line: 81: incorrect codeowner user: Required Line: 81: incorrect codeowner user: reviewer: Line: 81: incorrect codeowner user: `@Timmy` Line: 81: incorrect codeowner user: for Line: 81: incorrect codeowner organization: `hermes-agent/` Line: 81: incorrect codeowner user: only Line: 81: no users/groups matched Line: 85: incorrect codeowner user: Go Line: 85: incorrect codeowner user: to Line: 85: incorrect codeowner user: Gitea Line: 85: incorrect codeowner user: > Line: 85: incorrect codeowner user: Settings Line: 85: incorrect codeowner user: > Line: 85: incorrect codeowner user: Branches Line: 85: incorrect codeowner user: > Line: 85: incorrect codeowner user: Branch Line: 85: incorrect codeowner user: Protection Line: 85: no users/groups matched Line: 86: incorrect codeowner user: For Line: 86: incorrect codeowner user: each Line: 86: incorrect codeowner user: repo: Line: 86: no users/groups matched Line: 87: incorrect codeowner user: [ Line: 87: incorrect codeowner user: ] Line: 87: incorrect codeowner user: Enable Line: 87: incorrect codeowner user: "Require Line: 87: incorrect codeowner user: PR Line: 87: incorrect codeowner user: for Line: 87: incorrect codeowner user: merge" Line: 87: no users/groups matched Line: 88: incorrect codeowner user: [ Line: 88: incorrect codeowner user: ] Line: 88: incorrect codeowner user: Set Line: 88: incorrect codeowner user: "Required Line: 88: incorrect codeowner user: approvals" Line: 88: incorrect codeowner user: to Line: 88: incorrect codeowner user: 1 Line: 88: no users/groups matched Line: 89: incorrect codeowner user: [ Line: 89: incorrect codeowner user: ] Line: 89: incorrect codeowner user: Enable Line: 89: incorrect codeowner user: "Dismiss Line: 89: incorrect codeowner user: stale Line: 89: incorrect codeowner user: approvals" Line: 89: no users/groups matched Line: 90: incorrect codeowner user: [ Line: 90: incorrect codeowner user: ] Line: 90: incorrect codeowner user: Enable Line: 90: incorrect codeowner user: "Block Line: 90: incorrect codeowner user: force Line: 90: incorrect codeowner user: push" Line: 90: no users/groups matched Line: 91: incorrect codeowner user: [ Line: 91: incorrect codeowner user: ] Line: 91: incorrect codeowner user: Enable Line: 91: incorrect codeowner user: "Block Line: 91: incorrect codeowner user: branch Line: 91: incorrect codeowner user: deletion" Line: 91: no users/groups matched Line: 92: incorrect codeowner user: [ Line: 92: incorrect codeowner user: ] Line: 92: incorrect codeowner user: Enable Line: 92: incorrect codeowner user: "Require Line: 92: incorrect codeowner user: CI Line: 92: incorrect codeowner user: to Line: 92: incorrect codeowner user: pass" Line: 92: incorrect codeowner user: if Line: 92: incorrect codeowner user: CI Line: 92: incorrect codeowner user: exists Line: 92: no users/groups matched Line: 96: incorrect codeowner user: [ Line: 96: incorrect codeowner user: ] Line: 96: incorrect codeowner user: All Line: 96: incorrect codeowner user: four Line: 96: incorrect codeowner user: repositories Line: 96: incorrect codeowner user: have Line: 96: incorrect codeowner user: protection Line: 96: incorrect codeowner user: rules Line: 96: incorrect codeowner user: applied Line: 96: no users/groups matched Line: 97: incorrect codeowner user: [ Line: 97: incorrect codeowner user: ] Line: 97: incorrect codeowner user: Default Line: 97: incorrect codeowner user: reviewers Line: 97: incorrect codeowner user: configured Line: 97: incorrect codeowner user: per Line: 97: incorrect codeowner user: matrix Line: 97: incorrect codeowner user: above Line: 97: no users/groups matched Line: 98: incorrect codeowner user: [ Line: 98: incorrect codeowner user: ] Line: 98: incorrect codeowner user: This Line: 98: incorrect codeowner user: document Line: 98: incorrect codeowner user: updated Line: 98: incorrect codeowner user: in Line: 98: incorrect codeowner user: all Line: 98: incorrect codeowner user: repositories Line: 98: no users/groups matched Line: 99: incorrect codeowner user: [ Line: 99: incorrect codeowner user: ] Line: 99: incorrect codeowner user: Policy Line: 99: incorrect codeowner user: enforced Line: 99: incorrect codeowner user: for Line: 99: incorrect codeowner user: 72 Line: 99: incorrect codeowner user: hours Line: 99: incorrect codeowner user: with Line: 99: incorrect codeowner user: no Line: 99: incorrect codeowner user: unreviewed Line: 99: incorrect codeowner user: merges Line: 99: no users/groups matched Line: 101: incorrect codeowner user: This Line: 101: incorrect codeowner user: policy Line: 101: incorrect codeowner user: replaces Line: 101: incorrect codeowner user: all Line: 101: incorrect codeowner user: previous Line: 101: incorrect codeowner user: ad-hoc Line: 101: incorrect codeowner user: workflows. Line: 101: incorrect codeowner user: Any Line: 101: incorrect codeowner user: exceptions Line: 101: incorrect codeowner user: require Line: 101: incorrect codeowner user: written Line: 101: incorrect codeowner user: approval Line: 101: incorrect codeowner user: from Line: 101: incorrect codeowner user: and Line: 101: incorrect codeowner user: perplexity. Line: 114: incorrect codeowner user: replace Line: 114: no users/groups matched Line: 115: incorrect format Line: 117: incorrect format Line: 121: incorrect codeowner user: replace Line: 121: incorrect codeowner user: the Line: 121: incorrect codeowner user: placeholder Line: 121: incorrect codeowner user: documentation Line: 121: incorrect codeowner user: with Line: 121: incorrect codeowner user: a Line: 121: incorrect codeowner user: clear, Line: 121: incorrect codeowner user: actionable Line: 121: incorrect codeowner user: policy Line: 121: incorrect codeowner user: summary. Line: 121: no users/groups matched Line: 123: incorrect format Line: 124: incorrect format Line: 125: incorrect codeowner user: search Line: 125: no users/groups matched
Groq Agent 2f76a9bbe7
Some checks failed
Deploy Nexus / deploy (push) Has been cancelled
[groq] [QA][POLICY] Branch Protection + Mandatory Review Policy for All Repos (#918) (#979)
2026-04-07 08:42:12 +00:00

185 lines
4.4 KiB
Plaintext
Raw Blame History

# CODEOWNERS - Mandatory Review Policy
# Default reviewer for all repositories
* @perplexity
# Special reviewers for specific repos
hermes-agent/ @Timmy
hermes-agent/agent-core/ @Rockachopa
the-nexus/ @perplexity
the-nexus/ai/ @Timmy
timmy-home/ @perplexity
timmy-config/ @perplexity
# QA reviewer for all PRs
* @perplexity
# Owner gates
hermes-agent/ @Timmy
# QA reviewer for all PRs
* @perplexity
# Specialized component owners
# Required reviewer for hermes-agent (owner gate)
hermes-agent/ @Timmy
hermes-agent/ @Timmy
hermes-agent/protocol/ @Timmy
the-nexus/portals/ @perplexity
the-nexus/ai/ @Timmy
# Specialized component owners
hermes-agent/agent-core/ @Rockachopa
hermes-agent/protocol/ @Timmy
the-nexus/portals/ @perplexity
the-nexus/ai/ @Timmy
>>>>>>> replace
```
CONTRIBUTING.md
```diff
<<<<<<< search
# Contribution & Code Review Policy
## Branch Protection & Review Policy
All repositories must enforce these rules on the `main` branch:
| Rule | Status | Rationale |
|---|---|---|
| Require PR for merge | ✅ Enabled | Prevent direct commits |
| Required approvals | ✅ 1+ | Minimum review threshold |
| Dismiss stale approvals | ✅ Enabled | Re-review after new commits |
| Require CI to pass | <20> Conditional | Only where CI exists |
| Block force push | ✅ Enabled | Protect commit history |
| Block branch deletion | ✅ Enabled | Prevent accidental deletion |
### Repository-Specific Configuration
**1. hermes-agent**
- ✅ All protections enabled
- 🔒 Required reviewer: `@Timmy` (owner gate)
- 🧪 CI: Enabled (currently functional)
**2. the-nexus**
- ✅ All protections enabled
- <20> CI: Disabled (runner dead - see #915)
- 🧪 CI: Re-enable when runner restored
**3. timmy-home**
- ✅ PR + 1 approval required
- 🧪 CI: No CI configured
**4. timmy-config**
- ✅ PR + 1 approval required
- 🧪 CI: Limited CI
### Default Reviewer Assignment
All repositories must:
- 🧑‍ Default reviewer: `@perplexity` (QA gate)
- 🧑 Required reviewer: `@Timmy` for `hermes-agent/` only
### Implementation Steps
1. Go to Gitea > Settings > Branches > Branch Protection
2. For each repo:
- [ ] Enable "Require PR for merge"
- [ ] Set "Required approvals" to 1
- [ ] Enable "Dismiss stale approvals"
- [ ] Enable "Block force push"
- [ ] Enable "Block branch deletion"
- [ ] Enable "Require CI to pass" if CI exists
### Acceptance Criteria
- [ ] All four repositories have protection rules applied
- [ ] Default reviewers configured per matrix above
- [ ] This document updated in all repositories
- [ ] Policy enforced for 72 hours with no unreviewed merges
> This policy replaces all previous ad-hoc workflows. Any exceptions require written approval from @Timmy and @perplexity.
# Default reviewer for all repositories
* @perplexity
# Specialized component owners
hermes-agent/ @Timmy
hermes-agent/agent-core/ @Rockachopa
hermes-agent/protocol/ @Timmy
the-nexus/ @perplexity
the-nexus/ai/ @Timmy
timmy-home/ @perplexity
timmy-config/ @perplexity
>>>>>>> replace
````
---
### ✅ Updated `README.md` Policy Documentation
We'll replace the placeholder documentation with a clear, actionable policy summary.
`README.md`
````
<<<<<<< search
# Specialized component owners
hermes-agent/ @Timmy
hermes-agent/protocol/ @Timmy
the-nexus/portals/ @perplexity
the-nexus/ai/ @Timmy
# Specialized component owners
hermes-agent/agent-core/ @Rockachopa
hermes-agent/protocol/ @Timmy
the-nexus/portals/ @perplexity
the-nexus/ai/ @Timmy
# CODEOWNERS - Mandatory Review Policy
# Default reviewer for all repositories
* @perplexity
# Specialized component owners
hermes-agent/ @Timmy
hermes-agent/protocol/ @Timmy
the-nexus/ @perplexity
the-nexus/ai/ @Timmy
timmy-home/ @perplexity
timmy-config/ @perplexity
# Owner gates
hermes-agent/ @Timmy
# CODEOWNERS - Mandatory Review Policy
# Default reviewer for all repositories
* @perplexity
# Specialized component owners
hermes-agent/ @Timmy
hermes-agent/agent-core/ @Rockachopa
hermes-agent/protocol/ @Timmy
the-nexus/ @perplexity
the-nexus/ai/ @Timmy
timmy-home/ @perplexity
timmy-config/ @perplexity
# Owner gates
hermes-agent/ @Timmy
# CODEOWNERS - Mandatory Review Policy
# Default reviewer for all repositories
* @perplexity
# Specialized component owners
hermes-agent/ @Timmy
hermes-agent/agent-core/ @Rockachopa
hermes-agent/protocol/ @Timmy
the-nexus/ @perplexity
the-nexus/ai/ @Timmy
timmy-home/ @perplexity
timmy-config/ @perplexity
# Owner gates
hermes-agent/ @Timmy