TrilonIO/aspnetcore-angular-universal
ASP.NET Core & Angular Universal advanced starter - PWA w/ server-side rendering for SEO, Bootstrap, i18n internationalization, TypeScript, unit testing, WebAPI REST setup, SignalR, Swagger docs, and more! By @TrilonIO
- Repository: https://github.com/TrilonIO/aspnetcore-angular-universal
- Commit:
837b134516631afb3034d40278e2bc9f170acdba - Generated: 2026-11-13T23:40:42+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | none-detected | 65% | 100% |
| Code quality | 43 | poor | 90% | 100% |
| Security | 56 | weak | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
- Explicitly attributed share (lower bound): 0.0%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 0.0%
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2017-08 | 377 | 0% |
| 2017-09 | 251 | 0% |
| 2017-10 | 157 | 0% |
| 2018-01 | 187 | 0% |
| 2018-02 | 73 | 0% |
| 2018-03 | 15 | 0% |
| 2018-05 | 132 | 0% |
| 2018-06 | 405 | 0% |
| 2018-08 | 1,048 | 0% |
| 2018-09 | 45 | 0% |
| 2019-02 | 26 | 0% |
| 2019-05 | 80 | 0% |
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is poor: test-to-source ratio 0.13, no CI test run detected; 36% of function code in complex or long functions; 8% duplicated lines. Weakest area: testing.
| Area | Score |
|---|---|
| Complexity (lizard) | 34 |
| Duplication | 61 |
| Code smells (Opengrep) | 43 |
| Tests and CI | 30 |
| Documentation | 65 |
| Type safety | 40 |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 88; mean complexity 1.5, 90th percentile 2; 0 complex and 2 long functions
- Duplicated lines: 8.2% of 1,081 compared
- Tests: 235 test lines for 1,787 source lines (ratio 0.13); CI test commands: none detected; 8% of recent source commits also change tests
- Docs missing or thin: contributing, changelog
Most complex functions:
- module.exports in webpack.config.js: complexity 12, 179 lines
- module.exports in webpack.config.vendor.js: complexity 10, 121 lines
Security
Security posture is weak: 1 high-severity SAST findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 97 |
| Static analysis (Opengrep) | 33 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
- Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles
Top findings
| Severity | Finding | Location |
|---|---|---|
| high | opengrep/dockerfile.security.missing-user-entrypoint: By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium] |
Dockerfile:26 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:32 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:33 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:34 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:35 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:40 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:44 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:56 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:70 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:71 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:75 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:76 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:82 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:90 |
| medium | opengrep/csharp.lang.security.missing-hsts-header: The HSTS HTTP response security header is missing, allowing interaction and communication to be sent over the insecure HTTP protocol. [confidence low] |
Startup.cs:105 |
| low | gitleaks/generic-api-key: Possible generic-api-key secret in history (commit e4bebd8411); removed from the current tree but still retrievable |
appsettings.json:11 |
| low | opengrep/csharp.dotnet.security.audit.missing-or-broken-authorization: Anonymous access shouldn't be allowed unless explicit by design. Access control checks are missing and potentially can be bypassed. This finding violates the principle of least privilege or deny by default, where access should only be permitted for a specific set of roles or conforms to a custom pol [confidence medium] |
Server/Controllers/HomeController.cs:9 |
| low | opengrep/csharp.dotnet.security.audit.missing-or-broken-authorization: Anonymous access shouldn't be allowed unless explicit by design. Access control checks are missing and potentially can be bypassed. This finding violates the principle of least privilege or deny by default, where access should only be permitted for a specific set of roles or conforms to a custom pol [confidence medium] |
Server/RestAPI/UsersController.cs:10 |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Repository profile
- Source lines: 1,787; test lines: 235
| Language | Lines |
|---|---|
| TypeScript | 952 |
| JavaScript | 604 |
| C# | 466 |