yavorfingarov/Reprise
62.5
Adequate · 21 September 2026
2.3k
lines of production code
C#
primary language
4
measurements over time
What this system is
Features
Add sample API with user, greeting, and weather endpoints
The sample application now includes a full set of RESTful endpoints for managing users (create, read, update, delete), a greeting system that supports both asynchronous event publishing and synchronous wait-for-completion, a weather forecast service, and a rate-limited public endpoint. The sample also introduces JWT-based authentication, a custom error handling and logging infrastructure, and configurable greeting templates. These additions provide a comprehensive reference implementation for the framework's capabilities, including dependency injection, event handling, and middleware integration.
samples · high confidence
Added event bus with publish and wait capabilities
The framework now supports an event-driven architecture with a new \IEventBus\ interface and \EventBus\ implementation. Users can publish events asynchronously via \Publish\ or synchronously via \PublishAndWait\, which waits for all registered \IEventHandler\<T\>\ implementations to complete. The system automatically discovers and registers event handlers and mappers via type processors, ensuring each handler runs in its own service scope for \Publish\ or the current scope for \PublishAndWait\. Exceptions in handlers are logged or aggregated as \AggregateException\ depending on the method used.
src/Reprise/Features/Events · high confidence
Added exception handling middleware and DI registration
The library now includes a built-in exception handling middleware that catches unhandled exceptions during request processing. Users can customize exception logging and error response generation by implementing the new \IExceptionLogger\ and \IErrorResponseFactory\ interfaces. The \WebApplicationBuilderExtensions.ConfigureServices\ method automatically scans for and registers these implementations, falling back to default providers if none are found. This allows for consistent error handling across the application.
src/Reprise, src/Reprise/Features/ExceptionHandling · high confidence
Adds support for scheduled and startup jobs, endpoint filters, and OpenAPI metadata attributes
The framework now supports background jobs that can run before the server starts, on startup, or on a cron schedule, managed by a new JobRunner and related classes. Developers can apply attributes like \[RunBeforeStart\], \[RunOnStart\], and \[Cron\] to classes implementing IJob to execute them at specific lifecycle points. Additionally, the update introduces a filter system allowing global endpoint filters and validation filters, configurable via attributes or global registration. OpenAPI descriptions can now be customized with attributes to exclude endpoints, set operation names, define tags, and specify response types and status codes. Configuration binding is also supported via a \[Configuration\] attribute for strongly-typed hierarchical models.
(repo-wide) · high confidence
Initial project structure and configuration scaffolding
The repository is initialized with essential configuration files including \.editorconfig\ for C\# coding conventions, \.gitattributes\ for line-ending and diff behavior, a \Directory.Build.props\ enabling nullable reference types and strict code analysis, and a \Reprise.sln\ solution file defining the project structure. Additionally, a \CHANGELOG.md\ is added to track version history, and the \README.md\ is expanded with comprehensive documentation on the framework's features.
(repo-wide) · high confidence
Introduce declarative API endpoint mapping via attributes
Developers can now define API endpoints by decorating classes with the new \EndpointAttribute\ and methods with HTTP method attributes (\GetAttribute\, \PostAttribute\, \PutAttribute\, \PatchAttribute\, \DeleteAttribute\) or the generic \MapAttribute\. The framework automatically discovers these types, validates that each has a public static \Handle\ method, and maps them to the application's routing table via the new \EndpointMapper\ and \EndpointTypeProcessor\. This replaces manual route registration with a convention-based approach.
src/Reprise/Features/Endpoints · high confidence
Test coverage
Added integration and benchmark tests for the API layer; Added unit tests for authorization, configuration, and endpoint filter processors; Added unit tests for the endpoint mapping and processing logic; Added unit tests for the event bus and event handler type processor.
Dependencies
Updated project dependencies and test tooling
This update refreshes the project file dependencies across the codebase. The core Reprise library now targets .NET 6 and 7, and includes updated references to FluentValidation, ncrontab, and Microsoft.SourceLink.GitHub. Test and benchmark projects have been updated to use newer versions of testing frameworks including xUnit 2.5.0, Verify.Xunit 20.5.1, and Microsoft.NET.Test.Sdk 17.6.3, alongside updated versions of Moq, Bogus, and BenchmarkDotNet.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 62 → 62 (-0.0)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 73 → 71 (-2.1)
- Architecture 79 → 79 (+0.0)
- Maturity 51 → 51 (+0.0)
- Readiness 79 → 79 (-0.0)
- Security 68 → 69 (+1.2)
- Performance 83 → 81 (-1.7)
Resolved (8)
- Bounded contexts not declared
- Build action pinned to a mutable branch
- Coverage not measured
- LLM evaluation failed
- No exposed public API
- Test reliability not measured — no test run produced results
- early-stage repository — too few commits for a meaningful bus factor
- early-stage repository — too little history to judge knowledge freshness
New (13)
- Documentation: no architecture or design documentation (docs/Reprise.IEventBus.md)
- Documentation: no architecture or design documentation (docs/Reprise.IExceptionLogger.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- End-of-life runtime: .NET net6.0
- End-of-life runtime: .NET net7.0
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Low XML-doc coverage: Reprise(net6.0) (src/Reprise/Reprise.csproj)
- Low XML-doc coverage: Reprise.SampleApi(net6.0) (samples/Reprise.SampleApi/Reprise.SampleApi.csproj)
- Low XML-doc coverage: Reprise.SampleApi.WeatherService(net6.0) (samples/Reprise.SampleApi.WeatherService/Reprise.SampleApi.WeatherService.csproj)
- No assertions: NoTimers (tests/Reprise.UnitTests/Common/TaskRunnerTests/Dispose.cs)
Architecture
- Containers 0 added · 0 removed · contexts 1 added · 0 removed · edges 0 added · 0 removed
Added bounded contexts (1)
- samples
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
yavorfingarov/Reprise was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b7b3d8866764e6ea5a2361a0a636e63d2e0da486 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.