RepoTrust

expressjs/morgan

HTTP request logger middleware for node.js

https://github.com/expressjs/morgan · commit b1272e70812d · scored 2026-11-13 · scoring prov-3+qual-1+sec-1

RepoTrust ai badge RepoTrust quality badge RepoTrust security badge

Dispute this score or request a re-score Full report JSON

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 0 none-detected 65% 100%
Code quality 96 strong 90% 100%
Security 85 strong 85% 100%

AI provenance

No AI attribution or AI-consistent velocity signals detected.

Month Lines added Attributed to AI
2018-03 155 0%
2018-07 7 0%
2018-09 112 0%
2018-10 23 0%
2018-11 211 0%
2019-01 1 0%
2019-09 1 0%
2020-02 1 0%
2025-12 38 0%
2026-06 150 0%
2026-08 347 0%
2026-09 42 0%

Evidence

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 strong: test-to-source ratio 3.61, CI runs tests; 0% of function code in complex or long functions; 0% duplicated lines. Weakest area: process.

Area Score
Complexity (lizard) 100
Duplication 100
Code smells (Opengrep) 100
Tests and CI 100
Documentation 85
Type safety n/a
Process (Scorecard review/maintenance) 77

Security

Security posture is strong: 1 high-severity workflow issues. Weakest area: scorecard.

Area Score
Secrets (gitleaks, tree + history) 97
Static analysis (Opengrep) 92
Vulnerable dependencies (OSV) n/a
CI workflows (zizmor) 78
Posture (policy, updates, signing, lockfiles) 80
OpenSSF Scorecard 61

Top findings

Severity Finding Location
high zizmor/cache-poisoning: runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low] .github/workflows/npm-publish.yml:27
medium opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] index.js:230
medium zizmor/dependabot-cooldown: insufficient cooldown in Dependabot updates [confidence high] .github/dependabot.yml:3
medium zizmor/dependabot-cooldown: insufficient cooldown in Dependabot updates [confidence high] .github/dependabot.yml:8
medium zizmor/artipacked: credential persistence through GitHub Actions artifacts [confidence low] .github/workflows/ci.yml:156
medium zizmor/artipacked: credential persistence through GitHub Actions artifacts [confidence low] .github/workflows/codeql.yml:43
low gitleaks/private-key: Possible private-key secret in the current tree (test/docs/example file) test/fixtures/server.key:1
low zizmor/adhoc-packages: ad-hoc installation of packages [confidence high] .github/workflows/npm-publish.yml:34

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

Language Lines
JavaScript 2,746

Embed a badge

Maintainers can show these in a README. Badges update when the repository is re-scored.

[![RepoTrust ai](https://repotrust.synapticcyber.com/badge/github.com/expressjs/morgan/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/expressjs/morgan/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/expressjs/morgan/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/expressjs/morgan/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/expressjs/morgan/security.svg)](https://repotrust.synapticcyber.com/r/github.com/expressjs/morgan/)