Skip to content

Refine CODEOWNERS for tiered contractor team ownership#67

Draft
Copilot wants to merge 2 commits into
masterfrom
copilot/refine-codeowners-file
Draft

Refine CODEOWNERS for tiered contractor team ownership#67
Copilot wants to merge 2 commits into
masterfrom
copilot/refine-codeowners-file

Conversation

Copilot AI commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Implements a two-tier CODEOWNERS model: maintainer subteams gate application code merges, while full contractor teams have broader access to low-risk docs/markdown.

Changes

  • Global default: @edx/enterprise-titans as sole catch-all (removes previous flat multi-team ownership including enterprise-markhors)
  • Application code (/enterprise_catalog/): titans + enterprise-sunrise-maintainers + enterprise-lakshy-maintainers — CODEOWNERS satisfied only by trusted maintainers
  • Docs & markdown (/docs/, *.md, *.rst): titans + full enterprise-sunrise + enterprise-lakshy teams — reduces friction on lower-risk changes
* @edx/enterprise-titans

# Application code: all three teams share ownership so contractor teams can review and merge.
/enterprise_catalog/ @edx/enterprise-titans @edx/enterprise-sunrise-maintainers @edx/enterprise-lakshy-maintainers

# Docs and markdown: lower-risk areas all teams can own.
/docs/ @edx/enterprise-titans @edx/enterprise-sunrise @edx/enterprise-lakshy
*.md @edx/enterprise-titans @edx/enterprise-sunrise @edx/enterprise-lakshy
*.rst @edx/enterprise-titans @edx/enterprise-sunrise @edx/enterprise-lakshy

This file serves as the template pattern for other enterprise repos in the edx org.

Original prompt

Problem / Goal

Refine the .github/CODEOWNERS file in the edx/enterprise-catalog repo to precisely match our new ownership model with:

  • Contractor maintainer subteams for application code
  • Full teams (not subteams) for docs/tests/markdown
  • Clarifying comments separating each logical section

Requirements

  • Use @edx/enterprise-titans as the global catch-all owner (*).
  • For all application code (/enterprise_catalog/): only the maintainer subteams and titans should be owners:
    • @edx/enterprise-titans
    • @edx/enterprise-sunrise-maintainers
    • @edx/enterprise-lakshy-maintainers
  • For docs, tests, and markdown, all three full teams and titans are owners:
    • /docs/, /tests/, and *.md/*.rst patterns for full teams (@edx/enterprise-titans, @edx/enterprise-sunrise, @edx/enterprise-lakshy)
  • Add a brief comment above each logical section to explain the intent
  • Match the formatting shown in the user-provided example
  • Place the README-level comment block at the top, summarizing the policy (optional improvement)

Acceptance Criteria

  • .github/CODEOWNERS matches exactly:
* @edx/enterprise-titans

# Application code: all three teams share ownership so contractor teams can review and merge.
/enterprise_catalog/ @edx/enterprise-titans @edx/enterprise-sunrise-maintainers @edx/enterprise-lakshy-maintainers

# Docs and markdown: lower-risk areas all teams can own.
/docs/ @edx/enterprise-titans @edx/enterprise-sunrise @edx/enterprise-lakshy
*.md @edx/enterprise-titans @edx/enterprise-sunrise @edx/enterprise-lakshy
*.rst @edx/enterprise-titans @edx/enterprise-sunrise @edx/enterprise-lakshy
  • File is properly placed as .github/CODEOWNERS, overwriting any existing one if present
  • No unused paths or teams (verify the enterprise_catalog/ directory does exist)
  • Syntax is valid and matches GitHub CODEOWNERS requirements
  • The PR explains and references the intended tiered access model

Important:

  • The intent is to restrict higher-risk code to subteams and give broader merge permission on lower-risk docs/tests.
  • This pattern will be used as a template for other enterprise repos.

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: I"ve been working on this plan with chat GPT. What do you think?

Below is a Claude-ready implementation plan you can paste into Claude (or use as a task brief). It includes: team definitions, repo list + URLs, the policy intent, the exact CODEOWNERS templates to create, and the branch protection / permissions checklist.


Implementation Plan: Phased Merge Autonomy for Enterprise Repos (Claude Task Brief)

Date: 2026-04-01
Goal: Gradually delegate PR review + merge autonomy to contractor teams while keeping a “master” team with full approval/merge authority across all enterprise repos.

1) Organizations in scope

  • GitHub org: openedx
  • GitHub org: edx

2) Teams (existing)

These teams already exist and must be used as the starting point:

2.1 Master / can do everything

  • Team: enterprise-titans
  • Intended behavior:
    • Can approve and merge anything in all listed repos
    • Acts as ultimate override / backstop

2.2 Newly onboard teams (can open PRs)

  • Team: enterprise-sunrise
  • Team: enterprise-lakshy

2.3 Ownership by domain

  • enterprise-lakshy owns:
    • Reporting
    • Admin portal
  • enterprise-sunrise owns:
    • Integrations
    • Checkout

IMPORTANT DECISION REQUIRED DURING IMPLEMENTATION
If you need “trusted engineers only” to be able to satisfy CODEOWNERS approvals within Sunrise/Lakshy domains, create two new sub-teams and use them in CODEOWNERS instead of the full contractor teams:

  • enterprise-lakshy-maintainers (trusted Lakshy engineers only)
  • enterprise-sunrise-maintainers (trusted Sunrise engineers only)

If these teams are not created, then any member of enterprise-sunrise/enterprise-lakshy (with sufficient repo permission) could satisfy CODEOWNERS review for their owned areas.


3) Repositories in scope (high priority for CODEOWNERS)

Microservices / Backend Services

Repo URL Notes
openedx/enterprise-catalog https://github.com/openedx/enterprise-catalog Core service
openedx/edx-enterprise https://github.com/openedx/edx-enterprise LMS plugin
openedx/enterprise-access https://github.com/openedx/enterprise-access Access policies
openedx/enterprise-subsidy https://github.com/openedx/enterprise-subsidy Subsidy transactions
openedx/enterprise-integrated-channels https://github.com/openedx/enterprise-integrated-channels Sunrise-owned integrations
openedx/edx-enterprise-data https://github.com/openedx/edx-enterprise-data Lakshy-owned reporting
openedx/course-discovery https://github.com/openedx/course-discovery Shared source of truth
openedx/edx-enterprise-subsidy-client https://github.com/openedx/ed...

This pull request was created from Copilot chat.

Copilot AI changed the title [WIP] Update .github/CODEOWNERS to match new ownership model Refine CODEOWNERS for tiered contractor team ownership Apr 1, 2026
Copilot AI requested a review from macdiesel April 1, 2026 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants