Skip to content

Add repository compliance overview redesign and insights page#33

Merged
davidkallesen merged 25 commits into
mainfrom
feature/compliance-summary
May 3, 2026
Merged

Add repository compliance overview redesign and insights page#33
davidkallesen merged 25 commits into
mainfrom
feature/compliance-summary

Conversation

@davidkallesen

Copy link
Copy Markdown
Contributor

Summary

  • Rewrite /support/repository-compliance-overview as hybrid dashboard
  • Add new /support/repository-insights page with org-level analytics
  • Consume pre-aggregated compliance-summary endpoint from atc-api
  • Two-tier cached client (memory 12h + localStorage 30min)
  • Skip .NET-specific signals for non-C# repos (Python, etc.)

Changes

✨ Features

  • Add RepositoryComplianceSummary DTOs mirroring atc-api schemas
  • Add GetComplianceSummary client with two-tier cache and semaphore
  • Add ComplianceHealth helper (Ok/Warning/Error) with TDD coverage
  • Add ComplianceFilterState and ComplianceFilterEngine with TDD
  • Add ComplianceStatusChip primitive (Ok/Warning/Error/N/A states)
  • Add ComplianceKpiStrip with org-level percentage tiles
  • Add ComplianceFilterBar (search, language, category, health)
  • Add ComplianceDashboardTable with 12 signal columns and row detail
  • Add ComplianceCardsGrid reusing existing repo-card styles
  • Add /support/repository-insights page with three sections
  • Add InsightsKpiTiles for org-level percentages
  • Add InsightsHealthByCategoryChart stacked-bar visualization
  • Add InsightsAdoptionCharts (TFM, Atc.Analyzer, Languages)
  • Add InsightsActionList grouping repos with failing rules
  • Add Repository insights entry to maintenance menu
  • Wrap editorconfig R/S/T cell in colored chip (Ok/Warning/Error)

♻️ Refactoring

  • Rewrite RepositoryComplianceOverview with hybrid layout
  • Skip .NET-only signals for non-C# repos (show N/A chips)

🎨 Styling

  • Add KPI strip, sticky filter bar, row-detail panel styles
  • Add insights tile section styling
  • Align Maintenance menu section header with menu items

📝 Documentation

  • Add design spec for compliance overview and insights pages
  • Add three-phase implementation plans

🔧 Configuration

  • Add ComplianceSummary cache key constant
  • Register Compliance namespaces in GlobalUsings and _Imports

Mirrors the atc-api OpenAPI schemas added in Phase 1: summary, signals,
detail, editorconfig/workflows status, analyzer ref, and the XunitV3Status
enum. Bool properties use 'set' so domain logic can flip them in tests.
Calls GET /github/repository/compliance-summary on atc-api and reuses
the existing memory + browser-cache pattern with a dedicated semaphore
for cache-miss deduplication.
HealthStatus enum with Ok/Warning/Error and ComplianceHealth.Compute
deriving the aggregate from signals. License-not-MIT and Java-in-workflow
short-circuit to Error; readme/homepage/updater/editorconfig/lang-version/
xunit/workflows/release-please drift to Warning.
…e (TDD)

State holds search/language/category/health/failing-signal filters;
engine applies them in-memory and orders by name. Failing-signal keys
include TfmBehind, EditorConfigBehind, WorkflowsBehind, etc.
Atomic chip with Ok/Warning/Error/NotApplicable states, MudChip + tooltip
backing. Adds Compliance namespace to _Imports for unprefixed use.
KPI strip with eight tiles: total repos, C#/Python counts, MIT licensed %,
net10.0 %, release-please %, .editorconfig latest %, xUnit v3 %. Adds
KpiTile inline component and missing namespaces to GlobalUsings/_Imports.
Search field, language/category/health dropdowns, and a separate group-by
selector. State and group-by are bound parameters so the page can hold
filter state and the table can react to grouping changes.
Three-column expanded row showing src/test/sample frameworks, analyzer
package list with versions, and open-issue count + oldest/newest dates.
MudDataGrid centerpiece: hierarchy expand → row detail, sortable name/
language/license/homepage/readme/updater/lang-version/TFM/release-please
columns plus rendered chip columns for editor-config/workflows/xUnit v3.
Virtualized at 700px height, groupable, dense.
Cards grid with category-tinted accents matching the introduction page,
plus a health chip per card. Used below the dashboard table to give a
visual scan over filtered results.
…yout

Replaces the slow alphabetical per-repo section list with one call to the
new compliance-summary endpoint, then renders KPI strip + filter bar +
dashboard table + cards grid. Filter/group state lives on the page;
filtering is applied in-memory.
Adds .atc-kpi-strip, .atc-filter-bar (sticky), .atc-compliance-chip,
.atc-row-detail, and .atc-link rules to _modern.scss and recompiles
AtcWeb.css/min.css from sass.
@sonarqubecloud

sonarqubecloud Bot commented May 3, 2026

Copy link
Copy Markdown

@davidkallesen davidkallesen merged commit 3d50a8f into main May 3, 2026
6 checks passed
@davidkallesen davidkallesen deleted the feature/compliance-summary branch May 3, 2026 14:27
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.

1 participant