Skip to content

chore: add .github/CODEOWNERS with @cmeans as default reviewer#335

Merged
cmeans-claude-dev[bot] merged 1 commit into
mainfrom
chore/add-codeowners
Apr 21, 2026
Merged

chore: add .github/CODEOWNERS with @cmeans as default reviewer#335
cmeans-claude-dev[bot] merged 1 commit into
mainfrom
chore/add-codeowners

Conversation

@cmeans-claude-dev
Copy link
Copy Markdown
Contributor

@cmeans-claude-dev cmeans-claude-dev Bot commented Apr 20, 2026

Summary

Adds .github/CODEOWNERS with a single wildcard rule:

* @cmeans

GitHub auto-requests review from CODEOWNERS matches on every PR. Today, review assignment is implicit (the maintainer watches the repo); with this file it becomes explicit state on every PR. The immediate concrete gain is that drive-by PRs can no longer slip past review when the maintainer happens not to be watching at the time they land — GitHub will attach the review-requested state directly to the PR.

Wildcard-only for now. GitHub evaluates CODEOWNERS last-matching-pattern-wins, so leaving the wildcard at the bottom lets path-specific rules be added above it later (e.g., docs/ @someone once a docs contributor joins) without rewriting the default.

Scope

  • .github/CODEOWNERS (new, 9 lines)
  • CHANGELOG.md ([Unreleased]### Added)

No source, no tests, no workflow, no migrations.

References

QA

Prerequisites

None. Pure repo-config file.

Automated checks

Lint, typecheck, pytest, coverage, CLA — none touch .github/CODEOWNERS. All should remain green unchanged.

Manual tests

    • File parses under GitHub's CODEOWNERS syntax.
      test -s .github/CODEOWNERS && grep -cE '^\*[[:space:]]+@cmeans$' .github/CODEOWNERS
      
      Expected: prints 1. File exists, is non-empty, and contains exactly one wildcard assignment.
    • Auto-review-request works on the next PR. Open any trivial follow-up PR; confirm the PR's "Reviewers" sidebar shows @cmeans was auto-requested (requesting yourself on your own PR is no-op for notification purposes, so this may or may not show a request on self-opened PRs — the acceptance is really "no GitHub error, and any future fork PR will see the request"). The real test comes when the next external PR lands.
    • Diff is exactly the new file + one CHANGELOG entry.
      git diff --stat origin/main
      
      Expected: .github/CODEOWNERS added (9 lines) + CHANGELOG.md updated (3 lines). Nothing else.

GitHub auto-requests review from CODEOWNERS matches on every PR. A
wildcard-only file assigns the maintainer as default reviewer on
everything, which closes the "drive-by PR slips past review when the
maintainer isn't looking" gap and makes review-assignment state
explicit.

Path-specific ownership rules can be added above the wildcard later as
the contributor base grows. GitHub evaluates last-matching-pattern-wins,
so leaving the wildcard at the bottom preserves the default.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cmeans-claude-dev cmeans-claude-dev Bot added the Dev Active Developer is actively working on this PR; QA should not start label Apr 20, 2026
@github-actions github-actions Bot added the Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA label Apr 20, 2026
@cmeans-claude-dev cmeans-claude-dev Bot removed the Dev Active Developer is actively working on this PR; QA should not start label Apr 20, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions github-actions Bot added Ready for QA Dev work complete — QA can begin review and removed Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA labels Apr 20, 2026
@cmeans cmeans added the QA Active QA is actively reviewing; Dev should not push changes label Apr 21, 2026
@cmeans
Copy link
Copy Markdown
Owner

cmeans commented Apr 21, 2026

QA Active — starting review of the CODEOWNERS addition.

@github-actions github-actions Bot removed the Ready for QA Dev work complete — QA can begin review label Apr 21, 2026
Copy link
Copy Markdown
Owner

@cmeans cmeans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QA Review — Round 1

Verdict: Ready for QA Signoff. Zero findings.

Pure repo-config addition. File is 9 lines, single wildcard, well-commented; CHANGELOG entry is under ### Added with clear narrative. CI fully green.

Steps verified

Step Result
1. File exists, non-empty, exactly one * @cmeans line 1
2. gh api repos/cmeans/mcp-awareness/codeowners/errors?ref=chore/add-codeowners --jq '.errors' (alternative path) []
3. Auto-review-request on next PR Deferred — post-merge empirical (CODEOWNERS only takes effect from the default branch)
4. Diff is exactly .github/CODEOWNERS (9 lines added) + CHANGELOG.md (3 lines added)

Notes

  • Step 2 is technically testable pre-merge by passing ?ref= to the codeowners errors endpoint, so I ticked it on the strength of [] against the PR branch. The post-merge UI walk-through is still worth doing once on main as a sanity check, but it isn't gating.
  • Wildcard-only design is the explicit choice; path-specific rules can be layered above the wildcard later (last-matching-pattern-wins per GitHub's evaluation order — confirmed in the file comments and matches GitHub docs).
  • No Closes #N claim, so no issue-scope cross-check required. PR body contextualizes it as part of the #305#311 beta-readiness hygiene bundle.

Maintainer to apply QA Approved.

@cmeans
Copy link
Copy Markdown
Owner

cmeans commented Apr 21, 2026

Audit: applying Ready for QA Signoff as the final act on abb4243. Steps 1, 2, 4 verified pre-merge; step 3 left for post-merge empirical confirmation on the next PR. Removing QA Active, applying Ready for QA Signoff.

@cmeans cmeans added Ready for QA Signoff QA passed — ready for maintainer final review and merge and removed QA Active QA is actively reviewing; Dev should not push changes labels Apr 21, 2026
Copy link
Copy Markdown
Owner

@cmeans cmeans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cmeans cmeans added QA Approved Manual QA testing completed and passed and removed Ready for QA Signoff QA passed — ready for maintainer final review and merge labels Apr 21, 2026
@cmeans-claude-dev cmeans-claude-dev Bot merged commit 4758523 into main Apr 21, 2026
40 checks passed
@cmeans-claude-dev cmeans-claude-dev Bot deleted the chore/add-codeowners branch April 21, 2026 01:18
cmeans-claude-dev Bot added a commit that referenced this pull request Apr 21, 2026
Patch release stamping the hygiene work shipped this session. **No code
changes** beyond the version bump and CHANGELOG reshuffle — everything
under this release landed in its own feature PR with full QA.

## What ships in v0.18.1

| PR | Summary |
|----|---------|
| [#333](#333) |
**Security:** hardened `pr-labels-ci.yml` against fork-PR shell
injection (closes
[#332](#332)) |
| [#335](#335) |
`.github/CODEOWNERS` — maintainer auto-requested on every PR |
| [#336](#336) |
`SECURITY.md` vulnerability disclosure policy (closes
[#309](#309)) |
| [#337](#337) |
`docs/backup.md` self-hoster backup + restore guide (closes
[#310](#310)) |
| [#343](#343) |
`.github/dependabot.yml` expanded to 4 ecosystems with grouped weekly
updates |

Semver is **patch** (`0.18.0 → 0.18.1`): all changes are CI, security
hardening, policy docs, and operational tooling — no runtime behavior
change for the Python package.

## Changes in this PR

- **`CHANGELOG.md`** — `## [Unreleased]` content renamed to `## [0.18.1]
- 2026-04-20`; a fresh empty `[Unreleased]` header added above it to
accumulate future work; `[Unreleased]` comparison link updated to point
at `v0.18.1...HEAD`; new `[0.18.1]` link added pointing at
`v0.18.0...v0.18.1`.
- **`pyproject.toml`** — `version = "0.18.0"` → `"0.18.1"`.

No source, no tests, no migrations. `docker-compose.yaml` uses `:latest`
— no update needed per the release process.

## Review

Docs-and-version-only change; no QA section per the repo's release
process (feature PRs already carried their own QA). A reviewer should
verify:

1. `head -12 CHANGELOG.md` shows a fresh `## [Unreleased]` followed by
`## [0.18.1] - 2026-04-20` — both present, in that order.
2. `grep '^\[Unreleased\]:' CHANGELOG.md` resolves to `v0.18.1...HEAD`.
3. `grep '^\[0\.18\.1\]:' CHANGELOG.md` resolves to `v0.18.0...v0.18.1`.
4. `grep '^version' pyproject.toml` → `0.18.1`.
5. `git diff --stat origin/main` shows exactly `CHANGELOG.md` +
`pyproject.toml`, nothing else.

## Merge + tag (maintainer)

After `QA Approved` lands and CI is green:

```bash
gh pr merge <this-pr> --repo cmeans/mcp-awareness --squash --delete-branch
git checkout main && git pull --ff-only
git tag -a v0.18.1 -m "v0.18.1 — beta-readiness hygiene bundle (SECURITY.md, backup guide, CODEOWNERS, dependabot, workflow hardening)"
git push origin v0.18.1
```

Docker Publish workflow will build and publish
`ghcr.io/cmeans/mcp-awareness:v0.18.1` and update `:latest` on tag push.

Co-authored-by: cmeans-claude-dev[bot] <3223881+cmeans-claude-dev[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

QA Approved Manual QA testing completed and passed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant