Skip to content

Update Repository Compliance Overview Workflow #50

@hdamker

Description

@hdamker

Parent Issue: #38 (Three Reporting Workflows Strategy)

Problem description

The Repository Compliance Overview workflow exists but is not actively used and needs updates. Currently it only checks API repositories with 9-point template compliance and runs only on manual trigger. We need comprehensive repository health and compliance monitoring across ALL CAMARA repositories with category-specific checks.

Current workflow: camaraproject/project-administration/.github/workflows/project-report-camara-repository-overview.yml (v1.1, July 2025)

Possible evolution

1. Expand Repository Scope

Current: Only API repositories (filtered by topics: sandbox-api-repository, incubating-api-repository, graduated-api-repository)

Proposed: All CAMARA repositories with category-specific checks (API repositories, Working Group repositories, Project Infrastructure repositories, Other/unknown repositories flagged for categorization)

2. Configuration-Driven Repository Registry (Hybrid Approach)

Introduce hybrid registry with two files:

repository-registry.yaml (Manual, source of truth):

repositories:
  - name: QualityOnDemand
    category: api-incubating
    sub_project: connectivity-quality-management
    required_maintainers: 3
    branch_protection_required: true
  - name: ReleaseManagement
    category: working-group
    required_maintainers: 2
    branch_protection_required: true

repository-state.yaml (Auto-generated, current snapshot):

repositories:
  - name: QualityOnDemand
    topics: [incubating-api-repository, qod, quality-of-service]
    description: "Quality on Demand API..."
    license: Apache-2.0
    last_activity: 2025-11-15
    maintainers_count: 5

Benefits: Clear policy expectations (registry defines what SHOULD be), automatic drift detection (state captures what IS), audit trail via state file PRs, community-accessible (non-admins can create registry PRs)

3. Enhanced Report Structure

Current: Single markdown report, 90-day artifact retention

Options: Separate reports by category, health score dashboard (0-100), severity-based violations (Critical/High/Medium/Low), multiple export formats (Markdown/JSON/CSV), persistent storage option

4. Separation of Concerns

  • Repository Compliance (this workflow): Repository structure, governance files, configuration, templates
  • API/Content Validation (separate CI/linting): OpenAPI spec validation, naming conventions
  • Release Progress (separate workflow): Release readiness, API maturity tracking

Check Categories (high-level):

  • Repository Configuration (topics, description, license, branch protection, visibility)
  • Governance Files (CODEOWNERS, MAINTAINERS, GOVERNANCE.MD, LICENSE)
  • Documentation Structure (README, CHANGELOG, directory structure, wiki links)
  • Process Templates (issue templates, PR template, workflows)
  • Activity and Health (last activity, stale issues/PRs, responsiveness, contributor diversity)

Detailed check definitions and requirements document will be created in a sub-issue.

Integration with Repository Lifecycle

The registry integrates with existing workflows:

  • Repository Creation: Registry PR → project-admin-api-repository-creation.yml → Compliance validates
  • Repository Promotion: Registry PR updates category/requirements → Settings updated → Compliance validates
  • Repository Renaming: Registry PR updates name → GitHub rename → State auto-updates
  • Repository Archiving: Registry PR marks archived → Different compliance rules apply

Future: Registry PR could trigger automated repository configuration changes

Alternative solution

To be discussed.

Additional context

Implementation approach:

  1. Create sub-issue for detailed requirements document and check definitions
  2. Design repository-registry.yaml schema and populate with known repositories
  3. Implement repository-state.yaml generation (auto-discovery and snapshot)
  4. Phase 1: Core governance checks (CODEOWNERS, MAINTAINERS, LICENSE, topics validation)
  5. Phase 2: Enhanced reporting (health scores, severity categorization, drift detection)
  6. Phase 3: Activity metrics and trend analysis

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogPostponed issue for later considerationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions