Public record
Software health reportschema 0.26.0 · metrics 1.13.0 · 2026-07-22 02:33 UTC

oapi-codegen / oapi-codegen

Generate Go client and server boilerplate from OpenAPI 3 specifications

Go · Go TemplateApache-2.0★ 8,472 stars⑂ 1,049 forkssince Feb 2019View on GitHub ↗

oapi-codegen/oapi-codegen holds a health index of 79 out of 100, placing it in the Good band. It scores highest on Vitality (88/100) and lowest on AI Readiness (68/100). It was last updated today. 2 contributors account for most of its recent work.

79
overall / 100
Good

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

79
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

oapi-codegenOrganization
62 followers19 public repossince Aug 2023

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publish
Gogithub.com/oapi-codegen/oapi-codegen/v2v2.8.0-134 days ago

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

88Excellent · 22% of overall
How it's scored
36/36Push recency — last push 0 days ago
22.2/36Commit cadence — 32/52 weeks with commits
18/18Commit volume — 260 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year260
human_commit_share0.66
days_since_last_push0
active_weeks_last_year32
How it's scored
27/27Ships releases — 87 releases published
36/36Release recency — latest release 4 days ago
19.8/27Release cadence — a release every ~85.6 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count87
latest_release_tagv2.8.0
releases_from_tagsno
days_since_latest_release4
mean_days_between_releases85.6
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

83Good · 18% of overall
How it's scored
60/60Stars — 8,472 stars
25/25Forks — 1,049 forks
8.9/15Watchers — 41 watchers
Inputs used
forks1,049
stars8,472
watchers41
growth_stateorganic
growth_factor_pct100
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
18/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

69Moderate · 24% of overall
How it's scored
25.2/54Bus factor — 2 contributor(s) cover half of all commits
14.2/22.5Commit distribution — top contributor authored 37% of commits
13.5/13.5Contributor breadth — 98 contributors
10/10OpenSSF Scorecard: Contributors — project has 25 contributing companies or organizations
Inputs used
bus_factor2
contributors_sampled98
top_contributor_share0.367
How it's scored
36/46.8Issue resolution — 77% of issues closed
25.1/38.3PR acceptance — 817/1,243 decided PRs merged
1.5/15OpenSSF Scorecard: Code-Review — Found 3/21 approved changesets -- score normalized to 1
Inputs used
merged_prs817
open_issues246
closed_issues818
issue_closed_ratio0.769
closed_unmerged_prs426
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
12.9/25Owner reach — 62 followers of oapi-codegen
15.3/25Track record — 19 public repos, account ~2 yr old
Inputs used
followers62
owner_typeOrganization
is_verified
owner_loginoapi-codegen
public_repos19
account_age_days1,066
How it's scored
25/25Published & resolvable — 1 package(s) on go
35/35Publish recency — latest publish 4 days ago
20/20Version history — 13 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesgithub.com/oapi-codegen/oapi-codegen/v2
ecosystemsgo
any_deprecatedno
min_days_since_publish4

Engineering Quality

Are baseline engineering and documentation practices in place?

78Good · 20% of overall
How it's scored
24/24CI workflows — 7 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
6.4/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigyes
has_linter_configno
has_precommit_configno

Documentation

85Excellent
How it's scored
30/30README
25/25Documentation directory
0/15Documentation / homepage site
10/10Repository description
10/10Topics — 9 topics
10/10Wiki
Inputs used
topicsopenapi3, golang, swagger, openapi, rest-api, go, openapi-codegen, openapi-generator, rest-api-client
has_wikiyes
homepage
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

81Good · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
3/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0.5/2.5CII-Best-Practices — badge detected: InProgress
0.8/7.5Code-Review — Found 3/21 approved changesets -- score normalized to 1
2.5/2.5Contributors — project has 25 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — no data
5/5Pinned-Dependencies — all dependencies are pinned
3/5SAST — SAST tool is not run on all commits -- score normalized to 6
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — no data
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
5.2/7.5Vulnerabilities — 3 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate7.6
Excluded from scoring (no data or not applicable): packaging, signed_releases. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
0/25Indirect dependencies free of known advisories — transitive set not separable from development and test dependencies in this scope
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories4
affected_packages3
assessed_packages126
unassessed_packages0
affected_by_severitymoderate 2, unknown 1
direct_affected_packages0
Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 126 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

68Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 66 of 66 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
How it's scored
18/18One-command bootstrap — Makefile, examples/Makefile, internal/test/Makefile
22/22Automated tests
0/11Lint / format config
11/11Static type checking — Go (statically typed)
10/10Reproducible environment — lockfile
10/10Demonstrated agent practice — 34 of the last 100 commits agent-authored or agent-credited
8/8Automated maintenance — 34 of the last 100 commits are automated dependency updates
10/10OpenSSF Scorecard: Pinned-Dependencies — all dependencies are pinned
Inputs used
has_nixno
has_testsyes
lockfilesgo.sum
has_dockerfileno
typed_languageyes
bootstrap_filesMakefile, examples/Makefile, internal/test/Makefile
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0.34
toolchain_manifestsexamples/go.mod, go.mod, internal/test/go.mod
dependency_bot_commit_share0.34
How it's scored
45/45Type-checkable code — Go (statically typed)
54.1/55Manageable file sizes — 10/599 source files over 60KB
Inputs used
primary_languageGo
largest_source_bytes129,047
source_files_sampled599
oversized_source_files10
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
0/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalno
api_schema_files

Key facts

8,472GitHub stars
98contributors
260commits, last 12 months
0days since last push
87releases
2bus factor
246open issues
Gopackage ecosystems

More detail

Star and fork history 8,472 ★ / 1,049 ⇿
8,472Stars
1,049Forks
79Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

Only the most recent history is shown — this repository exceeds the collection window, so the earliest history is not captured.

02,0004,0006,0008,00010,0008,4721,049332019-052022-122026-07
Major 1Minor 23Patch 55

Each point covers 7 days.

OpenSSF Scorecard 7.6 / 10
7.6aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-22 02:33 UTC

10Binary-Artifactsno binaries found in the repo
4Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
2CII-Best-Practicesbadge detected: InProgress
1Code-ReviewFound 3/21 approved changesets -- score normalized to 1
10Contributorsproject has 25 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10
n/aPackagingpackaging workflow not detected
10Pinned-Dependenciesall dependencies are pinned
6SASTSAST tool is not run on all commits -- score normalized to 6
10Security-Policysecurity policy file detected
n/aSigned-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
7Vulnerabilities3 existing vulnerabilities detected
Direct dependencies 8
RegistryPackageVersion constraintManifest
Gogithub.com/getkin/kin-openapiv0.143.0go.mod
Gogithub.com/speakeasy-api/openapiv1.24.0go.mod
Gogithub.com/stretchr/testifyv1.11.1go.mod
Gogo.yaml.in/yaml/v3v3.0.4go.mod
Gogolang.org/x/modv0.38.0go.mod
Gogolang.org/x/textv0.40.0go.mod
Gogolang.org/x/toolsv0.48.0go.mod
Gogopkg.in/yaml.v3v3.0.1go.mod
All dependencies 126

Full resolved dependency set from the GitHub dependency graph: 8 direct and 118 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
Gogithub.com/getkin/kin-openapiv0.143.0direct
Gogithub.com/speakeasy-api/openapiv1.24.0direct
Gogithub.com/stretchr/testifyv1.11.1direct
Gogo.yaml.in/yaml/v3v3.0.4direct
Gogolang.org/x/modv0.38.0direct
Gogolang.org/x/textv0.40.0direct
Gogolang.org/x/toolsv0.48.0direct
Gogopkg.in/yaml.v3v3.0.1direct
Gogithub.com/andybalholm/brotliv1.2.2indirect
Gogithub.com/apapsch/go-jsonmerge/v2v2.0.0indirect
Gogithub.com/aymerick/douceurv0.2.0indirect
Gogithub.com/burntsushi/tomlv1.6.0indirect
Gogithub.com/bytedance/gopkgv0.1.4indirect
Gogithub.com/bytedance/sonicv1.15.1indirect
Gogithub.com/bytedance/sonic/loaderv0.5.1indirect
Gogithub.com/clipperhouse/uax29/v2v2.7.0indirect
Gogithub.com/cloudwego/base64xv0.1.7indirect
Gogithub.com/cloudykit/fastprinterv0.0.0-20251202014920-1725d2651bd4indirect
Gogithub.com/cloudykit/jet/v6v6.3.2indirect
Gogithub.com/davecgh/go-spewv1.1.2-0.20180830191138-d8f796af33ccindirect
Gogithub.com/decred/dcrd/dcrec/secp256k1/v4v4.4.1indirect
Gogithub.com/dprotaso/go-yitv0.0.0-20220510233725-9ba8df137936indirect
Gogithub.com/fatih/structsv1.1.0indirect
Gogithub.com/flosch/pongo2/v4v4.0.2indirect
Gogithub.com/gabriel-vasile/mimetypev1.4.13indirect
Gogithub.com/gin-contrib/ssev1.1.1indirect
Gogithub.com/gin-gonic/ginv1.12.0indirect
Gogithub.com/go-chi/chi/v5v5.2.5indirect
Gogithub.com/go-openapi/jsonpointerv0.23.1indirect
Gogithub.com/go-openapi/jsonpointerv1.0.0indirect
Gogithub.com/go-openapi/swag/jsonnamev0.26.0indirect
Gogithub.com/go-playground/localesv0.14.1indirect
Gogithub.com/go-playground/universal-translatorv0.18.1indirect
Gogithub.com/go-playground/validator/v10v10.30.2indirect
Gogithub.com/goccy/go-jsonv0.10.6indirect
Gogithub.com/goccy/go-yamlv1.19.2indirect
Gogithub.com/gofiber/fiber/v2v2.52.13indirect
Gogithub.com/gofiber/fiber/v3v3.4.0indirect
Gogithub.com/gofiber/schemav1.8.0indirect
Gogithub.com/gofiber/schemav1.8.1indirect
Gogithub.com/gofiber/utils/v2v2.1.1indirect
Gogithub.com/golang/snappyv1.0.0indirect
Gogithub.com/gomarkdown/markdownv0.0.0-20260417124207-7d523f7318dfindirect
Gogithub.com/google/uuidv1.6.0indirect
Gogithub.com/gorilla/cssv1.0.1indirect
Gogithub.com/gorilla/muxv1.8.1indirect
Gogithub.com/iris-contrib/schemav0.0.6indirect
Gogithub.com/joker/jadev1.1.3indirect
Gogithub.com/josharian/internv1.0.0indirect
Gogithub.com/json-iterator/gov1.1.12indirect
Gogithub.com/kataras/blocksv0.0.12indirect
Gogithub.com/kataras/gologv0.1.11indirect
Gogithub.com/kataras/iris/v12v12.2.11indirect
Gogithub.com/kataras/piov0.0.13indirect
Gogithub.com/kataras/sitemapv0.0.6indirect
Gogithub.com/kataras/tunnelv0.0.4indirect
Gogithub.com/klauspost/compressv1.19.0indirect
Gogithub.com/klauspost/cpuid/v2v2.3.0indirect
Gogithub.com/labstack/echo/v4v4.15.1indirect
Gogithub.com/labstack/echo/v5v5.1.0indirect
Gogithub.com/labstack/echo/v5v5.2.1indirect
Gogithub.com/labstack/gommonv0.5.0indirect
Gogithub.com/leodido/go-urnv1.4.0indirect
Gogithub.com/lestrrat-go/blackmagicv1.0.4indirect
Gogithub.com/lestrrat-go/dsigv1.3.0indirect
Gogithub.com/lestrrat-go/dsig-secp256k1v1.0.0indirect
Gogithub.com/lestrrat-go/httpccv1.0.1indirect
Gogithub.com/lestrrat-go/httprc/v3v3.0.5indirect
Gogithub.com/lestrrat-go/jwx/v3v3.1.0indirect
Gogithub.com/lestrrat-go/option/v2v2.0.0indirect
Gogithub.com/mailgun/raymond/v2v2.0.48indirect
Gogithub.com/mailru/easyjsonv0.9.2indirect
Gogithub.com/mattn/go-colorablev0.1.15indirect
Gogithub.com/mattn/go-isattyv0.0.22indirect
Gogithub.com/mattn/go-runewidthv0.0.23indirect
Gogithub.com/microcosm-cc/bluemondayv1.0.27indirect
Gogithub.com/modern-go/concurrentv0.0.0-20180306012644-bacd9c7ef1ddindirect
Gogithub.com/modern-go/reflect2v1.0.2indirect
Gogithub.com/oapi-codegen/echo-middlewarev1.0.2indirect
Gogithub.com/oapi-codegen/echo-v5-middlewarev0.1.0indirect
Gogithub.com/oapi-codegen/fiber-middlewarev1.0.2indirect
Gogithub.com/oapi-codegen/fiber-v3-middlewarev0.1.0indirect
Gogithub.com/oapi-codegen/gin-middlewarev1.0.2indirect
Gogithub.com/oapi-codegen/iris-middlewarev1.0.5indirect
Gogithub.com/oapi-codegen/nethttp-middlewarev1.1.2indirect
Gogithub.com/oapi-codegen/nullablev1.1.0indirect
Gogithub.com/oapi-codegen/runtimev1.5.0indirect
Gogithub.com/oapi-codegen/testutilv1.1.0indirect
Gogithub.com/oasdiff/yamlv0.1.1indirect
Gogithub.com/oasdiff/yaml3v0.0.14indirect
Gogithub.com/pelletier/go-toml/v2v2.3.0indirect
Gogithub.com/philhofer/fwdv1.2.0indirect
Gogithub.com/pmezard/go-difflibv1.0.1-0.20181226105442-5d4384ee4fb2indirect
Gogithub.com/quic-go/qpackv0.6.0indirect
Gogithub.com/quic-go/quic-gov0.59.0indirect
Gogithub.com/russross/blackfriday/v2v2.1.0indirect
Gogithub.com/santhosh-tekuri/jsonschema/v6v6.0.2indirect
Gogithub.com/schollz/closestmatchv2.1.0+incompatibleindirect
Gogithub.com/segmentio/asmv1.2.1indirect
Gogithub.com/shopify/goreferrerv0.0.0-20250617153402-88c1d9a79b05indirect
Gogithub.com/sirupsen/logrusv1.9.4indirect
Gogithub.com/speakeasy-api/jsonpathv0.6.3indirect
Gogithub.com/stretchr/objxv0.5.2indirect
Gogithub.com/tdewolff/minify/v2v2.24.13indirect
Gogithub.com/tdewolff/parse/v2v2.8.12indirect
Gogithub.com/tinylib/msgpv1.6.4indirect
Gogithub.com/twitchyliquid64/golang-asmv0.15.1indirect
Gogithub.com/ugorji/go/codecv1.3.1indirect
Gogithub.com/valyala/bytebufferpoolv1.0.0indirect
Gogithub.com/valyala/fasthttpv1.72.0indirect
Gogithub.com/valyala/fastjsonv1.6.10indirect
Gogithub.com/valyala/fasttemplatev1.2.2indirect
Gogithub.com/vmihailenco/msgpack/v5v5.4.1indirect
Gogithub.com/vmihailenco/tagparser/v2v2.0.0indirect
Gogithub.com/vmware-labs/yaml-jsonpathv0.3.2indirect
Gogithub.com/yosssi/acev0.0.5indirect
Gogo.mongodb.org/mongo-driver/v2v2.6.0indirect
Gogolang.org/x/archv0.26.0indirect
Gogolang.org/x/cryptov0.54.0indirect
Gogolang.org/x/expv0.0.0-20260410095643-746e56fc9e2findirect
Gogolang.org/x/netv0.57.0indirect
Gogolang.org/x/syncv0.22.0indirect
Gogolang.org/x/sysv0.47.0indirect
Gogolang.org/x/timev0.15.0indirect
Gogoogle.golang.org/protobufv1.36.11indirect
Gogopkg.in/ini.v1v1.67.1indirect
Dependency advisories 3

This repository publishes no package the index resolves, so its own dependency graph was assessed — 126 packages, which also include development and test pins that never ship: 3 carry known advisories, of which 0 are direct.

PackageVersionRelationSeverityAdvisoriesFixed in
github.com/gofiber/fiber/v2v2.52.13indirectmoderate13.3.0
github.com/quic-go/quic-gov0.59.0indirectmoderate20.59.1
golang.org/x/cryptov0.54.0indirectunknown1

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "openapi3",
        "golang",
        "swagger",
        "openapi",
        "rest-api",
        "go",
        "openapi-codegen",
        "openapi-generator",
        "rest-api-client"
      ],
      "is_fork": false,
      "size_kb": 18701,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Go": 1003324,
        "Makefile": 2805,
        "Go Template": 283595
      },
      "pushed_at": "2026-07-21T23:56:03Z",
      "created_at": "2019-02-27T23:59:59Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-22T00:59:47Z",
      "description": "Generate Go client and server boilerplate from OpenAPI 3 specifications",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Go",
      "significant_languages": [
        "Go",
        "Go Template"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "Organization",
      "login": "oapi-codegen",
      "company": null,
      "location": null,
      "followers": 62,
      "avatar_url": "https://avatars.githubusercontent.com/u/142752710?v=4",
      "created_at": "2023-08-20T20:54:26Z",
      "is_verified": null,
      "public_repos": 19,
      "account_age_days": 1066
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.8.0",
          "kind": "minor",
          "published_at": "2026-07-17T14:11:21Z"
        },
        {
          "tag": "v2.7.2",
          "kind": "patch",
          "published_at": "2026-07-07T00:35:42Z"
        },
        {
          "tag": "v2.7.1",
          "kind": "patch",
          "published_at": "2026-06-05T21:45:22Z"
        },
        {
          "tag": "v2.7.0",
          "kind": "minor",
          "published_at": "2026-05-01T16:20:21Z"
        },
        {
          "tag": "v2.6.0",
          "kind": "minor",
          "published_at": "2026-02-27T10:38:16Z"
        },
        {
          "tag": "v2.5.1",
          "kind": "patch",
          "published_at": "2025-11-01T14:54:04Z"
        },
        {
          "tag": "v2.5.0",
          "kind": "minor",
          "published_at": "2025-07-15T15:58:29Z"
        },
        {
          "tag": "v2.4.1",
          "kind": "patch",
          "published_at": "2024-09-28T10:39:20Z"
        },
        {
          "tag": "v2.4.0",
          "kind": "minor",
          "published_at": "2024-09-20T20:35:39Z"
        },
        {
          "tag": "v2.3.0",
          "kind": "minor",
          "published_at": "2024-06-06T21:00:34Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2024-06-04T06:15:08Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2024-01-25T15:02:28Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2023-10-31T20:13:39Z"
        },
        {
          "tag": "v1.16.2",
          "kind": "patch",
          "published_at": "2023-10-24T12:47:03Z"
        },
        {
          "tag": "v1.16.1",
          "kind": "patch",
          "published_at": "2023-10-23T16:30:32Z"
        },
        {
          "tag": "v1.16.0",
          "kind": "minor",
          "published_at": "2023-10-23T16:08:15Z"
        },
        {
          "tag": "v1.15.0",
          "kind": "minor",
          "published_at": "2023-09-11T08:16:07Z"
        },
        {
          "tag": "v1.14.0",
          "kind": "minor",
          "published_at": "2023-08-30T20:07:57Z"
        },
        {
          "tag": "v1.13.4",
          "kind": "patch",
          "published_at": "2023-08-07T15:04:48Z"
        },
        {
          "tag": "v1.13.3",
          "kind": "patch",
          "published_at": "2023-08-03T09:32:02Z"
        },
        {
          "tag": "v1.13.2",
          "kind": "patch",
          "published_at": "2023-07-31T20:17:33Z"
        },
        {
          "tag": "v1.13.1",
          "kind": "patch",
          "published_at": "2023-07-31T10:43:19Z"
        },
        {
          "tag": "v1.13.0",
          "kind": "minor",
          "published_at": "2023-06-02T22:57:19Z"
        },
        {
          "tag": "v1.12.4",
          "kind": "patch",
          "published_at": "2022-12-01T14:00:05Z"
        },
        {
          "tag": "v1.12.3",
          "kind": "patch",
          "published_at": "2022-11-21T20:34:07Z"
        },
        {
          "tag": "v1.12.2",
          "kind": "patch",
          "published_at": "2022-10-29T00:43:18Z"
        },
        {
          "tag": "v1.12.1",
          "kind": "patch",
          "published_at": "2022-10-28T00:49:18Z"
        },
        {
          "tag": "v1.12.0",
          "kind": "minor",
          "published_at": "2022-10-28T00:25:33Z"
        },
        {
          "tag": "v1.11.0",
          "kind": "minor",
          "published_at": "2022-05-21T00:39:56Z"
        },
        {
          "tag": "v1.10.1",
          "kind": "patch",
          "published_at": "2022-04-19T20:16:40Z"
        },
        {
          "tag": "v1.10.0",
          "kind": "minor",
          "published_at": "2022-04-19T15:44:47Z"
        },
        {
          "tag": "v1.9.1",
          "kind": "patch",
          "published_at": "2022-01-21T19:09:49Z"
        },
        {
          "tag": "v1.9.0",
          "kind": "minor",
          "published_at": "2021-11-02T23:43:52Z"
        },
        {
          "tag": "v1.8.3",
          "kind": "patch",
          "published_at": "2021-10-04T22:53:15Z"
        },
        {
          "tag": "v1.8.2",
          "kind": "patch",
          "published_at": "2021-07-23T17:45:13Z"
        },
        {
          "tag": "v1.8.1",
          "kind": "patch",
          "published_at": "2021-06-18T20:42:24Z"
        },
        {
          "tag": "v1.8.0",
          "kind": "minor",
          "published_at": "2021-06-18T20:31:57Z"
        },
        {
          "tag": "v1.7.1",
          "kind": "patch",
          "published_at": "2021-06-02T18:59:17Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2021-05-22T21:36:43Z"
        },
        {
          "tag": "v1.6.2",
          "kind": "patch",
          "published_at": "2021-05-21T23:29:23Z"
        },
        {
          "tag": "v1.6.1",
          "kind": "patch",
          "published_at": "2021-04-14T15:09:45Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2021-04-02T21:21:16Z"
        },
        {
          "tag": "v1.5.6",
          "kind": "patch",
          "published_at": "2021-03-22T20:29:20Z"
        },
        {
          "tag": "v1.5.5",
          "kind": "patch",
          "published_at": "2021-03-20T16:34:06Z"
        },
        {
          "tag": "v1.5.4",
          "kind": "patch",
          "published_at": "2021-03-19T19:30:50Z"
        },
        {
          "tag": "v1.5.3",
          "kind": "patch",
          "published_at": "2021-03-19T16:49:47Z"
        },
        {
          "tag": "v1.5.2",
          "kind": "patch",
          "published_at": "2021-03-18T00:46:17Z"
        },
        {
          "tag": "v1.5.1",
          "kind": "patch",
          "published_at": "2021-02-08T17:58:25Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2021-01-30T00:50:16Z"
        },
        {
          "tag": "v1.4.2",
          "kind": "patch",
          "published_at": "2021-01-07T03:58:41Z"
        },
        {
          "tag": "v1.4.1",
          "kind": "patch",
          "published_at": "2020-11-06T18:22:03Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2020-10-30T21:31:25Z"
        },
        {
          "tag": "v1.3.13",
          "kind": "patch",
          "published_at": "2020-09-04T17:02:19Z"
        },
        {
          "tag": "v1.3.12",
          "kind": "patch",
          "published_at": "2020-08-19T15:35:37Z"
        },
        {
          "tag": "v1.3.11",
          "kind": "patch",
          "published_at": "2020-07-20T18:48:21Z"
        },
        {
          "tag": "v1.3.10",
          "kind": "patch",
          "published_at": "2020-07-20T16:58:27Z"
        },
        {
          "tag": "v1.3.9",
          "kind": "patch",
          "published_at": "2020-07-09T20:54:28Z"
        },
        {
          "tag": "v1.3.8",
          "kind": "patch",
          "published_at": "2020-05-07T22:40:27Z"
        },
        {
          "tag": "v1.3.7",
          "kind": "patch",
          "published_at": "2020-04-10T16:37:32Z"
        },
        {
          "tag": "v1.3.6",
          "kind": "patch",
          "published_at": "2020-03-05T18:44:40Z"
        },
        {
          "tag": "v1.3.5",
          "kind": "patch",
          "published_at": "2020-02-19T17:34:29Z"
        },
        {
          "tag": "v1.3.4",
          "kind": "patch",
          "published_at": "2020-01-15T17:26:08Z"
        },
        {
          "tag": "v1.3.3",
          "kind": "patch",
          "published_at": "2019-12-11T22:37:32Z"
        },
        {
          "tag": "v1.3.2",
          "kind": "patch",
          "published_at": "2019-11-19T05:06:10Z"
        },
        {
          "tag": "v1.3.1",
          "kind": "patch",
          "published_at": "2019-11-15T21:51:14Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2019-09-03T16:43:07Z"
        },
        {
          "tag": "v1.2.6",
          "kind": "patch",
          "published_at": "2019-08-19T16:50:21Z"
        },
        {
          "tag": "v1.2.5",
          "kind": "patch",
          "published_at": "2019-07-27T22:20:44Z"
        },
        {
          "tag": "v1.2.4",
          "kind": "patch",
          "published_at": "2019-07-24T23:51:02Z"
        },
        {
          "tag": "v1.2.3",
          "kind": "patch",
          "published_at": "2019-07-17T16:32:51Z"
        },
        {
          "tag": "v1.2.2",
          "kind": "patch",
          "published_at": "2019-07-08T16:58:46Z"
        },
        {
          "tag": "v1.2.1",
          "kind": "patch",
          "published_at": "2019-07-05T20:17:58Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2019-07-05T19:53:32Z"
        },
        {
          "tag": "v1.1.7",
          "kind": "patch",
          "published_at": "2019-06-27T22:02:57Z"
        },
        {
          "tag": "v1.1.6",
          "kind": "patch",
          "published_at": "2019-06-15T00:08:35Z"
        },
        {
          "tag": "v1.1.5",
          "kind": "patch",
          "published_at": "2019-05-28T19:44:37Z"
        },
        {
          "tag": "v1.1.4",
          "kind": "patch",
          "published_at": "2019-05-25T21:41:50Z"
        },
        {
          "tag": "v1.1.3",
          "kind": "patch",
          "published_at": "2019-05-16T20:32:16Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2019-05-10T03:43:31Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2019-05-03T23:43:45Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2019-04-26T23:54:29Z"
        },
        {
          "tag": "v1.0.6",
          "kind": "patch",
          "published_at": "2019-04-19T22:19:15Z"
        },
        {
          "tag": "v1.0.5",
          "kind": "patch",
          "published_at": "2019-04-15T23:58:43Z"
        },
        {
          "tag": "v1.0.4",
          "kind": "patch",
          "published_at": "2019-04-09T23:50:53Z"
        },
        {
          "tag": "v1.0.3",
          "kind": "patch",
          "published_at": "2019-04-09T22:44:11Z"
        },
        {
          "tag": "v1.0.2",
          "kind": "patch",
          "published_at": "2019-03-22T20:55:30Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2019-03-15T23:09:48Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "d31f05b99cb2a4726ad7e2a1cbf22d0d436de9bb",
          "body": "…o.mod) (#2491)\n\n* fix(deps): update module github.com/getkin/kin-openapi to v0.143.0 (go.mod)\n\n* Fix path ordering\n\nkin-openapi v0.143.0 removed StringMap and introduced attachOriginToResolved,\nwhich re-attaches Origins to $ref-resolved path items using the *external*\nfile's origin tree. pathItemSo\n[…]\nack that\nmatched pre-v0.143.0 behaviour.\n\nCloses: N/A\n\n---------\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>\nCo-authored-by: Marcin Romaszewicz <marcinr@gmail.com>",
          "is_bot": true,
          "headline": "fix(deps): update module github.com/getkin/kin-openapi to v0.143.0 (g…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-21T23:56:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ebaa6b998746f398aa89f272bb0418b9f0aa2596",
          "body": "`checkExtensions` in `validate_spec.go` validated `x-go-name`,\n`x-go-type-name`, `x-go-type`, and `x-oapi-codegen-extra-tags`, but\nhad no case for `x-go-type-import`. This adds validation for both\nfields of that extension:\n\n- `name`: must be empty, `\".\"` (dot-import), or a valid Go identifier;\n  han\n[…]\nse-insensitive key matching\n(mirroring `ParseGoImportExtension`), and regression coverage for the\npre-existing extension checks.\n\nCo-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add missing case to validation (#2493)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-21T23:34:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fc6e210fbc3bc61811f2affc368057c24eeea1e8",
          "body": "…orkflows) (#2490)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github/codeql-action action to v4.37.2 (.github/w…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-21T23:33:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5aa731470a6bfe9fee6ae781f4bb1c18ea1f95b2",
          "body": "…(#2489)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update actions/labeler action to v7 (.github/workflows) …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-21T23:32:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1fbd3bb7a5e1ba7fae1d0cbc6265fabbb396fbc",
          "body": "…ows) (#2487)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update actions/checkout action to v7.0.1 (.github/workfl…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-21T23:32:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ffa4b970959ef6f31f78ae210875b4c3389a96c",
          "body": "…(.github/workflows)",
          "is_bot": true,
          "headline": "chore(deps): update release-drafter/release-drafter action to v7.6.0 …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-19T19:27:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3eef009568d6c18d73a19697100dcf674386be44",
          "body": "As `go mod tidy -diff` is now available.",
          "is_bot": false,
          "headline": "chore: use go mod tidy instead of tidied (#2482)",
          "author_name": "Oleksandr Redko",
          "author_login": "alexandear",
          "committed_at": "2026-07-17T21:00:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45c3fd1e2f1dac268a8659f1425fd24cc8c1a929",
          "body": null,
          "is_bot": false,
          "headline": "chore(renovate): group version bumps in docs updates",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-07-17T17:10:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf9be388cff518e5baec8fa2e8c5978339195246",
          "body": "…v2.8.0 (readme.md) (#2480)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "docs(deps): update module github.com/oapi-codegen/oapi-codegen/v2 to …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-17T16:52:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64d40f5e29eb36dabd5c3c336f8367ed5873ac9a",
          "body": "…v2.8.0 (docs)",
          "is_bot": true,
          "headline": "docs(deps): update module github.com/oapi-codegen/oapi-codegen/v2 to …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-17T16:50:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3b45fcdf4510ef13bc4e402ed797713b26b5ee5",
          "body": "…orkflows) (#2472)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github/codeql-action action to v4.37.1 (.github/w…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-17T14:14:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de2d8b2b0afb287198554eb305bb0d2687d26a85",
          "body": "…tion (#2477)\n\nPR #2465 (issue #1887) changed generated servers to register route handlers in\nspec-declaration order, so that routers which match in registration order\n(Fiber, Gorilla/mux) can disambiguate overlapping paths by ordering them in the\nspec. This makes that behavior opt-out: the new sort\n[…]\nlag unset the default\noutput is unchanged.\n\nAdds TestSortHandlerRegistrations and documents the flag in\nconfiguration-schema.json.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add sort-handler-registrations flag to opt out of spec-order registra…",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-17T14:01:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bd52535efac830d0ea67c918fc6d104539b9cb29",
          "body": "…isions (#2476)\n\n* Revert \"Generate shared path-level parameter helper types once (#2466)\"\n\nThis reverts commit a07731d8f3410162ecda0e12b5d1e178c7a1f7ef.\n\n* Name shared path parameter helper types once, hashing cross-path collisions\n\nCloses: #2090\n\nA parameter declared at the path-item level is inhe\n[…]\non-colliding single-method parameter (unchanged).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Name shared path parameter helper types once, hashing cross-path coll…",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-17T01:52:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ce2e068a85797f1d7dd40f847b51031c7ad7faa2",
          "body": "* add literal colon support for gin and echo\n\n* backslashes should themselves be escaped too\n\n* and of course, the tests need to be updated to account for the backslashed backslashes\n\n* Complete literal-colon path support for gin, echo, and fiber\n\nBuilds on the original fix by escaping literal colon\n[…]\nler. Moves the existing\npath_edge_cases fixture under paths/ and regenerates it with the escaped\nroute.\n\n* Update greptile directives\n\n---------\n\nCo-authored-by: Marcin Romaszewicz <marcinr@gmail.com>",
          "is_bot": false,
          "headline": "feat(#1726): add literal colon support for gin, echo, fiber (#1879)",
          "author_name": "cosban",
          "author_login": "cosban",
          "committed_at": "2026-07-16T18:44:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "145792280910f78f9f2c7208c507f80a34c5c572",
          "body": "Closes: #2470\n\nWhen a discriminated `oneOf` union is defined in an external file and pulled\ninto an `allOf` from another package via `import-mapping`, the generated\n`ValueByDiscriminator()` interpolated the raw discriminator mapping value\n(e.g. `externalRef0.GitDiffFile`) directly into the method na\n[…]\nnder\n`internal/test/references/multipackage/discriminated_union_allof` that\nreproduces the two-file, import-mapped, discriminated-union-in-allOf case and\nexercises `ValueByDiscriminator()` end-to-end.",
          "is_bot": false,
          "headline": "Fix ValueByDiscriminator() with external refs (#2474)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-16T17:52:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6d3c8644085e677cd66eabf85a56005d331d1940",
          "body": "Closes: #1898\n\nThe OpenAPI 3.0 idiom for making a $ref nullable is to wrap it in an\nallOf alongside an inline `{nullable: true}`, since 3.0 forbids siblings\nnext to $ref. This failed generation with \"error merging schemas for\nAllOf: merging two schemas with different Nullable\".\n\nTwo problems:\n\n1. me\n[…]\nrnal/test/schemas/nullable exercising the decorated-$ref idiom under\nnullable-type:true for both required and optional properties.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix allOf/nullable detection and recursion (#2473)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-16T17:12:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "823a7a7b076145ba2c89baf9446e5d0462eb6e52",
          "body": "Closes: #1905\n\nIn `mergeOpenapiSchemas`, `result.OneOf` was assigned from `s1.OneOf` and\n`s2.OneOf` before the transitive AllOf flattening loop, which then overwrote\n`s1` and `s2` entirely. Any `OneOf` (or `AnyOf`) that surfaced from a nested\nallOf member was silently dropped, causing the union fiel\n[…]\nchema (`NestedOneOfInAllOf`) and `TestIssue1905` to the\n`aggregates/allof` test fixture to lock in the correct generated output.\n\nCo-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix nested allOf/anyOf merging (#2471)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-16T16:32:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "919352685e24583e67101728f40b7c1742845238",
          "body": "… (#2469)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update actions/setup-go action to v7 (.github/workflows)…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-16T14:07:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a07731d8f3410162ecda0e12b5d1e178c7a1f7ef",
          "body": "Closes: #2090\n\nA parameter declared at the path-item level is inherited by every method on\nthe path. Its helper types — the member types of an inline anyOf/oneOf,\nnamed from the parameter alone (Id0, Id1, ...) — were generated once per\noperation, so a path with more than one method declared them sev\n[…]\nplus a spec_validation\ntestdata case for the cross-path rejection and a multi-method valid.yaml\ncase for the accepted shared case.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Generate shared path-level parameter helper types once (#2466)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-13T23:34:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "657424013eb238e6811be1b7403f20c95d6c4c6e",
          "body": "Closes: #1887\n\nRoute registration was emitted in sorted path order, so reordering paths in\nthe spec had no effect. On routers that match in registration order (Fiber,\nGorilla/mux) this left users no way to disambiguate overlapping paths — e.g.\na request for `/templates/privates/shortcuts` always wen\n[…]\nsting ordering behavior — in particular the\norder-dependent fallback in name-collision resolution. Only handler\nregistration follows spec order.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Register handlers in spec order (#2465)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-13T18:19:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "18ef71552d31552ac7358c369b45de1670324c0d",
          "body": "Closes: #1897\n\nFor a `text/plain` response whose schema is not a string, the strict\nserver generated an invalid body conversion in the response `Visit`\nmethod. On the net/http path it emitted `w.Write([]byte(response))`,\nwhich fails to compile for a non-string underlying type (integer,\nboolean, `ope\n[…]\nponse writes \"201\" and the boolean\nwrites \"true\"; regenerates the strict-server fixtures, whose string text\nresponses are unaffected at runtime.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Stringify non-string text/plain responses in strict servers (#2464)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-13T17:17:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1e31932719e928654b4efc0b2b2b19d436d3a46c",
          "body": "…463)\n\nCloses: #2060\n\nWhen a response header is an external `$ref` (it lives in another file\nmapped via import-mapping) and that header's schema is itself a `$ref`\nto a named type, the generated response-headers struct referenced the\ntype by a bare local name (e.g. `ETag ETagSchema`) instead of the\n\n[…]\n client\ngeneration; the committed generated files must compile as part of the\ntest module, which guards against the undefined-symbol regression.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Qualify external header schema refs in generated response headers (#2…",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-13T16:14:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9efd95a07246419987a06f0afad3ecdda799a7e6",
          "body": "…wrappers (#2462)\n\nCloses: #2011\n\nResponse headers declared in the spec were dropped by the generated\nclient: the response wrapper exposed only the body fields, leaving\ndeclared headers reachable solely through the raw http.Response. The\nstrict server already generates typed header structs and write\n[…]\nes.\n\nThe change is purely additive: specs without response headers generate\nbyte-identical output, and no strict-server or model output changes.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Parse declared response headers into typed fields on client response …",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-13T14:51:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "28e0964c903ca2ff760b1beee8cf5abd012697d5",
          "body": "Closes: #2459\n\nimport-mapping keys are the paths of $ref'd documents — a relative file\npath or a URL — but users occasionally write a JSON pointer like\n\"#/components/schemas\" expecting internal references to be remapped to\nanother Go package (seen in #2078). Such an entry can never match\nanything, s\n[…]\nt: keys are document paths, internal refs cannot be remapped, and\nschemas wanted in a separate package should be split into their own spec\nfile.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Reject import-mapping keys that are JSON pointers (#2461)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-13T01:26:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "87e9aa2ce8831635dd47e0e073cfa7e11cc8cedb",
          "body": "…ics (#2460)\n\nCloses: #2065\n\nA ServeMux pattern ending in '/' matches the whole subtree below it,\nwhile an OpenAPI path ending in '/' means exactly that path. Registering\nspec paths as subtree patterns both mismatched the spec's semantics and\npanicked at registration when two such patterns overlappe\n[…]\nnew test leaf pins alongside the issue's panic repro.\n\nSince we are changing behavior in the direction of correctness, I am not\nflagifying this.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Anchor trailing-slash stdhttp routes with {$} to match OpenAPI semant…",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-13T01:15:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "68f8c3b5c0cfde074ca6af663d113c66572af2e4",
          "body": "Closes: #2456\n\nA `type: string, format: duration` schema previously fell through to a\nplain Go string, leaving parsing and validation of the OpenAPI\n\"duration\" format entirely to the user. The default type mapping now\nresolves it to openapi_types.Duration, the RFC 3339 duration type added\nto the run\n[…]\nconfiguration file:\n\n    output-options:\n      type-mapping:\n        string:\n          formats:\n            duration:\n              type: string\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Map format: duration to the runtime's RFC 3339 Duration type (#2458)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-13T00:10:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "50ecd9eaf3b126d5e60b4e6d3df82a03af40645d",
          "body": "…s (#2457)\n\nCloses: #2455\n\nGenerated server wrappers bound path parameters without knowing whether\nthe router had already percent-decoded them, so the runtime's\nunconditional unescape double-decoded values containing literal percent\nsigns (\"discount%20\" arrived as \"discount \", \"15%off\" failed bindin\n[…]\nts.\n- stdhttp gets a single-route escaping probe, since its full round-trip\n  run is still skipped on the digit-leading parameter panic (#2306).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Tell the runtime whether routers deliver escaped path parameter value…",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-12T23:59:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "05eb4a76506e53129d54c533d5d632627165a93a",
          "body": "Closes: #2180\n\nThe reported miscompilation — a string enum value like N\\A emitted\nverbatim into a double-quoted Go literal — was already fixed by #2433,\nwhich routes string enum constants through strconv.Quote. That change\nshipped without an end-to-end test for this scenario, so pin it with a\ntest generating from the issue's schema and asserting the escaped\nconstant and formattable output.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add regression test for enum values containing backslashes (#2454)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-12T22:54:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e66004bf92fe911b8038817a43a743d4095524be",
          "body": "* Fix discriminator stamping for pointer-typed and named discriminator fields\n\nCloses: #2297\n\nThe From*/Merge* union helpers assigned the discriminator value as a raw\nstring literal to the variant's field (v.Code = \"resource_exists\"), which\ndoes not compile when the discriminator property is optiona\n[…]\ny@anthropic.com>\n\n* Move discriminator stamp logic into Go code\n\nMove as much logic as possible into Go code, instead of complicating\ntemplates.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix discriminator type on unions (#2453)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-12T17:44:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5b7486ac6a8445f794f71f88af3c10df39d245ea",
          "body": "Closes: #2383\n\nTyped context keys (#1187) gave each generated package its own unexported\nkey type per security scheme, so a scheme shared across specs via $ref no\nlonger matched in context.Value lookups between packages.\n\nA security scheme that $refs a spec covered by import-mapping now aliases\nthe \n[…]\nlias.\n\nThe enable-auth-scopes-on-context option is now formally marked as\ndeprecated in its Go doc comment and in the configuration JSON schema.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Share security scheme context keys across import-mapped packages (#2452)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-12T15:21:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9e29f1726947979bd5834fd62e17fc49638d5873",
          "body": "As otherwise we see `defines model for .`, which isn't correct.\n\nThis isn't the best rendered output but improves our output for now.\n\nCo-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@rootly.com>",
          "is_bot": false,
          "headline": "fix: render Godoc correctly for union types",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-07-12T14:42:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c87e0d314d1721a580581c34b1fd54b01d6e3c5",
          "body": "As otherwise we see `defines model for .`, which isn't correct.\n\nCo-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@rootly.com>",
          "is_bot": false,
          "headline": "fix: render Godoc correctly for renamed types",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-07-12T14:42:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "404bf799d18be7fdfd8bf43a55fedc2dbf023f16",
          "body": "…o.mod) (#2450)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "fix(deps): update module github.com/getkin/kin-openapi to v0.142.0 (g…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-12T01:13:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8c502297c8b4e9befcebb734bd8709681933e7b",
          "body": "…ub/workflows) (#2447)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update golang/govulncheck-action action to v1.1.0 (.gith…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-10T17:22:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42e4d90794c43cba77df8a597f3ea06a6cd6008f",
          "body": "…o.mod) (#2446)\n\n* fix(deps): update module github.com/getkin/kin-openapi to v0.141.0 (go.mod)\n\n* Update generated code\n\nkin-openapi 0.141.0 changes how it marshals empty responses, which\naffects one of our specs that gets re-marshaled and embedded into the\nboilerplate.\n\n---------\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>\nCo-authored-by: Marcin Romaszewicz <marcinr@gmail.com>",
          "is_bot": true,
          "headline": "fix(deps): update module github.com/getkin/kin-openapi to v0.141.0 (g…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-10T17:21:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0710f198ca0efb02145e523b78d27baa9b58f3d",
          "body": "* fix: gate fiber v3 auth scopes behind compatibility flag\n\nThe fiber v3 server template emitted per-operation security scope\ncontext values unconditionally, but the corresponding ...Scopes\nconstants are only generated when\ncompatibility.enable-auth-scopes-on-context is set. Under default\nconfigurat\n[…]\nerrors, 500 for response errors), matching what the gin strict\ntemplate does.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Bring all routers to parity with each other (#2445)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-10T00:17:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e64333651ae90aa45275ee2460f80bca88254f0d",
          "body": "* fix: bind only the request body in echo v5 strict handlers\n\nThe echo v5 strict handler template used ctx.Bind, which binds path\nvalues (and, for some methods, query parameters) into the request body\nstruct before binding the body itself, so a path parameter sharing a\nname with a body field would o\n[…]\nat makes Echo's full Bind copy a\nsame-named path parameter into the body struct — Echo's binder skips\nfields without param/query/form tags, so plain generated structs need\nan extra tag to be affected.",
          "is_bot": false,
          "headline": "fix: bind only the request body in echo v5 strict handlers (#2444)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-09T22:28:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "52038a84afe5cfc3d5b79a2d430a0690e8a35749",
          "body": "Closes: #1757\n\nUse Echo's body binder, when possible, or defer to the globally overridden binder, if that's been set.\n\nCo-authored-by: Marcin Romaszewicz <marcinr@gmail.com>",
          "is_bot": false,
          "headline": "fix: bind to body (#2063)",
          "author_name": "Yo Han Joo",
          "author_login": "SeaRoll",
          "committed_at": "2026-07-09T21:52:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d466889f3091e93594feb6f3451d5c980f5133d",
          "body": null,
          "is_bot": true,
          "headline": "fix(deps): update module golang.org/x/tools to v0.48.0 (go.mod)",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-09T21:15:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d87e7075c94d735f31043c789a029bd98c75b6b1",
          "body": null,
          "is_bot": true,
          "headline": "fix(deps): update module golang.org/x/text to v0.40.0 (go.mod)",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-09T21:07:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "463e5790c6648eab19ac2f981b0a6d22fb306b60",
          "body": null,
          "is_bot": true,
          "headline": "fix(deps): update module golang.org/x/mod to v0.38.0 (go.mod)",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-09T21:03:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9f7baf13348a5f1a526fdd3db39033348d58321",
          "body": "…(.github/workflows) (#2388)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update release-drafter/release-drafter action to v7.5.1 …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-09T20:59:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "754a70cba0e994c045cb0f96f5068d9891ec3a43",
          "body": "…(go.mod) (#2416)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "fix(deps): update module github.com/speakeasy-api/openapi to v1.24.0 …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-09T20:57:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad23e6b901a65d7539a4761c4fff791259e7a442",
          "body": "…orkflows) (#2384)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github/codeql-action action to v4.37.0 (.github/w…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-09T20:53:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "29e22161fb466d7c6cec5d0f3f7a31b0287d7f8c",
          "body": "…h-all unmarshal error (#2427)\n\n* fix: emit case clauses for bodyless responses to prevent default catch-all unmarshal error\n\nWhen a spec defines a response without content (e.g. 204 No Content)\nalongside a default error response with JSON content, the generated\nParse*Response function would attempt\n[…]\nenerated files pick up both the reordering and the no-content break\nclauses from the previous commit, which had not been regenerated.\n\n---------\n\nCo-authored-by: Marcin Romaszewicz <marcinr@gmail.com>",
          "is_bot": false,
          "headline": "fix: emit case clauses for bodyless responses to prevent default catc…",
          "author_name": "Luke Cawood",
          "author_login": "lwc",
          "committed_at": "2026-07-09T19:44:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1111f5a954c40b2a43cffcb4c18f30642337461f",
          "body": "The cookie `IsPassThrough` branch in the fiber v2 middleware template\nemitted `}&cookie` instead of `&cookie` when `HasOptionalPointer` is\ntrue, producing a compile error in any generated server with an\noptional pass-through cookie parameter. No committed fixture exercises\nsuch a parameter, which is how it went unnoticed.",
          "is_bot": false,
          "headline": "fiber: fix extra brace in optional pass-through cookie binding (#2443)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-09T19:43:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5fb965e8282f0b26f0b4ab82a1d0d2f824b64907",
          "body": "…ws) (#2441)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update actions/labeler action to v6.2.0 (.github/workflo…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-09T18:39:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f7d6d8b5ca693f588aceb08370a36d77b102632",
          "body": "…ows) (#2429)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update actions/setup-go action to v6.5.0 (.github/workfl…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-09T18:27:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "596935ec511bdd262d9068f1773e4e94a8b642d7",
          "body": "Add fiber v3 server support\n\nAdd a `fiber-v3-server` generation target (fiber v3 requires Go 1.25+),\ncontinuing #1937.\n\n- Add `fiber-v3` and `strict-fiber-v3` template sets, derived from the\n  fiber v2 templates and adapted to the fiber v3 API: `fiber.Ctx` is\n  passed by value, request bodies use `c\n[…]\n/fiber/v3 v3.4.0.\n\nCo-authored-by: Łukasz Opasiak <lukasz.opasiak@proton.me>\nCo-authored-by: Marcin Romaszewicz <marcinr@gmail.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Codegen: add fiber v3 support (rebased on main, fiber v3 stable) (#2431)",
          "author_name": "dillonbuchanan-maia-tech",
          "author_login": "dillonbuchanan-maia-tech",
          "committed_at": "2026-07-09T18:26:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "90bd665f8aebdb6d457630c7759baff4644e3fca",
          "body": "Now that we have echo V5 middleware, use it, rather than recreating\nit locally.",
          "is_bot": false,
          "headline": "Update echo V5 petstore example (#2442)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-09T17:11:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cdf0907a107ed99b700226959b9f1284e7f85fa2",
          "body": "Reorganize documentation, so it's not one monolithic file. Move router-specific examples into the `docs/` directory.\n\nAdd Makefile rules to generate the table of contents via mdtoc\n\nAdd a Github workflow to ensure the TOC is up to date.",
          "is_bot": false,
          "headline": "Refactor documentation (#2272)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-08T00:27:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41eeb46b9680a47c0c51f919028c879faaa9237c",
          "body": "Generated server code no longer embeds security scheme scopes into the\nrequest context. The per-scheme context key types (e.g.\n`bearerAuthContextKey`), scope constants (e.g. `BearerAuthScopes`), and\nper-operation context stores flattened the spec's `security`\nrequirements and could not represent alt\n[…]\n\n- Regenerate; affected fixtures and examples lose only the now-dead\n  scope artifacts. The authenticated-api examples already authenticate\n  via the validation middleware and are otherwise unaffected",
          "is_bot": false,
          "headline": "Deprecate ctx based security scopes (#2440)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-07T23:08:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "016983810b630f46ea0e318848a691b03190d974",
          "body": "Specs that already list an empty `{}` security alternative alongside named\nschemes previously still had the scheme's scopes context key (such as\n`BearerAuthScopes`) set by generated middleware. After regenerating, that key\nis no longer set for such operations, so authentication middleware that\nenfor\n[…]\nequests as anonymous.\nCall this out explicitly in the security documentation.\n\nCo-authored-by: kriptoburak <kriptoburak@users.noreply.github.com>\nCo-authored-by: Marcin Romaszewicz <marcinr@gmail.com>",
          "is_bot": false,
          "headline": "fix: allow anonymous security alternatives (#2432)",
          "author_name": "Burak Bayır",
          "author_login": "kriptoburak",
          "committed_at": "2026-07-07T19:09:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8b14421b7a7dfac9ee2af16c0fba802b116181ca",
          "body": "…v2.7.2 (readme.md) (#2439)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "docs(deps): update module github.com/oapi-codegen/oapi-codegen/v2 to …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-07-07T15:42:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae4f369ef09c404e786dddea774c271114d8ed1f",
          "body": "Reorganize internal/test into feature categories\n\nReplace the organically grown layout — 56 issues/issue-NNNN directories\nplus a few kitchen-sink specs — with 13 feature categories (schemas,\naggregates, parameters, bodies, servers, clients, events, references,\nextensions, options, naming, openapi31,\n[…]\n.md so review enforces\n  category placement and issue-numbered directories don't return.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: refactor all tests by category (#2260)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-07T04:17:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4bd0ad869e2b8fd58031b11aa6673ce3569bd9fa",
          "body": "Add ValidateSpec in pkg/codegen, called from Generate after filtering and\npruning. It walks the loaded document and rejects values that would produce\ninvalid Go source: names, paths, media types, discriminator values, security\nscopes and struct-tag content may not contain quotes, backticks, or contr\n[…]\nuseful for ordinary malformed specs too.\n\nAdds internal/test/spec_validation with one spec per error type plus a\nlegitimate spec that must pass.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Validate OpenAPI spec before codegen (#2435)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-07T00:05:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "53daae1fb036c8c630bb1b723ef7bbd64fb86301",
          "body": "Closes: #2430\n\nOpenAPI 3.1 allows a schema whose only type is \"null\", which validates\nexactly the JSON value null. The type dispatch in oapiSchemaToGoType\nhad no branch for it, so codegen failed with \"unhandled Schema type:\n&[null]\". Map such schemas to `any`, mirroring the permissive mapping\nused f\n[…]\ns, and skip the optional pointer since nil is\nalready the zero value of `any`. Includes a regression test under\ninternal/test/issues/issue-2430.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Handle pure nullable types (#2437)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-06T18:38:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d5e1d026fa4d8e0e5be7811578c27a8721d6f768",
          "body": "Spec-derived paths and string enum values were interpolated into generated\nGo source without escaping, so a value containing a quote could produce\nmalformed output. Route paths in the server registration templates and\nstring enum constants are now emitted through strconv.Quote (the existing\ntoGoString helper) so they are always valid, properly-escaped Go string\nliterals. Generated output is unchanged for normal specs.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Make sure to escape user strings (#2433)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-07-06T01:22:04Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5d02a03ac0e92e7c3abe9f185800ea26b3a47fed",
          "body": "Clean up the petstore-expanded example so each server variant is\nself-contained: its own generated types and embedded spec, its own copy\nof the trivial in-memory store (a Go map), and its own handler\nimplementation. The backend is simple enough that copying it into each\nvariant keeps every example r\n[…]\navior over real HTTP, replacing the old\nper-variant unit tests that drove the handlers directly without going\nthrough the network.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor petstore example (#2277)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-22T20:57:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "af93f9e201ee2ad9c7c800f10466334dc61e0906",
          "body": "I will be thanking Greptile for allowing their tool use in the next\nrelease notes.",
          "is_bot": false,
          "headline": "Add Greptile logo to local logo cache (#2425)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-22T17:33:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bb192a23ed46e3d5984047f17e50a6c4e59aa9de",
          "body": "A schema that combines `type: array` with an `enum` is malformed: the\nenum members are scalars, not arrays, so no array value could ever\nsatisfy the constraint. In the wild this shows up as the item enum being\ncopied onto the array (e.g. Jellyfin's `TranscodingInfo.TranscodeReasons`\nin issue #2176).\n[…]\nplain `[]ItemType`.\nThe meaningful enum lives on the item schema, which still gets its own\nconstants. No existing fixtures change.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Don't emit enum constants for array-typed schemas (#2424)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-21T05:06:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2ec2dc6d0379e0fb15f0dbbd4b6aff3a5c572732",
          "body": "Closes: #2422\n\nWhen a base spec references a response defined in an external file directly\n(`$ref: 'spec-ext.yaml#/components/responses/Outcome'`, not via a path item)\nand that response is renamed in the external package via `x-go-name`, the\ngenerated `client-with-responses` wrapper pointed at the r\n[…]\ng the external document, and affects all\nexternal refs equally.\n\nA regression test is added under internal/test/issues/issue-2422.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: honour external package's Go name for direct response refs (#2423)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-21T04:40:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5b7f23257e6513c2ed48d563df53f6fa25efd9cb",
          "body": "Closes: #2308\n\nWhen a path item is referenced from an external file (an OpenAPI 3.1\n`components.pathItems` entry referenced from `paths`), and its operation's\nresponse is in turn a `$ref` relative to that same external file\n(`#/components/responses/...`), the generated strict-server response struct\n\n[…]\noGoType, so those are left\nuntouched to avoid double-prefixing.\n\nA regression test is added under internal/test/issues/issue-2308.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: qualify response refs from externally-ref'd path items (#2421)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-21T04:25:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4fc9db2f0fc1d60c831709c37f632d2f568cb57b",
          "body": "Closes: #2389\n\nA response component exposing the same schema under multiple content types\n(e.g. application/json + application/xml) generated client wrapper fields\ntyped as undefined per-content-type names (*ErrorResponseApplicationJSON /\n*ErrorResponseApplicationXML), breaking compilation.\n\nThe typ\n[…]\ntype. The now-unused isMediaTypeSupported helper is removed, and a regression\ntest is added under internal/test/issues/issue-2389.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Unify emitter/consumer mediatype filter (#2420)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-21T01:28:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2ed9ad814b45953cfe312dfe3b36823982bd4d28",
          "body": "* fix(codegen): use reflect.DeepEqual for ExclusiveMin/Max in MergeSchemas\n\nkin-openapi's 3.1 work changed Schema.ExclusiveMin/Max from bool to\nExclusiveBound{Bool *bool; Value *float64}. Direct struct equality (!=)\nstill compiles but compares pointer addresses, not the wrapped values, so\ntwo schema\n[…]\nthe dedicated TestContentEncodingBase64...\n    test.\n\nCloses Greptile P1 review comment on pkg/codegen/schema.go:1149+.\n\n---------\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Initial OpenAPI 3.1 support based on kin-openapi (#2336)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-20T16:42:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7de8635d081e5a2b3b6b85a4663b71c46f2bc456",
          "body": "Closes: #2403\n\nPicks up oapi-codegen/runtime#134, which restores the missing required\nparameter check for struct-typed query params (e.g. types.Date). Updates\ngithub.com/oapi-codegen/runtime from v1.4.1 to v1.4.2 in the internal/test\nand examples modules.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Bump runtime to v1.4.2 (#2419)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-20T06:20:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b93bf8cfaedb21491e34a7c76c1f00082d86d0a4",
          "body": "* fix: use raw enum values for cross-enum conflict detection\n\nGetValues() returns prefixed identifier names for enums already marked\nas conflicting. Using it in the cross-enum comparison loop makes the\nresult order-dependent: an enum that was prefixed in an earlier iteration\nproduces keys like FooSt\n[…]\nuthored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Marcin Romaszewicz <marcinr@gmail.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: use raw enum values for cross-enum conflict detection (#2390)",
          "author_name": "Natalie Perret",
          "author_login": "natalie-o-perret",
          "committed_at": "2026-06-20T05:45:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c1d48f76ab2a6644a92c331acb209b83ea3992da",
          "body": "* Add optional type generation for inline schemas\n\nAdds output-options.generate-types-for-anonymous-schemas (default false).\nWhen set, every inline schema that would otherwise generate as an\nanonymous Go struct is instead emitted as a named type with a path-\nderived name (e.g. GetRolesId200JSONRespo\n[…]\nd output is byte-identical.\n\nNo new fixtures or behavioral changes; this commit is intended to be\nsquashed with the parent `Add optional type generation for inline\nschemas` commit before the PR lands.",
          "is_bot": false,
          "headline": "Add optional type generation for inline schemas (#2366)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-20T02:28:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "77fcbaa9d108ae6b099ef92e707f65e3cc843276",
          "body": "…(go.mod)",
          "is_bot": true,
          "headline": "fix(deps): update module github.com/speakeasy-api/openapi to v1.23.1 …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-06-19T07:08:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8a112aebe01a3cbaa83350e2d4bf61224ac658d",
          "body": null,
          "is_bot": true,
          "headline": "chore(deps): update actions/checkout action to v7 (.github/workflows)",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-06-18T21:03:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2bf15250d004bd355926ea4572493f561af6132f",
          "body": "Instead of a `.9` release, which doesn't need to be required for our\nuse-cases, we can keep it at the minimum setting to reduce unnecessary\nGo version bumps across our users.",
          "is_bot": false,
          "headline": "chore: downgrade Go requirement to 1.25.0 (#2413)",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-18T12:56:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0706878df6066e80eb8f41ed015c79bf3fb6756c",
          "body": "Without this change, we'll generate i.e.\n\n    ApplicationvndApiJSON422 *CreateItem422ApplicationvndApiJSONResponseBody\n\nInstead of\n\n    ApplicationvndApiJSON422 *CreateItem422ApplicationVndAPIPlusJSONResponseBody\n\nAs the type doesn't exist, this introduces a compilation error.\n\nWe can instead make sure we're consistently generating the media type\nname.\n\nCo-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@rootly.com>",
          "is_bot": false,
          "headline": "fix: correctly generate consistent media type for type aliases",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-18T07:48:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0c967b38e81e0242199bd0ba29075d6ddbb4a62",
          "body": "In the case that we have type aliases that are deprecated (because the\ntype they're pointing to, are also deprecated), we were previously not\nmarking the type alias as deprecated, too.\n\nCo-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@rootly.com>",
          "is_bot": false,
          "headline": "fix: propagate `deprecated` across type aliases",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T18:56:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b76dea4cb0096e15e9cfa028282118476a51ded1",
          "body": "Previously, we would miss rendering a deprecation notice in Godoc for\nAPI types, fields and HTTP routes in our generated client, which makes\nit harder for users to be aware of deprecated functionality they're\nrelying upon.\n\nWe can make sure to introduce `DeprecationComment` functions where\nnecessary, and call it when rendering templates.\n\nCo-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@rootly.com>",
          "is_bot": false,
          "headline": "fix: correctly set deprecated Godoc where necessary",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T18:56:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6ef2c2817af59d5b218d96a531ae35c193f3c0f",
          "body": "As part of future changes, we'll be improving how `oapi-codegen`\ngenerates deprecation notices through godoc.\n\nBefore we do this, we can introduce a more in-depth test case for the\ndifferent areas that can be marked as deprecated, so we can validate the\nfunctionality.\n\nWith help from\n\nAs a starting \n[…]\nTP client and server\n- Add Strict Server functionality\n- Deprecate a parameter\n- Generate a deprecation on `components/response`\n\nCo-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@rootly.com>",
          "is_bot": false,
          "headline": "test: add an in-depth test for `deprecated: true`",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T18:56:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "13b9c9aabfb1e0e8af4ab0e351c7da4ef02e8e00",
          "body": null,
          "is_bot": false,
          "headline": "chore(client): remove unnecessary `(Body)` suffix",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T09:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41f5de98910545cb076116833ed68b5b3804eb91",
          "body": "To make it easier for folks to work with the generated code we produce\nfor API clients, we should make a few tweaks to improve the output:\n\n- Provide a better default Godoc if we don't have a `summary`\n- Ensure the `ClientInterface` and `ClientWithResponsesInterface`\n  include Godoc, too\n- Generate \n[…]\nto simplify the rendering in Go,\nrather than introducing complex templating.\n\nWith help from Claude Sonnet to add test coverage.\n\nCo-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@rootly.com>",
          "is_bot": false,
          "headline": "feat(client): generate more useful Godoc for client functions",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T09:14:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b71bffa0bc64dd4c2767509c4c181a96e9f881e8",
          "body": "To align with the comment on the helper function, if enabled, too.",
          "is_bot": false,
          "headline": "feat(client): add Godoc to response body struct",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T09:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81287d8c399ff40997dd9acb01bbe224434b6ca7",
          "body": "As a follow-up from c5641fd52f0d95a95f2def767753b584b83977e4, we can\nimprove this wording, so it's a little clearer.\n\nThis makes it a little clearer what this getter is doing - returning\nthe response body for a given HTTP response and media type - rather than\nreiterating what type is returned.",
          "is_bot": false,
          "headline": "chore(client): improve Godoc wording for response body extraction",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T09:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f333fc1efbe55c116d69932e0495c2fec4c65389",
          "body": "To make sure that the comments show up as Godoc for IDEs, the convention\nis that the first word of the comment should be the function name.\n\nWith help from Claude Sonnet to add test coverage, and ensure that no\nstray whitespace can be injected.\n\nCo-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@rootly.com>",
          "is_bot": false,
          "headline": "fix(templates): ensure that `SummaryAsComment` is Godoc-style",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T09:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cec4e6c74d84e28d987211c634ce5c7feb9b7506",
          "body": null,
          "is_bot": false,
          "headline": "chore(client): note that the content type is also specified",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T09:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b089103c0fbfe64f14f83ad387d45afe447b46d2",
          "body": null,
          "is_bot": false,
          "headline": "chore(client): remove duplicated whitespace for `RequestEditorFn`",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T09:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a7620e48e962dfeca8f0446b5df0de0f988c4bf3",
          "body": null,
          "is_bot": false,
          "headline": "style: ensure `gofmt` is run on operations.go",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-17T09:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a4debfeb0fe9938d5eaf86a5de62291d90ba24c",
          "body": "…v2.7.1 (readme.md)",
          "is_bot": true,
          "headline": "docs(deps): update module github.com/oapi-codegen/oapi-codegen/v2 to …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-06-06T21:22:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bfe9fa3aa2b1ecfaea23d2960f48e02c596c433c",
          "body": "We're seeing intermittent issues from the Petstore project such as:\n\n    error loading swagger spec in spec.yaml\n    : failed to load OpenAPI specification: error resolving reference\n    \"https://petstore3.swagger.io/api/v3/openapi.json#/components/schemas/Pet\":\n    error loading \"https://petstore3.\n[…]\neturned status code 403\n\nWe can try and switch to the raw spec in GitHub to do this lookup, to\navoid hitting the Petstore API.\n\nIt's unclear if GitHub are going to be more performant, but it may help.",
          "is_bot": false,
          "headline": "test: use Petstore spec from GitHub",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-06-06T20:09:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a63186ffe57364ae0a09eaa7511f92c647908351",
          "body": "Tighten how server URL values are emitted in the server-urls template so\nthat spec-supplied text is always serialized into a proper Go context:\n\n- Route server descriptions and URLs through stripNewLines when they are\n  written into generated // comments, so a multi-line value stays on the\n  comment\n[…]\nests covering the server-urls rendering and the\nStringToGoString escaping, and confirm `make generate` produces no\nchanges to committed output.\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Improve string escaping and add tests (#2396)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-06-05T14:21:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c32c9d9eb4f52724d2333cbe8f0d8ed89f02f1af",
          "body": "…o.mod) (#2395)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "fix(deps): update module github.com/getkin/kin-openapi to v0.140.0 (g…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-06-03T14:50:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e1b2a251bc24450a5766af9d648e6601436e5aa",
          "body": "…orkflows)",
          "is_bot": true,
          "headline": "chore(deps): update dessant/label-actions action to v5.0.3 (.github/w…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-06-01T17:14:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5e17e9eb858e6b9461eef9400f115f7fa29d75e",
          "body": "…o.mod)",
          "is_bot": true,
          "headline": "fix(deps): update module github.com/getkin/kin-openapi to v0.139.0 (g…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-05-25T11:27:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5641fd52f0d95a95f2def767753b584b83977e4",
          "body": "* added Getter functions for response bodies\n\n* add configuration option to skip response body getter generation\n\n* Update config schema, regenerate everything\n\n- Add `skip-response-body-getters` to `configuration-schema.json` under\n  `output-options` so schema-based config validation accepts the ne\n[…]\n. The tests\n  instantiate the generated response type and use reflection to assert\n  the getters are present or absent as configured.\n\n---------\n\nCo-authored-by: Marcin Romaszewicz <marcinr@gmail.com>",
          "is_bot": false,
          "headline": "Add functions to response models for schema-extraction  (#2379)",
          "author_name": "Andreas Tollkötter",
          "author_login": "rd-andreas-tollkoetter",
          "committed_at": "2026-05-19T16:54:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "28b47cafa3b89e08d4df203aebbfdb5d955da15a",
          "body": "When I updated to Go 1.25 and un-moduled the echo-v5 code, I left behind\nthe special-cased test for echo-v5 which existed due to module boundaries.\nSince those modules don't exist anymore, we can remove the special casing.\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Echo V5 now uses the generic test framework (#2382)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-05-19T16:21:38Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8c4029a30e20b52c6494de13422fd0f0c2d896f1",
          "body": "Closes #2378\n\nSince we test nearly everything in ASCII, we missed some failures in\nruntime around marshaling parameters. Extend the deepObject test\nto catch issues if they resurface.\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Extend deepObject testing to include unicode (#2381)",
          "author_name": "Marcin Romaszewicz",
          "author_login": "mromaszewicz",
          "committed_at": "2026-05-19T16:00:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "84bfb1b48778af039f9bfbd80774a1c09028ff2c",
          "body": "…orkflows)",
          "is_bot": true,
          "headline": "chore(deps): update dessant/label-actions action to v5.0.2 (.github/w…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-05-17T20:31:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4ab4d91e0e0e62e94e31ca79d99293e2c83d130",
          "body": null,
          "is_bot": true,
          "headline": "fix(deps): update module golang.org/x/text to v0.37.0 (go.mod)",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-05-17T14:28:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df17a79a4c3baded13c218a860375b39c8a40976",
          "body": "…(.github/workflows)",
          "is_bot": true,
          "headline": "chore(deps): update release-drafter/release-drafter action to v7.3.0 …",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-05-17T14:27:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75ecc2c8f1ec3c5b4eaf5cbb07152832b247c030",
          "body": "….2 (makefile)",
          "is_bot": true,
          "headline": "chore(deps): update module github.com/golangci/golangci-lint to v2.12…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-05-17T14:25:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6c3f920e0f3a4760a5f15913fba3cb33cd23459",
          "body": "Via [0], otherwise downloads fails with:\n\n```\ngolangci/golangci-lint err hash_sha256_verify checksum for\n    '/tmp/.../golangci-lint-2.12.2-linux-amd64.tar.gz' did not verify\n\n```\n\n[0]: https://redirect.github.com/golangci/golangci-lint/issues/6572#issuecomment-4400895705",
          "is_bot": false,
          "headline": "lint: migrate to `golangci-lint`'s install script on `main`",
          "author_name": "Jamie Tanna",
          "author_login": "jamietanna",
          "committed_at": "2026-05-17T14:22:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31185d09c65b8291cf4412a54fcb7cc04f5647db",
          "body": "…orkflows)",
          "is_bot": true,
          "headline": "chore(deps): update github/codeql-action action to v4.35.5 (.github/w…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-05-17T14:09:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3df18d451c3bb9175f2c59c25b7be9b686426320",
          "body": "…ows)",
          "is_bot": true,
          "headline": "chore(deps): update actions/setup-go action to v6.4.0 (.github/workfl…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-05-17T14:08:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2fd3d0d0dbaf4fcb9be6312401d1cab4a50c6522",
          "body": "…/workflows)",
          "is_bot": true,
          "headline": "chore(deps): update actions/upload-artifact action to v7.0.1 (.github…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2026-05-17T14:08:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 87,
      "commits_last_year": 260,
      "latest_release_at": "2026-07-17T14:11:21Z",
      "latest_release_tag": "v2.8.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 32,
      "days_since_latest_release": 4,
      "mean_days_between_releases": 85.6
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/oapi-codegen/oapi-codegen/v2",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/oapi-codegen/oapi-codegen/v2",
          "is_deprecated": false,
          "latest_version": "v2.8.0",
          "repository_url": "https://github.com/oapi-codegen/oapi-codegen",
          "versions_count": 13,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T14:01:16Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        }
      ]
    },
    "popularity": {
      "forks": 1049,
      "stars": 8472,
      "watchers": 41,
      "fork_history": {
        "days": [
          {
            "date": "2019-05-07",
            "count": 1
          },
          {
            "date": "2019-05-09",
            "count": 1
          },
          {
            "date": "2019-05-13",
            "count": 1
          },
          {
            "date": "2019-05-20",
            "count": 1
          },
          {
            "date": "2019-05-27",
            "count": 1
          },
          {
            "date": "2019-06-02",
            "count": 1
          },
          {
            "date": "2019-06-20",
            "count": 1
          },
          {
            "date": "2019-06-24",
            "count": 1
          },
          {
            "date": "2019-07-02",
            "count": 1
          },
          {
            "date": "2019-07-10",
            "count": 1
          },
          {
            "date": "2019-07-26",
            "count": 1
          },
          {
            "date": "2019-08-02",
            "count": 1
          },
          {
            "date": "2019-08-07",
            "count": 1
          },
          {
            "date": "2019-08-11",
            "count": 1
          },
          {
            "date": "2019-08-13",
            "count": 1
          },
          {
            "date": "2019-08-16",
            "count": 1
          },
          {
            "date": "2019-08-20",
            "count": 1
          },
          {
            "date": "2019-09-10",
            "count": 2
          },
          {
            "date": "2019-09-17",
            "count": 1
          },
          {
            "date": "2019-09-19",
            "count": 1
          },
          {
            "date": "2019-09-20",
            "count": 1
          },
          {
            "date": "2019-09-21",
            "count": 1
          },
          {
            "date": "2019-09-24",
            "count": 1
          },
          {
            "date": "2019-10-06",
            "count": 1
          },
          {
            "date": "2019-10-10",
            "count": 2
          },
          {
            "date": "2019-10-18",
            "count": 1
          },
          {
            "date": "2019-11-13",
            "count": 1
          },
          {
            "date": "2019-11-14",
            "count": 1
          },
          {
            "date": "2019-12-06",
            "count": 1
          },
          {
            "date": "2019-12-11",
            "count": 1
          },
          {
            "date": "2019-12-13",
            "count": 1
          },
          {
            "date": "2019-12-17",
            "count": 1
          },
          {
            "date": "2019-12-19",
            "count": 1
          },
          {
            "date": "2019-12-20",
            "count": 1
          },
          {
            "date": "2020-01-02",
            "count": 2
          },
          {
            "date": "2020-01-06",
            "count": 1
          },
          {
            "date": "2020-01-14",
            "count": 1
          },
          {
            "date": "2020-01-17",
            "count": 1
          },
          {
            "date": "2020-01-24",
            "count": 1
          },
          {
            "date": "2020-01-26",
            "count": 1
          },
          {
            "date": "2020-02-10",
            "count": 1
          },
          {
            "date": "2020-02-11",
            "count": 1
          },
          {
            "date": "2020-02-18",
            "count": 1
          },
          {
            "date": "2020-02-25",
            "count": 1
          },
          {
            "date": "2020-02-27",
            "count": 2
          },
          {
            "date": "2020-03-13",
            "count": 1
          },
          {
            "date": "2020-03-15",
            "count": 1
          },
          {
            "date": "2020-03-17",
            "count": 1
          },
          {
            "date": "2020-03-19",
            "count": 1
          },
          {
            "date": "2020-03-24",
            "count": 1
          },
          {
            "date": "2020-04-01",
            "count": 1
          },
          {
            "date": "2020-04-02",
            "count": 1
          },
          {
            "date": "2020-04-06",
            "count": 2
          },
          {
            "date": "2020-04-07",
            "count": 1
          },
          {
            "date": "2020-04-08",
            "count": 1
          },
          {
            "date": "2020-04-15",
            "count": 1
          },
          {
            "date": "2020-04-22",
            "count": 1
          },
          {
            "date": "2020-04-26",
            "count": 3
          },
          {
            "date": "2020-04-29",
            "count": 1
          },
          {
            "date": "2020-04-30",
            "count": 2
          },
          {
            "date": "2020-05-14",
            "count": 1
          },
          {
            "date": "2020-05-28",
            "count": 1
          },
          {
            "date": "2020-06-06",
            "count": 1
          },
          {
            "date": "2020-06-09",
            "count": 1
          },
          {
            "date": "2020-06-13",
            "count": 1
          },
          {
            "date": "2020-06-14",
            "count": 1
          },
          {
            "date": "2020-06-15",
            "count": 1
          },
          {
            "date": "2020-06-16",
            "count": 1
          },
          {
            "date": "2020-06-18",
            "count": 1
          },
          {
            "date": "2020-06-23",
            "count": 1
          },
          {
            "date": "2020-06-26",
            "count": 1
          },
          {
            "date": "2020-06-27",
            "count": 1
          },
          {
            "date": "2020-07-07",
            "count": 2
          },
          {
            "date": "2020-07-20",
            "count": 1
          },
          {
            "date": "2020-07-23",
            "count": 1
          },
          {
            "date": "2020-07-29",
            "count": 1
          },
          {
            "date": "2020-07-30",
            "count": 1
          },
          {
            "date": "2020-08-03",
            "count": 1
          },
          {
            "date": "2020-08-13",
            "count": 1
          },
          {
            "date": "2020-08-18",
            "count": 1
          },
          {
            "date": "2020-08-19",
            "count": 1
          },
          {
            "date": "2020-08-24",
            "count": 2
          },
          {
            "date": "2020-09-10",
            "count": 1
          },
          {
            "date": "2020-09-14",
            "count": 1
          },
          {
            "date": "2020-09-16",
            "count": 1
          },
          {
            "date": "2020-10-01",
            "count": 1
          },
          {
            "date": "2020-10-06",
            "count": 1
          },
          {
            "date": "2020-10-10",
            "count": 1
          },
          {
            "date": "2020-10-18",
            "count": 1
          },
          {
            "date": "2020-10-23",
            "count": 2
          },
          {
            "date": "2020-10-30",
            "count": 1
          },
          {
            "date": "2020-11-02",
            "count": 1
          },
          {
            "date": "2020-11-05",
            "count": 1
          },
          {
            "date": "2020-11-19",
            "count": 1
          },
          {
            "date": "2020-11-20",
            "count": 1
          },
          {
            "date": "2020-11-25",
            "count": 1
          },
          {
            "date": "2020-12-03",
            "count": 1
          },
          {
            "date": "2020-12-05",
            "count": 1
          },
          {
            "date": "2020-12-08",
            "count": 1
          },
          {
            "date": "2020-12-10",
            "count": 1
          },
          {
            "date": "2020-12-16",
            "count": 1
          },
          {
            "date": "2020-12-23",
            "count": 1
          },
          {
            "date": "2021-01-03",
            "count": 1
          },
          {
            "date": "2021-01-06",
            "count": 3
          },
          {
            "date": "2021-01-11",
            "count": 1
          },
          {
            "date": "2021-01-16",
            "count": 1
          },
          {
            "date": "2021-01-17",
            "count": 1
          },
          {
            "date": "2021-01-21",
            "count": 1
          },
          {
            "date": "2021-01-25",
            "count": 1
          },
          {
            "date": "2021-01-30",
            "count": 1
          },
          {
            "date": "2021-02-02",
            "count": 2
          },
          {
            "date": "2021-02-03",
            "count": 1
          },
          {
            "date": "2021-02-04",
            "count": 3
          },
          {
            "date": "2021-02-06",
            "count": 1
          },
          {
            "date": "2021-02-08",
            "count": 1
          },
          {
            "date": "2021-02-14",
            "count": 1
          },
          {
            "date": "2021-02-25",
            "count": 1
          },
          {
            "date": "2021-02-26",
            "count": 1
          },
          {
            "date": "2021-02-28",
            "count": 1
          },
          {
            "date": "2021-03-02",
            "count": 2
          },
          {
            "date": "2021-03-05",
            "count": 2
          },
          {
            "date": "2021-03-07",
            "count": 1
          },
          {
            "date": "2021-03-08",
            "count": 1
          },
          {
            "date": "2021-03-12",
            "count": 1
          },
          {
            "date": "2021-03-20",
            "count": 1
          },
          {
            "date": "2021-03-22",
            "count": 2
          },
          {
            "date": "2021-03-24",
            "count": 2
          },
          {
            "date": "2021-03-25",
            "count": 1
          },
          {
            "date": "2021-03-26",
            "count": 1
          },
          {
            "date": "2021-03-31",
            "count": 1
          },
          {
            "date": "2021-04-01",
            "count": 1
          },
          {
            "date": "2021-04-04",
            "count": 1
          },
          {
            "date": "2021-04-14",
            "count": 1
          },
          {
            "date": "2021-04-17",
            "count": 1
          },
          {
            "date": "2021-04-23",
            "count": 1
          },
          {
            "date": "2021-04-27",
            "count": 1
          },
          {
            "date": "2021-04-30",
            "count": 1
          },
          {
            "date": "2021-05-02",
            "count": 1
          },
          {
            "date": "2021-05-08",
            "count": 1
          },
          {
            "date": "2021-05-11",
            "count": 1
          },
          {
            "date": "2021-05-13",
            "count": 1
          },
          {
            "date": "2021-05-17",
            "count": 1
          },
          {
            "date": "2021-05-19",
            "count": 1
          },
          {
            "date": "2021-05-26",
            "count": 1
          },
          {
            "date": "2021-05-31",
            "count": 1
          },
          {
            "date": "2021-06-05",
            "count": 1
          },
          {
            "date": "2021-06-06",
            "count": 1
          },
          {
            "date": "2021-06-08",
            "count": 2
          },
          {
            "date": "2021-06-15",
            "count": 1
          },
          {
            "date": "2021-06-17",
            "count": 1
          },
          {
            "date": "2021-06-18",
            "count": 1
          },
          {
            "date": "2021-06-22",
            "count": 1
          },
          {
            "date": "2021-06-24",
            "count": 2
          },
          {
            "date": "2021-06-28",
            "count": 1
          },
          {
            "date": "2021-06-29",
            "count": 2
          },
          {
            "date": "2021-07-01",
            "count": 1
          },
          {
            "date": "2021-07-02",
            "count": 2
          },
          {
            "date": "2021-07-14",
            "count": 1
          },
          {
            "date": "2021-07-18",
            "count": 1
          },
          {
            "date": "2021-07-21",
            "count": 1
          },
          {
            "date": "2021-07-23",
            "count": 1
          },
          {
            "date": "2021-08-01",
            "count": 1
          },
          {
            "date": "2021-08-03",
            "count": 1
          },
          {
            "date": "2021-08-06",
            "count": 1
          },
          {
            "date": "2021-08-12",
            "count": 3
          },
          {
            "date": "2021-08-13",
            "count": 1
          },
          {
            "date": "2021-08-15",
            "count": 1
          },
          {
            "date": "2021-08-17",
            "count": 1
          },
          {
            "date": "2021-08-22",
            "count": 1
          },
          {
            "date": "2021-08-23",
            "count": 1
          },
          {
            "date": "2021-08-24",
            "count": 1
          },
          {
            "date": "2021-08-25",
            "count": 2
          },
          {
            "date": "2021-08-27",
            "count": 1
          },
          {
            "date": "2021-08-29",
            "count": 1
          },
          {
            "date": "2021-08-30",
            "count": 1
          },
          {
            "date": "2021-09-01",
            "count": 1
          },
          {
            "date": "2021-09-07",
            "count": 1
          },
          {
            "date": "2021-09-09",
            "count": 1
          },
          {
            "date": "2021-09-10",
            "count": 2
          },
          {
            "date": "2021-09-11",
            "count": 1
          },
          {
            "date": "2021-09-14",
            "count": 1
          },
          {
            "date": "2021-09-17",
            "count": 1
          },
          {
            "date": "2021-09-21",
            "count": 1
          },
          {
            "date": "2021-09-22",
            "count": 1
          },
          {
            "date": "2021-10-06",
            "count": 2
          },
          {
            "date": "2021-10-08",
            "count": 1
          },
          {
            "date": "2021-10-10",
            "count": 1
          },
          {
            "date": "2021-10-14",
            "count": 1
          },
          {
            "date": "2021-10-17",
            "count": 1
          },
          {
            "date": "2021-10-22",
            "count": 1
          },
          {
            "date": "2021-10-24",
            "count": 1
          },
          {
            "date": "2021-10-26",
            "count": 1
          },
          {
            "date": "2021-10-30",
            "count": 1
          },
          {
            "date": "2021-11-02",
            "count": 1
          },
          {
            "date": "2021-11-09",
            "count": 1
          },
          {
            "date": "2021-11-11",
            "count": 2
          },
          {
            "date": "2021-11-12",
            "count": 1
          },
          {
            "date": "2021-11-16",
            "count": 2
          },
          {
            "date": "2021-11-19",
            "count": 1
          },
          {
            "date": "2021-11-21",
            "count": 1
          },
          {
            "date": "2021-11-22",
            "count": 1
          },
          {
            "date": "2021-11-23",
            "count": 1
          },
          {
            "date": "2021-11-24",
            "count": 1
          },
          {
            "date": "2021-11-25",
            "count": 1
          },
          {
            "date": "2021-11-27",
            "count": 1
          },
          {
            "date": "2021-11-30",
            "count": 1
          },
          {
            "date": "2021-12-02",
            "count": 1
          },
          {
            "date": "2021-12-03",
            "count": 1
          },
          {
            "date": "2021-12-06",
            "count": 1
          },
          {
            "date": "2021-12-08",
            "count": 1
          },
          {
            "date": "2021-12-16",
            "count": 1
          },
          {
            "date": "2021-12-23",
            "count": 1
          },
          {
            "date": "2021-12-24",
            "count": 1
          },
          {
            "date": "2021-12-27",
            "count": 1
          },
          {
            "date": "2021-12-29",
            "count": 1
          },
          {
            "date": "2022-01-04",
            "count": 1
          },
          {
            "date": "2022-01-05",
            "count": 3
          },
          {
            "date": "2022-01-07",
            "count": 1
          },
          {
            "date": "2022-01-08",
            "count": 1
          },
          {
            "date": "2022-01-10",
            "count": 1
          },
          {
            "date": "2022-01-12",
            "count": 1
          },
          {
            "date": "2022-01-15",
            "count": 1
          },
          {
            "date": "2022-01-17",
            "count": 1
          },
          {
            "date": "2022-01-31",
            "count": 2
          },
          {
            "date": "2022-02-02",
            "count": 1
          },
          {
            "date": "2022-02-04",
            "count": 3
          },
          {
            "date": "2022-02-10",
            "count": 1
          },
          {
            "date": "2022-02-11",
            "count": 1
          },
          {
            "date": "2022-02-12",
            "count": 1
          },
          {
            "date": "2022-02-14",
            "count": 1
          },
          {
            "date": "2022-02-21",
            "count": 2
          },
          {
            "date": "2022-02-22",
            "count": 2
          },
          {
            "date": "2022-02-23",
            "count": 1
          },
          {
            "date": "2022-02-25",
            "count": 1
          },
          {
            "date": "2022-03-02",
            "count": 2
          },
          {
            "date": "2022-03-03",
            "count": 1
          },
          {
            "date": "2022-03-10",
            "count": 1
          },
          {
            "date": "2022-03-14",
            "count": 2
          },
          {
            "date": "2022-03-17",
            "count": 1
          },
          {
            "date": "2022-03-23",
            "count": 2
          },
          {
            "date": "2022-03-31",
            "count": 1
          },
          {
            "date": "2022-04-04",
            "count": 2
          },
          {
            "date": "2022-04-05",
            "count": 2
          },
          {
            "date": "2022-04-06",
            "count": 2
          },
          {
            "date": "2022-04-07",
            "count": 2
          },
          {
            "date": "2022-04-12",
            "count": 1
          },
          {
            "date": "2022-04-13",
            "count": 2
          },
          {
            "date": "2022-04-15",
            "count": 1
          },
          {
            "date": "2022-04-16",
            "count": 1
          },
          {
            "date": "2022-04-19",
            "count": 3
          },
          {
            "date": "2022-04-20",
            "count": 1
          },
          {
            "date": "2022-04-21",
            "count": 1
          },
          {
            "date": "2022-04-23",
            "count": 1
          },
          {
            "date": "2022-04-24",
            "count": 1
          },
          {
            "date": "2022-04-25",
            "count": 2
          },
          {
            "date": "2022-04-26",
            "count": 2
          },
          {
            "date": "2022-04-27",
            "count": 1
          },
          {
            "date": "2022-05-02",
            "count": 1
          },
          {
            "date": "2022-05-03",
            "count": 1
          },
          {
            "date": "2022-05-04",
            "count": 1
          },
          {
            "date": "2022-05-06",
            "count": 2
          },
          {
            "date": "2022-05-10",
            "count": 1
          },
          {
            "date": "2022-05-12",
            "count": 1
          },
          {
            "date": "2022-05-17",
            "count": 2
          },
          {
            "date": "2022-05-19",
            "count": 1
          },
          {
            "date": "2022-05-20",
            "count": 1
          },
          {
            "date": "2022-05-21",
            "count": 2
          },
          {
            "date": "2022-05-22",
            "count": 1
          },
          {
            "date": "2022-05-23",
            "count": 1
          },
          {
            "date": "2022-05-24",
            "count": 2
          },
          {
            "date": "2022-05-25",
            "count": 1
          },
          {
            "date": "2022-05-27",
            "count": 2
          },
          {
            "date": "2022-06-02",
            "count": 1
          },
          {
            "date": "2022-06-03",
            "count": 4
          },
          {
            "date": "2022-06-04",
            "count": 1
          },
          {
            "date": "2022-06-08",
            "count": 1
          },
          {
            "date": "2022-06-09",
            "count": 1
          },
          {
            "date": "2022-06-11",
            "count": 1
          },
          {
            "date": "2022-06-13",
            "count": 2
          },
          {
            "date": "2022-06-14",
            "count": 2
          },
          {
            "date": "2022-06-15",
            "count": 2
          },
          {
            "date": "2022-06-16",
            "count": 2
          },
          {
            "date": "2022-06-18",
            "count": 1
          },
          {
            "date": "2022-06-19",
            "count": 1
          },
          {
            "date": "2022-06-20",
            "count": 2
          },
          {
            "date": "2022-06-23",
            "count": 1
          },
          {
            "date": "2022-06-28",
            "count": 1
          },
          {
            "date": "2022-06-29",
            "count": 2
          },
          {
            "date": "2022-07-01",
            "count": 2
          },
          {
            "date": "2022-07-07",
            "count": 1
          },
          {
            "date": "2022-07-13",
            "count": 2
          },
          {
            "date": "2022-07-15",
            "count": 1
          },
          {
            "date": "2022-07-16",
            "count": 1
          },
          {
            "date": "2022-07-18",
            "count": 1
          },
          {
            "date": "2022-07-19",
            "count": 2
          },
          {
            "date": "2022-07-20",
            "count": 2
          },
          {
            "date": "2022-07-21",
            "count": 1
          },
          {
            "date": "2022-07-25",
            "count": 1
          },
          {
            "date": "2022-07-31",
            "count": 1
          },
          {
            "date": "2022-08-05",
            "count": 1
          },
          {
            "date": "2022-08-07",
            "count": 1
          },
          {
            "date": "2022-08-10",
            "count": 1
          },
          {
            "date": "2022-08-16",
            "count": 1
          },
          {
            "date": "2022-08-20",
            "count": 1
          },
          {
            "date": "2022-08-23",
            "count": 2
          },
          {
            "date": "2022-08-24",
            "count": 2
          },
          {
            "date": "2022-08-26",
            "count": 2
          },
          {
            "date": "2022-08-28",
            "count": 1
          },
          {
            "date": "2022-08-29",
            "count": 2
          },
          {
            "date": "2022-08-31",
            "count": 1
          },
          {
            "date": "2022-09-02",
            "count": 1
          },
          {
            "date": "2022-09-04",
            "count": 2
          },
          {
            "date": "2022-09-05",
            "count": 1
          },
          {
            "date": "2022-09-13",
            "count": 1
          },
          {
            "date": "2022-09-14",
            "count": 1
          },
          {
            "date": "2022-09-23",
            "count": 3
          },
          {
            "date": "2022-09-24",
            "count": 1
          },
          {
            "date": "2022-09-29",
            "count": 1
          },
          {
            "date": "2022-10-02",
            "count": 1
          },
          {
            "date": "2022-10-05",
            "count": 1
          },
          {
            "date": "2022-10-06",
            "count": 1
          },
          {
            "date": "2022-10-09",
            "count": 1
          },
          {
            "date": "2022-10-11",
            "count": 3
          },
          {
            "date": "2022-10-14",
            "count": 1
          },
          {
            "date": "2022-10-18",
            "count": 1
          },
          {
            "date": "2022-10-19",
            "count": 1
          },
          {
            "date": "2022-10-21",
            "count": 2
          },
          {
            "date": "2022-10-23",
            "count": 1
          },
          {
            "date": "2022-10-24",
            "count": 1
          },
          {
            "date": "2022-10-25",
            "count": 1
          },
          {
            "date": "2022-10-27",
            "count": 2
          },
          {
            "date": "2022-10-28",
            "count": 4
          },
          {
            "date": "2022-10-29",
            "count": 1
          },
          {
            "date": "2022-10-31",
            "count": 1
          },
          {
            "date": "2022-11-02",
            "count": 1
          },
          {
            "date": "2022-11-03",
            "count": 1
          },
          {
            "date": "2022-11-07",
            "count": 2
          },
          {
            "date": "2022-11-08",
            "count": 1
          },
          {
            "date": "2022-11-09",
            "count": 1
          },
          {
            "date": "2022-11-13",
            "count": 1
          },
          {
            "date": "2022-11-14",
            "count": 1
          },
          {
            "date": "2022-11-17",
            "count": 1
          },
          {
            "date": "2022-11-19",
            "count": 2
          },
          {
            "date": "2022-11-22",
            "count": 1
          },
          {
            "date": "2022-11-23",
            "count": 1
          },
          {
            "date": "2022-11-24",
            "count": 2
          },
          {
            "date": "2022-11-30",
            "count": 2
          },
          {
            "date": "2022-12-01",
            "count": 1
          },
          {
            "date": "2022-12-08",
            "count": 1
          },
          {
            "date": "2022-12-12",
            "count": 1
          },
          {
            "date": "2022-12-13",
            "count": 2
          },
          {
            "date": "2022-12-14",
            "count": 1
          },
          {
            "date": "2022-12-21",
            "count": 1
          },
          {
            "date": "2022-12-31",
            "count": 2
          },
          {
            "date": "2023-01-04",
            "count": 1
          },
          {
            "date": "2023-01-05",
            "count": 1
          },
          {
            "date": "2023-01-06",
            "count": 1
          },
          {
            "date": "2023-01-07",
            "count": 1
          },
          {
            "date": "2023-01-08",
            "count": 1
          },
          {
            "date": "2023-01-15",
            "count": 1
          },
          {
            "date": "2023-01-16",
            "count": 1
          },
          {
            "date": "2023-01-17",
            "count": 1
          },
          {
            "date": "2023-01-19",
            "count": 1
          },
          {
            "date": "2023-01-21",
            "count": 1
          },
          {
            "date": "2023-01-23",
            "count": 2
          },
          {
            "date": "2023-01-24",
            "count": 4
          },
          {
            "date": "2023-01-25",
            "count": 1
          },
          {
            "date": "2023-01-26",
            "count": 3
          },
          {
            "date": "2023-01-27",
            "count": 1
          },
          {
            "date": "2023-01-28",
            "count": 2
          },
          {
            "date": "2023-01-30",
            "count": 1
          },
          {
            "date": "2023-02-05",
            "count": 1
          },
          {
            "date": "2023-02-06",
            "count": 4
          },
          {
            "date": "2023-02-09",
            "count": 1
          },
          {
            "date": "2023-02-10",
            "count": 2
          },
          {
            "date": "2023-02-13",
            "count": 1
          },
          {
            "date": "2023-02-14",
            "count": 2
          },
          {
            "date": "2023-02-15",
            "count": 1
          },
          {
            "date": "2023-02-16",
            "count": 1
          },
          {
            "date": "2023-02-18",
            "count": 1
          },
          {
            "date": "2023-02-22",
            "count": 1
          },
          {
            "date": "2023-02-23",
            "count": 2
          },
          {
            "date": "2023-02-25",
            "count": 1
          },
          {
            "date": "2023-02-27",
            "count": 2
          },
          {
            "date": "2023-02-28",
            "count": 1
          },
          {
            "date": "2023-03-06",
            "count": 1
          },
          {
            "date": "2023-03-07",
            "count": 2
          },
          {
            "date": "2023-03-08",
            "count": 3
          },
          {
            "date": "2023-03-10",
            "count": 1
          },
          {
            "date": "2023-03-11",
            "count": 1
          },
          {
            "date": "2023-03-15",
            "count": 1
          },
          {
            "date": "2023-03-19",
            "count": 1
          },
          {
            "date": "2023-03-20",
            "count": 1
          },
          {
            "date": "2023-03-22",
            "count": 1
          },
          {
            "date": "2023-03-23",
            "count": 1
          },
          {
            "date": "2023-03-31",
            "count": 1
          },
          {
            "date": "2023-04-03",
            "count": 1
          },
          {
            "date": "2023-04-04",
            "count": 1
          },
          {
            "date": "2023-04-06",
            "count": 1
          },
          {
            "date": "2023-04-08",
            "count": 1
          },
          {
            "date": "2023-04-10",
            "count": 1
          },
          {
            "date": "2023-04-11",
            "count": 1
          },
          {
            "date": "2023-04-12",
            "count": 1
          },
          {
            "date": "2023-04-15",
            "count": 2
          },
          {
            "date": "2023-04-19",
            "count": 1
          },
          {
            "date": "2023-04-20",
            "count": 1
          },
          {
            "date": "2023-04-24",
            "count": 1
          },
          {
            "date": "2023-04-25",
            "count": 1
          },
          {
            "date": "2023-04-27",
            "count": 3
          },
          {
            "date": "2023-05-03",
            "count": 1
          },
          {
            "date": "2023-05-06",
            "count": 1
          },
          {
            "date": "2023-05-09",
            "count": 2
          },
          {
            "date": "2023-05-11",
            "count": 2
          },
          {
            "date": "2023-05-12",
            "count": 1
          },
          {
            "date": "2023-05-17",
            "count": 2
          },
          {
            "date": "2023-05-21",
            "count": 1
          },
          {
            "date": "2023-05-22",
            "count": 1
          },
          {
            "date": "2023-05-23",
            "count": 1
          },
          {
            "date": "2023-05-27",
            "count": 1
          },
          {
            "date": "2023-05-31",
            "count": 1
          },
          {
            "date": "2023-06-01",
            "count": 2
          },
          {
            "date": "2023-06-02",
            "count": 1
          },
          {
            "date": "2023-06-03",
            "count": 1
          },
          {
            "date": "2023-06-04",
            "count": 1
          },
          {
            "date": "2023-06-06",
            "count": 1
          },
          {
            "date": "2023-06-07",
            "count": 1
          },
          {
            "date": "2023-06-12",
            "count": 2
          },
          {
            "date": "2023-06-18",
            "count": 2
          },
          {
            "date": "2023-06-19",
            "count": 1
          },
          {
            "date": "2023-06-20",
            "count": 1
          },
          {
            "date": "2023-06-21",
            "count": 1
          },
          {
            "date": "2023-06-26",
            "count": 1
          },
          {
            "date": "2023-06-28",
            "count": 1
          },
          {
            "date": "2023-06-30",
            "count": 1
          },
          {
            "date": "2023-07-05",
            "count": 2
          },
          {
            "date": "2023-07-07",
            "count": 1
          },
          {
            "date": "2023-07-11",
            "count": 2
          },
          {
            "date": "2023-07-18",
            "count": 1
          },
          {
            "date": "2023-07-19",
            "count": 2
          },
          {
            "date": "2023-07-21",
            "count": 1
          },
          {
            "date": "2023-07-27",
            "count": 1
          },
          {
            "date": "2023-07-29",
            "count": 2
          },
          {
            "date": "2023-08-01",
            "count": 2
          },
          {
            "date": "2023-08-04",
            "count": 1
          },
          {
            "date": "2023-08-06",
            "count": 1
          },
          {
            "date": "2023-08-08",
            "count": 1
          },
          {
            "date": "2023-08-09",
            "count": 1
          },
          {
            "date": "2023-08-11",
            "count": 2
          },
          {
            "date": "2023-08-13",
            "count": 1
          },
          {
            "date": "2023-08-19",
            "count": 1
          },
          {
            "date": "2023-08-20",
            "count": 1
          },
          {
            "date": "2023-08-22",
            "count": 1
          },
          {
            "date": "2023-08-24",
            "count": 1
          },
          {
            "date": "2023-08-27",
            "count": 1
          },
          {
            "date": "2023-08-28",
            "count": 2
          },
          {
            "date": "2023-08-29",
            "count": 1
          },
          {
            "date": "2023-08-31",
            "count": 1
          },
          {
            "date": "2023-09-03",
            "count": 1
          },
          {
            "date": "2023-09-05",
            "count": 1
          },
          {
            "date": "2023-09-08",
            "count": 1
          },
          {
            "date": "2023-09-09",
            "count": 1
          },
          {
            "date": "2023-09-10",
            "count": 1
          },
          {
            "date": "2023-09-11",
            "count": 3
          },
          {
            "date": "2023-09-15",
            "count": 1
          },
          {
            "date": "2023-09-18",
            "count": 1
          },
          {
            "date": "2023-09-21",
            "count": 2
          },
          {
            "date": "2023-09-22",
            "count": 1
          },
          {
            "date": "2023-09-27",
            "count": 1
          },
          {
            "date": "2023-09-28",
            "count": 2
          },
          {
            "date": "2023-09-29",
            "count": 2
          },
          {
            "date": "2023-10-09",
            "count": 1
          },
          {
            "date": "2023-10-10",
            "count": 1
          },
          {
            "date": "2023-10-11",
            "count": 3
          },
          {
            "date": "2023-10-13",
            "count": 1
          },
          {
            "date": "2023-10-17",
            "count": 2
          },
          {
            "date": "2023-10-18",
            "count": 1
          },
          {
            "date": "2023-10-20",
            "count": 1
          },
          {
            "date": "2023-10-31",
            "count": 1
          },
          {
            "date": "2023-11-03",
            "count": 2
          },
          {
            "date": "2023-11-04",
            "count": 1
          },
          {
            "date": "2023-11-05",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 1
          },
          {
            "date": "2023-11-10",
            "count": 2
          },
          {
            "date": "2023-11-11",
            "count": 4
          },
          {
            "date": "2023-11-12",
            "count": 1
          },
          {
            "date": "2023-11-13",
            "count": 3
          },
          {
            "date": "2023-11-15",
            "count": 2
          },
          {
            "date": "2023-11-16",
            "count": 1
          },
          {
            "date": "2023-11-22",
            "count": 1
          },
          {
            "date": "2023-11-24",
            "count": 2
          },
          {
            "date": "2023-11-30",
            "count": 1
          },
          {
            "date": "2023-12-01",
            "count": 2
          },
          {
            "date": "2023-12-05",
            "count": 1
          },
          {
            "date": "2023-12-06",
            "count": 2
          },
          {
            "date": "2023-12-10",
            "count": 1
          },
          {
            "date": "2023-12-12",
            "count": 2
          },
          {
            "date": "2023-12-14",
            "count": 1
          },
          {
            "date": "2023-12-15",
            "count": 1
          },
          {
            "date": "2023-12-16",
            "count": 2
          },
          {
            "date": "2023-12-18",
            "count": 1
          },
          {
            "date": "2023-12-19",
            "count": 1
          },
          {
            "date": "2023-12-20",
            "count": 1
          },
          {
            "date": "2024-01-01",
            "count": 1
          },
          {
            "date": "2024-01-02",
            "count": 2
          },
          {
            "date": "2024-01-05",
            "count": 1
          },
          {
            "date": "2024-01-06",
            "count": 1
          },
          {
            "date": "2024-01-08",
            "count": 1
          },
          {
            "date": "2024-01-12",
            "count": 2
          },
          {
            "date": "2024-01-17",
            "count": 1
          },
          {
            "date": "2024-01-19",
            "count": 1
          },
          {
            "date": "2024-01-23",
            "count": 1
          },
          {
            "date": "2024-01-24",
            "count": 1
          },
          {
            "date": "2024-01-25",
            "count": 1
          },
          {
            "date": "2024-01-26",
            "count": 2
          },
          {
            "date": "2024-01-28",
            "count": 1
          },
          {
            "date": "2024-01-29",
            "count": 1
          },
          {
            "date": "2024-02-02",
            "count": 1
          },
          {
            "date": "2024-02-03",
            "count": 1
          },
          {
            "date": "2024-02-04",
            "count": 2
          },
          {
            "date": "2024-02-05",
            "count": 1
          },
          {
            "date": "2024-02-07",
            "count": 1
          },
          {
            "date": "2024-02-08",
            "count": 1
          },
          {
            "date": "2024-02-19",
            "count": 1
          },
          {
            "date": "2024-02-20",
            "count": 1
          },
          {
            "date": "2024-02-23",
            "count": 1
          },
          {
            "date": "2024-02-24",
            "count": 1
          },
          {
            "date": "2024-02-26",
            "count": 1
          },
          {
            "date": "2024-02-27",
            "count": 2
          },
          {
            "date": "2024-02-28",
            "count": 1
          },
          {
            "date": "2024-03-01",
            "count": 1
          },
          {
            "date": "2024-03-04",
            "count": 1
          },
          {
            "date": "2024-03-05",
            "count": 1
          },
          {
            "date": "2024-03-07",
            "count": 1
          },
          {
            "date": "2024-03-11",
            "count": 1
          },
          {
            "date": "2024-03-14",
            "count": 1
          },
          {
            "date": "2024-03-15",
            "count": 1
          },
          {
            "date": "2024-03-16",
            "count": 1
          },
          {
            "date": "2024-03-25",
            "count": 1
          },
          {
            "date": "2024-03-27",
            "count": 1
          },
          {
            "date": "2024-03-28",
            "count": 1
          },
          {
            "date": "2024-03-29",
            "count": 1
          },
          {
            "date": "2024-03-31",
            "count": 1
          },
          {
            "date": "2024-04-03",
            "count": 1
          },
          {
            "date": "2024-04-05",
            "count": 2
          },
          {
            "date": "2024-04-12",
            "count": 1
          },
          {
            "date": "2024-04-16",
            "count": 2
          },
          {
            "date": "2024-04-19",
            "count": 1
          },
          {
            "date": "2024-04-24",
            "count": 1
          },
          {
            "date": "2024-04-25",
            "count": 1
          },
          {
            "date": "2024-04-26",
            "count": 1
          },
          {
            "date": "2024-04-28",
            "count": 1
          },
          {
            "date": "2024-04-29",
            "count": 1
          },
          {
            "date": "2024-04-30",
            "count": 1
          },
          {
            "date": "2024-05-01",
            "count": 1
          },
          {
            "date": "2024-05-03",
            "count": 1
          },
          {
            "date": "2024-05-05",
            "count": 1
          },
          {
            "date": "2024-05-06",
            "count": 2
          },
          {
            "date": "2024-05-10",
            "count": 1
          },
          {
            "date": "2024-05-14",
            "count": 1
          },
          {
            "date": "2024-05-16",
            "count": 1
          },
          {
            "date": "2024-05-21",
            "count": 1
          },
          {
            "date": "2024-05-23",
            "count": 1
          },
          {
            "date": "2024-05-28",
            "count": 2
          },
          {
            "date": "2024-05-29",
            "count": 1
          },
          {
            "date": "2024-06-04",
            "count": 2
          },
          {
            "date": "2024-06-05",
            "count": 3
          },
          {
            "date": "2024-06-13",
            "count": 1
          },
          {
            "date": "2024-06-21",
            "count": 1
          },
          {
            "date": "2024-06-24",
            "count": 1
          },
          {
            "date": "2024-06-27",
            "count": 1
          },
          {
            "date": "2024-06-28",
            "count": 2
          },
          {
            "date": "2024-07-01",
            "count": 1
          },
          {
            "date": "2024-07-02",
            "count": 1
          },
          {
            "date": "2024-07-05",
            "count": 2
          },
          {
            "date": "2024-07-08",
            "count": 1
          },
          {
            "date": "2024-07-10",
            "count": 1
          },
          {
            "date": "2024-07-13",
            "count": 1
          },
          {
            "date": "2024-07-20",
            "count": 1
          },
          {
            "date": "2024-07-22",
            "count": 1
          },
          {
            "date": "2024-07-26",
            "count": 1
          },
          {
            "date": "2024-07-29",
            "count": 1
          },
          {
            "date": "2024-07-30",
            "count": 1
          },
          {
            "date": "2024-08-02",
            "count": 1
          },
          {
            "date": "2024-08-05",
            "count": 2
          },
          {
            "date": "2024-08-07",
            "count": 1
          },
          {
            "date": "2024-08-09",
            "count": 1
          },
          {
            "date": "2024-08-11",
            "count": 1
          },
          {
            "date": "2024-08-12",
            "count": 1
          },
          {
            "date": "2024-08-20",
            "count": 1
          },
          {
            "date": "2024-08-21",
            "count": 1
          },
          {
            "date": "2024-08-25",
            "count": 1
          },
          {
            "date": "2024-08-27",
            "count": 1
          },
          {
            "date": "2024-09-01",
            "count": 1
          },
          {
            "date": "2024-09-05",
            "count": 1
          },
          {
            "date": "2024-09-08",
            "count": 2
          },
          {
            "date": "2024-09-09",
            "count": 2
          },
          {
            "date": "2024-09-10",
            "count": 3
          },
          {
            "date": "2024-09-11",
            "count": 1
          },
          {
            "date": "2024-09-24",
            "count": 2
          },
          {
            "date": "2024-09-27",
            "count": 1
          },
          {
            "date": "2024-09-30",
            "count": 1
          },
          {
            "date": "2024-10-01",
            "count": 1
          },
          {
            "date": "2024-10-04",
            "count": 1
          },
          {
            "date": "2024-10-07",
            "count": 1
          },
          {
            "date": "2024-10-09",
            "count": 2
          },
          {
            "date": "2024-10-10",
            "count": 1
          },
          {
            "date": "2024-10-12",
            "count": 1
          },
          {
            "date": "2024-10-18",
            "count": 1
          },
          {
            "date": "2024-10-19",
            "count": 2
          },
          {
            "date": "2024-10-21",
            "count": 2
          },
          {
            "date": "2024-10-22",
            "count": 2
          },
          {
            "date": "2024-10-25",
            "count": 1
          },
          {
            "date": "2024-10-28",
            "count": 2
          },
          {
            "date": "2024-10-29",
            "count": 3
          },
          {
            "date": "2024-11-04",
            "count": 1
          },
          {
            "date": "2024-11-13",
            "count": 3
          },
          {
            "date": "2024-11-15",
            "count": 1
          },
          {
            "date": "2024-11-17",
            "count": 1
          },
          {
            "date": "2024-11-20",
            "count": 1
          },
          {
            "date": "2024-11-21",
            "count": 1
          },
          {
            "date": "2024-11-28",
            "count": 1
          },
          {
            "date": "2024-12-04",
            "count": 1
          },
          {
            "date": "2024-12-05",
            "count": 1
          },
          {
            "date": "2024-12-06",
            "count": 1
          },
          {
            "date": "2024-12-09",
            "count": 1
          },
          {
            "date": "2024-12-13",
            "count": 1
          },
          {
            "date": "2024-12-20",
            "count": 1
          },
          {
            "date": "2024-12-21",
            "count": 1
          },
          {
            "date": "2024-12-26",
            "count": 1
          },
          {
            "date": "2024-12-30",
            "count": 1
          },
          {
            "date": "2024-12-31",
            "count": 1
          },
          {
            "date": "2025-01-02",
            "count": 1
          },
          {
            "date": "2025-01-07",
            "count": 1
          },
          {
            "date": "2025-01-08",
            "count": 1
          },
          {
            "date": "2025-01-13",
            "count": 1
          },
          {
            "date": "2025-01-16",
            "count": 1
          },
          {
            "date": "2025-01-20",
            "count": 1
          },
          {
            "date": "2025-01-24",
            "count": 1
          },
          {
            "date": "2025-01-28",
            "count": 1
          },
          {
            "date": "2025-01-31",
            "count": 2
          },
          {
            "date": "2025-02-04",
            "count": 1
          },
          {
            "date": "2025-02-05",
            "count": 1
          },
          {
            "date": "2025-02-07",
            "count": 1
          },
          {
            "date": "2025-02-11",
            "count": 1
          },
          {
            "date": "2025-02-12",
            "count": 1
          },
          {
            "date": "2025-02-14",
            "count": 1
          },
          {
            "date": "2025-02-19",
            "count": 1
          },
          {
            "date": "2025-02-21",
            "count": 1
          },
          {
            "date": "2025-02-23",
            "count": 1
          },
          {
            "date": "2025-03-03",
            "count": 1
          },
          {
            "date": "2025-03-04",
            "count": 1
          },
          {
            "date": "2025-03-06",
            "count": 2
          },
          {
            "date": "2025-03-07",
            "count": 1
          },
          {
            "date": "2025-03-10",
            "count": 2
          },
          {
            "date": "2025-03-12",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 2
          },
          {
            "date": "2025-03-14",
            "count": 1
          },
          {
            "date": "2025-03-17",
            "count": 3
          },
          {
            "date": "2025-03-21",
            "count": 1
          },
          {
            "date": "2025-03-23",
            "count": 2
          },
          {
            "date": "2025-03-24",
            "count": 1
          },
          {
            "date": "2025-03-26",
            "count": 1
          },
          {
            "date": "2025-03-29",
            "count": 1
          },
          {
            "date": "2025-04-02",
            "count": 1
          },
          {
            "date": "2025-04-07",
            "count": 1
          },
          {
            "date": "2025-04-14",
            "count": 1
          },
          {
            "date": "2025-04-18",
            "count": 2
          },
          {
            "date": "2025-04-22",
            "count": 2
          },
          {
            "date": "2025-04-28",
            "count": 1
          },
          {
            "date": "2025-04-29",
            "count": 2
          },
          {
            "date": "2025-05-08",
            "count": 1
          },
          {
            "date": "2025-05-09",
            "count": 1
          },
          {
            "date": "2025-05-15",
            "count": 1
          },
          {
            "date": "2025-05-19",
            "count": 1
          },
          {
            "date": "2025-05-20",
            "count": 2
          },
          {
            "date": "2025-05-21",
            "count": 1
          },
          {
            "date": "2025-05-22",
            "count": 1
          },
          {
            "date": "2025-05-23",
            "count": 2
          },
          {
            "date": "2025-05-24",
            "count": 1
          },
          {
            "date": "2025-05-25",
            "count": 1
          },
          {
            "date": "2025-05-30",
            "count": 1
          },
          {
            "date": "2025-05-31",
            "count": 1
          },
          {
            "date": "2025-06-02",
            "count": 1
          },
          {
            "date": "2025-06-05",
            "count": 1
          },
          {
            "date": "2025-06-10",
            "count": 2
          },
          {
            "date": "2025-06-11",
            "count": 1
          },
          {
            "date": "2025-06-15",
            "count": 1
          },
          {
            "date": "2025-06-17",
            "count": 1
          },
          {
            "date": "2025-06-18",
            "count": 1
          },
          {
            "date": "2025-06-23",
            "count": 1
          },
          {
            "date": "2025-06-25",
            "count": 1
          },
          {
            "date": "2025-06-26",
            "count": 1
          },
          {
            "date": "2025-06-27",
            "count": 1
          },
          {
            "date": "2025-06-28",
            "count": 1
          },
          {
            "date": "2025-07-03",
            "count": 1
          },
          {
            "date": "2025-07-06",
            "count": 1
          },
          {
            "date": "2025-07-09",
            "count": 1
          },
          {
            "date": "2025-07-23",
            "count": 1
          },
          {
            "date": "2025-07-24",
            "count": 1
          },
          {
            "date": "2025-07-26",
            "count": 1
          },
          {
            "date": "2025-07-27",
            "count": 1
          },
          {
            "date": "2025-07-31",
            "count": 4
          },
          {
            "date": "2025-08-02",
            "count": 1
          },
          {
            "date": "2025-08-05",
            "count": 1
          },
          {
            "date": "2025-08-07",
            "count": 1
          },
          {
            "date": "2025-08-15",
            "count": 1
          },
          {
            "date": "2025-08-18",
            "count": 1
          },
          {
            "date": "2025-08-19",
            "count": 1
          },
          {
            "date": "2025-08-21",
            "count": 1
          },
          {
            "date": "2025-08-27",
            "count": 1
          },
          {
            "date": "2025-08-31",
            "count": 1
          },
          {
            "date": "2025-09-02",
            "count": 1
          },
          {
            "date": "2025-09-04",
            "count": 1
          },
          {
            "date": "2025-09-05",
            "count": 3
          },
          {
            "date": "2025-09-11",
            "count": 1
          },
          {
            "date": "2025-09-12",
            "count": 1
          },
          {
            "date": "2025-09-17",
            "count": 1
          },
          {
            "date": "2025-09-21",
            "count": 1
          },
          {
            "date": "2025-09-23",
            "count": 1
          },
          {
            "date": "2025-09-24",
            "count": 1
          },
          {
            "date": "2025-09-28",
            "count": 1
          },
          {
            "date": "2025-09-29",
            "count": 1
          },
          {
            "date": "2025-09-30",
            "count": 1
          },
          {
            "date": "2025-10-07",
            "count": 1
          },
          {
            "date": "2025-10-09",
            "count": 2
          },
          {
            "date": "2025-10-10",
            "count": 1
          },
          {
            "date": "2025-10-14",
            "count": 2
          },
          {
            "date": "2025-10-15",
            "count": 1
          },
          {
            "date": "2025-10-16",
            "count": 2
          },
          {
            "date": "2025-10-20",
            "count": 1
          },
          {
            "date": "2025-10-22",
            "count": 2
          },
          {
            "date": "2025-10-25",
            "count": 1
          },
          {
            "date": "2025-10-30",
            "count": 1
          },
          {
            "date": "2025-11-03",
            "count": 2
          },
          {
            "date": "2025-11-19",
            "count": 1
          },
          {
            "date": "2025-11-21",
            "count": 1
          },
          {
            "date": "2025-11-22",
            "count": 2
          },
          {
            "date": "2025-11-25",
            "count": 1
          },
          {
            "date": "2025-11-27",
            "count": 1
          },
          {
            "date": "2025-12-01",
            "count": 1
          },
          {
            "date": "2025-12-03",
            "count": 1
          },
          {
            "date": "2025-12-16",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 1
          },
          {
            "date": "2025-12-29",
            "count": 1
          },
          {
            "date": "2026-01-01",
            "count": 1
          },
          {
            "date": "2026-01-06",
            "count": 1
          },
          {
            "date": "2026-01-09",
            "count": 1
          },
          {
            "date": "2026-01-16",
            "count": 1
          },
          {
            "date": "2026-01-20",
            "count": 2
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 1
          },
          {
            "date": "2026-01-26",
            "count": 1
          },
          {
            "date": "2026-02-01",
            "count": 1
          },
          {
            "date": "2026-02-07",
            "count": 1
          },
          {
            "date": "2026-02-12",
            "count": 1
          },
          {
            "date": "2026-02-13",
            "count": 1
          },
          {
            "date": "2026-02-19",
            "count": 1
          },
          {
            "date": "2026-02-23",
            "count": 2
          },
          {
            "date": "2026-02-26",
            "count": 1
          },
          {
            "date": "2026-02-27",
            "count": 1
          },
          {
            "date": "2026-03-05",
            "count": 1
          },
          {
            "date": "2026-03-06",
            "count": 1
          },
          {
            "date": "2026-03-12",
            "count": 1
          },
          {
            "date": "2026-03-14",
            "count": 2
          },
          {
            "date": "2026-03-16",
            "count": 1
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-03-22",
            "count": 1
          },
          {
            "date": "2026-03-23",
            "count": 1
          },
          {
            "date": "2026-03-24",
            "count": 1
          },
          {
            "date": "2026-03-26",
            "count": 2
          },
          {
            "date": "2026-03-27",
            "count": 1
          },
          {
            "date": "2026-04-02",
            "count": 1
          },
          {
            "date": "2026-04-11",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 2
          },
          {
            "date": "2026-04-22",
            "count": 1
          },
          {
            "date": "2026-04-23",
            "count": 1
          },
          {
            "date": "2026-04-29",
            "count": 1
          },
          {
            "date": "2026-05-07",
            "count": 1
          },
          {
            "date": "2026-05-11",
            "count": 1
          },
          {
            "date": "2026-05-12",
            "count": 1
          },
          {
            "date": "2026-05-19",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 1
          },
          {
            "date": "2026-05-22",
            "count": 1
          },
          {
            "date": "2026-05-29",
            "count": 1
          },
          {
            "date": "2026-06-01",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 1
          },
          {
            "date": "2026-06-19",
            "count": 1
          },
          {
            "date": "2026-06-23",
            "count": 2
          },
          {
            "date": "2026-06-29",
            "count": 1
          },
          {
            "date": "2026-07-01",
            "count": 2
          },
          {
            "date": "2026-07-02",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 1
          },
          {
            "date": "2026-07-13",
            "count": 1
          },
          {
            "date": "2026-07-15",
            "count": 1
          },
          {
            "date": "2026-07-17",
            "count": 1
          },
          {
            "date": "2026-07-18",
            "count": 1
          },
          {
            "date": "2026-07-20",
            "count": 1
          },
          {
            "date": "2026-07-21",
            "count": 1
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_forks": 1049
      },
      "star_history": {
        "days": [
          {
            "date": "2025-09-07",
            "count": 5
          },
          {
            "date": "2025-09-08",
            "count": 5
          },
          {
            "date": "2025-09-09",
            "count": 4
          },
          {
            "date": "2025-09-10",
            "count": 3
          },
          {
            "date": "2025-09-11",
            "count": 2
          },
          {
            "date": "2025-09-12",
            "count": 3
          },
          {
            "date": "2025-09-13",
            "count": 4
          },
          {
            "date": "2025-09-14",
            "count": 4
          },
          {
            "date": "2025-09-15",
            "count": 6
          },
          {
            "date": "2025-09-16",
            "count": 3
          },
          {
            "date": "2025-09-17",
            "count": 4
          },
          {
            "date": "2025-09-18",
            "count": 2
          },
          {
            "date": "2025-09-20",
            "count": 1
          },
          {
            "date": "2025-09-21",
            "count": 7
          },
          {
            "date": "2025-09-22",
            "count": 4
          },
          {
            "date": "2025-09-23",
            "count": 2
          },
          {
            "date": "2025-09-24",
            "count": 3
          },
          {
            "date": "2025-09-25",
            "count": 2
          },
          {
            "date": "2025-09-26",
            "count": 4
          },
          {
            "date": "2025-09-27",
            "count": 3
          },
          {
            "date": "2025-09-28",
            "count": 2
          },
          {
            "date": "2025-09-29",
            "count": 3
          },
          {
            "date": "2025-09-30",
            "count": 5
          },
          {
            "date": "2025-10-01",
            "count": 2
          },
          {
            "date": "2025-10-02",
            "count": 1
          },
          {
            "date": "2025-10-03",
            "count": 1
          },
          {
            "date": "2025-10-04",
            "count": 5
          },
          {
            "date": "2025-10-05",
            "count": 2
          },
          {
            "date": "2025-10-06",
            "count": 4
          },
          {
            "date": "2025-10-07",
            "count": 3
          },
          {
            "date": "2025-10-08",
            "count": 5
          },
          {
            "date": "2025-10-09",
            "count": 6
          },
          {
            "date": "2025-10-10",
            "count": 4
          },
          {
            "date": "2025-10-11",
            "count": 1
          },
          {
            "date": "2025-10-12",
            "count": 3
          },
          {
            "date": "2025-10-13",
            "count": 5
          },
          {
            "date": "2025-10-14",
            "count": 3
          },
          {
            "date": "2025-10-15",
            "count": 4
          },
          {
            "date": "2025-10-16",
            "count": 7
          },
          {
            "date": "2025-10-17",
            "count": 5
          },
          {
            "date": "2025-10-18",
            "count": 2
          },
          {
            "date": "2025-10-20",
            "count": 2
          },
          {
            "date": "2025-10-21",
            "count": 4
          },
          {
            "date": "2025-10-22",
            "count": 8
          },
          {
            "date": "2025-10-23",
            "count": 6
          },
          {
            "date": "2025-10-24",
            "count": 1
          },
          {
            "date": "2025-10-25",
            "count": 1
          },
          {
            "date": "2025-10-27",
            "count": 6
          },
          {
            "date": "2025-10-28",
            "count": 5
          },
          {
            "date": "2025-10-29",
            "count": 3
          },
          {
            "date": "2025-10-30",
            "count": 4
          },
          {
            "date": "2025-10-31",
            "count": 4
          },
          {
            "date": "2025-11-01",
            "count": 2
          },
          {
            "date": "2025-11-02",
            "count": 3
          },
          {
            "date": "2025-11-03",
            "count": 3
          },
          {
            "date": "2025-11-04",
            "count": 4
          },
          {
            "date": "2025-11-05",
            "count": 7
          },
          {
            "date": "2025-11-06",
            "count": 2
          },
          {
            "date": "2025-11-07",
            "count": 3
          },
          {
            "date": "2025-11-08",
            "count": 2
          },
          {
            "date": "2025-11-09",
            "count": 5
          },
          {
            "date": "2025-11-10",
            "count": 4
          },
          {
            "date": "2025-11-11",
            "count": 3
          },
          {
            "date": "2025-11-12",
            "count": 7
          },
          {
            "date": "2025-11-13",
            "count": 4
          },
          {
            "date": "2025-11-14",
            "count": 4
          },
          {
            "date": "2025-11-15",
            "count": 2
          },
          {
            "date": "2025-11-16",
            "count": 2
          },
          {
            "date": "2025-11-17",
            "count": 3
          },
          {
            "date": "2025-11-18",
            "count": 2
          },
          {
            "date": "2025-11-19",
            "count": 6
          },
          {
            "date": "2025-11-20",
            "count": 3
          },
          {
            "date": "2025-11-21",
            "count": 4
          },
          {
            "date": "2025-11-22",
            "count": 4
          },
          {
            "date": "2025-11-23",
            "count": 3
          },
          {
            "date": "2025-11-24",
            "count": 3
          },
          {
            "date": "2025-11-25",
            "count": 3
          },
          {
            "date": "2025-11-26",
            "count": 2
          },
          {
            "date": "2025-11-27",
            "count": 3
          },
          {
            "date": "2025-11-28",
            "count": 2
          },
          {
            "date": "2025-11-29",
            "count": 5
          },
          {
            "date": "2025-11-30",
            "count": 3
          },
          {
            "date": "2025-12-01",
            "count": 7
          },
          {
            "date": "2025-12-02",
            "count": 3
          },
          {
            "date": "2025-12-03",
            "count": 6
          },
          {
            "date": "2025-12-04",
            "count": 2
          },
          {
            "date": "2025-12-05",
            "count": 4
          },
          {
            "date": "2025-12-06",
            "count": 3
          },
          {
            "date": "2025-12-08",
            "count": 4
          },
          {
            "date": "2025-12-09",
            "count": 2
          },
          {
            "date": "2025-12-10",
            "count": 6
          },
          {
            "date": "2025-12-11",
            "count": 5
          },
          {
            "date": "2025-12-12",
            "count": 6
          },
          {
            "date": "2025-12-13",
            "count": 1
          },
          {
            "date": "2025-12-14",
            "count": 2
          },
          {
            "date": "2025-12-15",
            "count": 4
          },
          {
            "date": "2025-12-16",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 5
          },
          {
            "date": "2025-12-18",
            "count": 4
          },
          {
            "date": "2025-12-19",
            "count": 2
          },
          {
            "date": "2025-12-20",
            "count": 5
          },
          {
            "date": "2025-12-21",
            "count": 2
          },
          {
            "date": "2025-12-22",
            "count": 2
          },
          {
            "date": "2025-12-23",
            "count": 5
          },
          {
            "date": "2025-12-24",
            "count": 3
          },
          {
            "date": "2025-12-25",
            "count": 5
          },
          {
            "date": "2025-12-26",
            "count": 2
          },
          {
            "date": "2025-12-27",
            "count": 2
          },
          {
            "date": "2025-12-28",
            "count": 5
          },
          {
            "date": "2025-12-29",
            "count": 6
          },
          {
            "date": "2025-12-30",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 2
          },
          {
            "date": "2026-01-01",
            "count": 3
          },
          {
            "date": "2026-01-02",
            "count": 2
          },
          {
            "date": "2026-01-03",
            "count": 2
          },
          {
            "date": "2026-01-04",
            "count": 2
          },
          {
            "date": "2026-01-05",
            "count": 4
          },
          {
            "date": "2026-01-06",
            "count": 5
          },
          {
            "date": "2026-01-07",
            "count": 1
          },
          {
            "date": "2026-01-08",
            "count": 3
          },
          {
            "date": "2026-01-09",
            "count": 2
          },
          {
            "date": "2026-01-10",
            "count": 5
          },
          {
            "date": "2026-01-11",
            "count": 5
          },
          {
            "date": "2026-01-12",
            "count": 4
          },
          {
            "date": "2026-01-13",
            "count": 2
          },
          {
            "date": "2026-01-14",
            "count": 7
          },
          {
            "date": "2026-01-15",
            "count": 2
          },
          {
            "date": "2026-01-16",
            "count": 3
          },
          {
            "date": "2026-01-17",
            "count": 2
          },
          {
            "date": "2026-01-18",
            "count": 3
          },
          {
            "date": "2026-01-19",
            "count": 2
          },
          {
            "date": "2026-01-20",
            "count": 1
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-01-22",
            "count": 4
          },
          {
            "date": "2026-01-23",
            "count": 3
          },
          {
            "date": "2026-01-24",
            "count": 2
          },
          {
            "date": "2026-01-25",
            "count": 2
          },
          {
            "date": "2026-01-26",
            "count": 3
          },
          {
            "date": "2026-01-27",
            "count": 5
          },
          {
            "date": "2026-01-28",
            "count": 4
          },
          {
            "date": "2026-01-29",
            "count": 3
          },
          {
            "date": "2026-01-30",
            "count": 1
          },
          {
            "date": "2026-01-31",
            "count": 3
          },
          {
            "date": "2026-02-02",
            "count": 7
          },
          {
            "date": "2026-02-03",
            "count": 3
          },
          {
            "date": "2026-02-04",
            "count": 5
          },
          {
            "date": "2026-02-05",
            "count": 3
          },
          {
            "date": "2026-02-06",
            "count": 2
          },
          {
            "date": "2026-02-07",
            "count": 1
          },
          {
            "date": "2026-02-08",
            "count": 5
          },
          {
            "date": "2026-02-09",
            "count": 6
          },
          {
            "date": "2026-02-11",
            "count": 5
          },
          {
            "date": "2026-02-12",
            "count": 4
          },
          {
            "date": "2026-02-13",
            "count": 2
          },
          {
            "date": "2026-02-14",
            "count": 2
          },
          {
            "date": "2026-02-15",
            "count": 1
          },
          {
            "date": "2026-02-16",
            "count": 3
          },
          {
            "date": "2026-02-17",
            "count": 6
          },
          {
            "date": "2026-02-18",
            "count": 4
          },
          {
            "date": "2026-02-19",
            "count": 5
          },
          {
            "date": "2026-02-20",
            "count": 4
          },
          {
            "date": "2026-02-21",
            "count": 5
          },
          {
            "date": "2026-02-22",
            "count": 1
          },
          {
            "date": "2026-02-23",
            "count": 5
          },
          {
            "date": "2026-02-24",
            "count": 6
          },
          {
            "date": "2026-02-25",
            "count": 5
          },
          {
            "date": "2026-02-26",
            "count": 2
          },
          {
            "date": "2026-02-27",
            "count": 6
          },
          {
            "date": "2026-02-28",
            "count": 5
          },
          {
            "date": "2026-03-01",
            "count": 5
          },
          {
            "date": "2026-03-02",
            "count": 1
          },
          {
            "date": "2026-03-03",
            "count": 2
          },
          {
            "date": "2026-03-04",
            "count": 6
          },
          {
            "date": "2026-03-05",
            "count": 4
          },
          {
            "date": "2026-03-06",
            "count": 6
          },
          {
            "date": "2026-03-07",
            "count": 6
          },
          {
            "date": "2026-03-08",
            "count": 4
          },
          {
            "date": "2026-03-09",
            "count": 4
          },
          {
            "date": "2026-03-10",
            "count": 5
          },
          {
            "date": "2026-03-11",
            "count": 2
          },
          {
            "date": "2026-03-12",
            "count": 2
          },
          {
            "date": "2026-03-13",
            "count": 4
          },
          {
            "date": "2026-03-14",
            "count": 2
          },
          {
            "date": "2026-03-16",
            "count": 1
          },
          {
            "date": "2026-03-17",
            "count": 3
          },
          {
            "date": "2026-03-18",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 4
          },
          {
            "date": "2026-03-20",
            "count": 4
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-03-22",
            "count": 4
          },
          {
            "date": "2026-03-23",
            "count": 4
          },
          {
            "date": "2026-03-24",
            "count": 2
          },
          {
            "date": "2026-03-25",
            "count": 1
          },
          {
            "date": "2026-03-26",
            "count": 3
          },
          {
            "date": "2026-03-27",
            "count": 5
          },
          {
            "date": "2026-03-28",
            "count": 1
          },
          {
            "date": "2026-03-29",
            "count": 3
          },
          {
            "date": "2026-03-30",
            "count": 4
          },
          {
            "date": "2026-03-31",
            "count": 1
          },
          {
            "date": "2026-04-01",
            "count": 4
          },
          {
            "date": "2026-04-02",
            "count": 4
          },
          {
            "date": "2026-04-03",
            "count": 7
          },
          {
            "date": "2026-04-05",
            "count": 3
          },
          {
            "date": "2026-04-06",
            "count": 2
          },
          {
            "date": "2026-04-07",
            "count": 3
          },
          {
            "date": "2026-04-08",
            "count": 3
          },
          {
            "date": "2026-04-09",
            "count": 2
          },
          {
            "date": "2026-04-10",
            "count": 3
          },
          {
            "date": "2026-04-11",
            "count": 2
          },
          {
            "date": "2026-04-12",
            "count": 3
          },
          {
            "date": "2026-04-13",
            "count": 5
          },
          {
            "date": "2026-04-15",
            "count": 2
          },
          {
            "date": "2026-04-16",
            "count": 4
          },
          {
            "date": "2026-04-17",
            "count": 4
          },
          {
            "date": "2026-04-18",
            "count": 1
          },
          {
            "date": "2026-04-19",
            "count": 2
          },
          {
            "date": "2026-04-20",
            "count": 1
          },
          {
            "date": "2026-04-21",
            "count": 2
          },
          {
            "date": "2026-04-22",
            "count": 4
          },
          {
            "date": "2026-04-23",
            "count": 3
          },
          {
            "date": "2026-04-24",
            "count": 1
          },
          {
            "date": "2026-04-25",
            "count": 4
          },
          {
            "date": "2026-04-26",
            "count": 3
          },
          {
            "date": "2026-04-27",
            "count": 3
          },
          {
            "date": "2026-04-28",
            "count": 4
          },
          {
            "date": "2026-04-29",
            "count": 2
          },
          {
            "date": "2026-04-30",
            "count": 4
          },
          {
            "date": "2026-05-01",
            "count": 4
          },
          {
            "date": "2026-05-02",
            "count": 11
          },
          {
            "date": "2026-05-03",
            "count": 7
          },
          {
            "date": "2026-05-04",
            "count": 1
          },
          {
            "date": "2026-05-05",
            "count": 3
          },
          {
            "date": "2026-05-06",
            "count": 1
          },
          {
            "date": "2026-05-07",
            "count": 4
          },
          {
            "date": "2026-05-08",
            "count": 2
          },
          {
            "date": "2026-05-09",
            "count": 4
          },
          {
            "date": "2026-05-10",
            "count": 3
          },
          {
            "date": "2026-05-11",
            "count": 2
          },
          {
            "date": "2026-05-12",
            "count": 3
          },
          {
            "date": "2026-05-13",
            "count": 2
          },
          {
            "date": "2026-05-14",
            "count": 2
          },
          {
            "date": "2026-05-15",
            "count": 6
          },
          {
            "date": "2026-05-16",
            "count": 2
          },
          {
            "date": "2026-05-17",
            "count": 3
          },
          {
            "date": "2026-05-18",
            "count": 2
          },
          {
            "date": "2026-05-19",
            "count": 4
          },
          {
            "date": "2026-05-20",
            "count": 3
          },
          {
            "date": "2026-05-21",
            "count": 2
          },
          {
            "date": "2026-05-22",
            "count": 2
          },
          {
            "date": "2026-05-23",
            "count": 5
          },
          {
            "date": "2026-05-24",
            "count": 2
          },
          {
            "date": "2026-05-26",
            "count": 8
          },
          {
            "date": "2026-05-27",
            "count": 4
          },
          {
            "date": "2026-05-28",
            "count": 1
          },
          {
            "date": "2026-05-29",
            "count": 2
          },
          {
            "date": "2026-05-30",
            "count": 3
          },
          {
            "date": "2026-05-31",
            "count": 2
          },
          {
            "date": "2026-06-01",
            "count": 4
          },
          {
            "date": "2026-06-02",
            "count": 4
          },
          {
            "date": "2026-06-03",
            "count": 1
          },
          {
            "date": "2026-06-04",
            "count": 2
          },
          {
            "date": "2026-06-05",
            "count": 5
          },
          {
            "date": "2026-06-06",
            "count": 2
          },
          {
            "date": "2026-06-07",
            "count": 3
          },
          {
            "date": "2026-06-08",
            "count": 3
          },
          {
            "date": "2026-06-10",
            "count": 2
          },
          {
            "date": "2026-06-11",
            "count": 2
          },
          {
            "date": "2026-06-12",
            "count": 1
          },
          {
            "date": "2026-06-14",
            "count": 3
          },
          {
            "date": "2026-06-15",
            "count": 6
          },
          {
            "date": "2026-06-16",
            "count": 2
          },
          {
            "date": "2026-06-17",
            "count": 5
          },
          {
            "date": "2026-06-18",
            "count": 4
          },
          {
            "date": "2026-06-19",
            "count": 3
          },
          {
            "date": "2026-06-20",
            "count": 1
          },
          {
            "date": "2026-06-21",
            "count": 3
          },
          {
            "date": "2026-06-22",
            "count": 3
          },
          {
            "date": "2026-06-23",
            "count": 1
          },
          {
            "date": "2026-06-25",
            "count": 3
          },
          {
            "date": "2026-06-27",
            "count": 1
          },
          {
            "date": "2026-06-28",
            "count": 2
          },
          {
            "date": "2026-06-29",
            "count": 4
          },
          {
            "date": "2026-06-30",
            "count": 2
          },
          {
            "date": "2026-07-01",
            "count": 1
          },
          {
            "date": "2026-07-02",
            "count": 2
          },
          {
            "date": "2026-07-03",
            "count": 2
          },
          {
            "date": "2026-07-04",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 5
          },
          {
            "date": "2026-07-07",
            "count": 1
          },
          {
            "date": "2026-07-08",
            "count": 1
          },
          {
            "date": "2026-07-09",
            "count": 1
          },
          {
            "date": "2026-07-10",
            "count": 3
          },
          {
            "date": "2026-07-11",
            "count": 2
          },
          {
            "date": "2026-07-12",
            "count": 3
          },
          {
            "date": "2026-07-13",
            "count": 3
          },
          {
            "date": "2026-07-14",
            "count": 4
          },
          {
            "date": "2026-07-15",
            "count": 1
          },
          {
            "date": "2026-07-16",
            "count": 1
          },
          {
            "date": "2026-07-17",
            "count": 3
          },
          {
            "date": "2026-07-18",
            "count": 6
          },
          {
            "date": "2026-07-19",
            "count": 4
          },
          {
            "date": "2026-07-20",
            "count": 4
          },
          {
            "date": "2026-07-21",
            "count": 6
          },
          {
            "date": "2026-07-22",
            "count": 1
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_stars": 8472
      },
      "open_issues_and_prs": 311
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile",
        "examples/Makefile",
        "internal/test/Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "examples/go.mod",
        "go.mod",
        "internal/test/go.mod"
      ],
      "largest_source_bytes": 129047,
      "source_files_sampled": 599,
      "oversized_source_files": 10,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "examples/go.mod",
        "go.mod"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "github.com/gofiber/fiber/v2",
            "direct": false,
            "version": "v2.52.13",
            "severity": "moderate",
            "ecosystem": "go",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-gcfq-8gqf-4876"
            ],
            "fixed_version": "3.3.0",
            "advisory_count": 1,
            "oldest_advisory_days": 19
          },
          {
            "name": "github.com/quic-go/quic-go",
            "direct": false,
            "version": "v0.59.0",
            "severity": "moderate",
            "ecosystem": "go",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-vvgj-x9jq-8cj9",
              "GO-2026-5676"
            ],
            "fixed_version": "0.59.1",
            "advisory_count": 2,
            "oldest_advisory_days": 48
          },
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.54.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5932"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 14
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "unknown": 1,
          "moderate": 2
        },
        "advisory_count": 4,
        "affected_count": 3,
        "assessed_count": 126,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [
        {
          "name": "github.com/getkin/kin-openapi",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.143.0"
        },
        {
          "name": "github.com/speakeasy-api/openapi",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.24.0"
        },
        {
          "name": "github.com/stretchr/testify",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.11.1"
        },
        {
          "name": "go.yaml.in/yaml/v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.4"
        },
        {
          "name": "golang.org/x/mod",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.38.0"
        },
        {
          "name": "golang.org/x/text",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.40.0"
        },
        {
          "name": "golang.org/x/tools",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.48.0"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "github.com/getkin/kin-openapi",
            "direct": true,
            "version": "v0.143.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/speakeasy-api/openapi",
            "direct": true,
            "version": "v1.24.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/stretchr/testify",
            "direct": true,
            "version": "v1.11.1",
            "ecosystem": "go"
          },
          {
            "name": "go.yaml.in/yaml/v3",
            "direct": true,
            "version": "v3.0.4",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/mod",
            "direct": true,
            "version": "v0.38.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/text",
            "direct": true,
            "version": "v0.40.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/tools",
            "direct": true,
            "version": "v0.48.0",
            "ecosystem": "go"
          },
          {
            "name": "gopkg.in/yaml.v3",
            "direct": true,
            "version": "v3.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/andybalholm/brotli",
            "direct": false,
            "version": "v1.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/apapsch/go-jsonmerge/v2",
            "direct": false,
            "version": "v2.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aymerick/douceur",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/burntsushi/toml",
            "direct": false,
            "version": "v1.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/bytedance/gopkg",
            "direct": false,
            "version": "v0.1.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/bytedance/sonic",
            "direct": false,
            "version": "v1.15.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/bytedance/sonic/loader",
            "direct": false,
            "version": "v0.5.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/clipperhouse/uax29/v2",
            "direct": false,
            "version": "v2.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cloudwego/base64x",
            "direct": false,
            "version": "v0.1.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cloudykit/fastprinter",
            "direct": false,
            "version": "v0.0.0-20251202014920-1725d2651bd4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cloudykit/jet/v6",
            "direct": false,
            "version": "v6.3.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/davecgh/go-spew",
            "direct": false,
            "version": "v1.1.2-0.20180830191138-d8f796af33cc",
            "ecosystem": "go"
          },
          {
            "name": "github.com/decred/dcrd/dcrec/secp256k1/v4",
            "direct": false,
            "version": "v4.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/dprotaso/go-yit",
            "direct": false,
            "version": "v0.0.0-20220510233725-9ba8df137936",
            "ecosystem": "go"
          },
          {
            "name": "github.com/fatih/structs",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/flosch/pongo2/v4",
            "direct": false,
            "version": "v4.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gabriel-vasile/mimetype",
            "direct": false,
            "version": "v1.4.13",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gin-contrib/sse",
            "direct": false,
            "version": "v1.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gin-gonic/gin",
            "direct": false,
            "version": "v1.12.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-chi/chi/v5",
            "direct": false,
            "version": "v5.2.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-openapi/jsonpointer",
            "direct": false,
            "version": "v0.23.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-openapi/jsonpointer",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-openapi/swag/jsonname",
            "direct": false,
            "version": "v0.26.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-playground/locales",
            "direct": false,
            "version": "v0.14.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-playground/universal-translator",
            "direct": false,
            "version": "v0.18.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-playground/validator/v10",
            "direct": false,
            "version": "v10.30.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/goccy/go-json",
            "direct": false,
            "version": "v0.10.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/goccy/go-yaml",
            "direct": false,
            "version": "v1.19.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gofiber/fiber/v2",
            "direct": false,
            "version": "v2.52.13",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gofiber/fiber/v3",
            "direct": false,
            "version": "v3.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gofiber/schema",
            "direct": false,
            "version": "v1.8.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gofiber/schema",
            "direct": false,
            "version": "v1.8.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gofiber/utils/v2",
            "direct": false,
            "version": "v2.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang/snappy",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gomarkdown/markdown",
            "direct": false,
            "version": "v0.0.0-20260417124207-7d523f7318df",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/uuid",
            "direct": false,
            "version": "v1.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gorilla/css",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gorilla/mux",
            "direct": false,
            "version": "v1.8.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/iris-contrib/schema",
            "direct": false,
            "version": "v0.0.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/joker/jade",
            "direct": false,
            "version": "v1.1.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/josharian/intern",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/json-iterator/go",
            "direct": false,
            "version": "v1.1.12",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kataras/blocks",
            "direct": false,
            "version": "v0.0.12",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kataras/golog",
            "direct": false,
            "version": "v0.1.11",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kataras/iris/v12",
            "direct": false,
            "version": "v12.2.11",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kataras/pio",
            "direct": false,
            "version": "v0.0.13",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kataras/sitemap",
            "direct": false,
            "version": "v0.0.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kataras/tunnel",
            "direct": false,
            "version": "v0.0.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/klauspost/compress",
            "direct": false,
            "version": "v1.19.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/klauspost/cpuid/v2",
            "direct": false,
            "version": "v2.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/labstack/echo/v4",
            "direct": false,
            "version": "v4.15.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/labstack/echo/v5",
            "direct": false,
            "version": "v5.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/labstack/echo/v5",
            "direct": false,
            "version": "v5.2.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/labstack/gommon",
            "direct": false,
            "version": "v0.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/leodido/go-urn",
            "direct": false,
            "version": "v1.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lestrrat-go/blackmagic",
            "direct": false,
            "version": "v1.0.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lestrrat-go/dsig",
            "direct": false,
            "version": "v1.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lestrrat-go/dsig-secp256k1",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lestrrat-go/httpcc",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lestrrat-go/httprc/v3",
            "direct": false,
            "version": "v3.0.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lestrrat-go/jwx/v3",
            "direct": false,
            "version": "v3.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lestrrat-go/option/v2",
            "direct": false,
            "version": "v2.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mailgun/raymond/v2",
            "direct": false,
            "version": "v2.0.48",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mailru/easyjson",
            "direct": false,
            "version": "v0.9.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-colorable",
            "direct": false,
            "version": "v0.1.15",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-isatty",
            "direct": false,
            "version": "v0.0.22",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-runewidth",
            "direct": false,
            "version": "v0.0.23",
            "ecosystem": "go"
          },
          {
            "name": "github.com/microcosm-cc/bluemonday",
            "direct": false,
            "version": "v1.0.27",
            "ecosystem": "go"
          },
          {
            "name": "github.com/modern-go/concurrent",
            "direct": false,
            "version": "v0.0.0-20180306012644-bacd9c7ef1dd",
            "ecosystem": "go"
          },
          {
            "name": "github.com/modern-go/reflect2",
            "direct": false,
            "version": "v1.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/echo-middleware",
            "direct": false,
            "version": "v1.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/echo-v5-middleware",
            "direct": false,
            "version": "v0.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/fiber-middleware",
            "direct": false,
            "version": "v1.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/fiber-v3-middleware",
            "direct": false,
            "version": "v0.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/gin-middleware",
            "direct": false,
            "version": "v1.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/iris-middleware",
            "direct": false,
            "version": "v1.0.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/nethttp-middleware",
            "direct": false,
            "version": "v1.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/nullable",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/runtime",
            "direct": false,
            "version": "v1.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oapi-codegen/testutil",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oasdiff/yaml",
            "direct": false,
            "version": "v0.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oasdiff/yaml3",
            "direct": false,
            "version": "v0.0.14",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pelletier/go-toml/v2",
            "direct": false,
            "version": "v2.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/philhofer/fwd",
            "direct": false,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pmezard/go-difflib",
            "direct": false,
            "version": "v1.0.1-0.20181226105442-5d4384ee4fb2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/quic-go/qpack",
            "direct": false,
            "version": "v0.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/quic-go/quic-go",
            "direct": false,
            "version": "v0.59.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/russross/blackfriday/v2",
            "direct": false,
            "version": "v2.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/santhosh-tekuri/jsonschema/v6",
            "direct": false,
            "version": "v6.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/schollz/closestmatch",
            "direct": false,
            "version": "v2.1.0+incompatible",
            "ecosystem": "go"
          },
          {
            "name": "github.com/segmentio/asm",
            "direct": false,
            "version": "v1.2.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/shopify/goreferrer",
            "direct": false,
            "version": "v0.0.0-20250617153402-88c1d9a79b05",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sirupsen/logrus",
            "direct": false,
            "version": "v1.9.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/speakeasy-api/jsonpath",
            "direct": false,
            "version": "v0.6.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/stretchr/objx",
            "direct": false,
            "version": "v0.5.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/tdewolff/minify/v2",
            "direct": false,
            "version": "v2.24.13",
            "ecosystem": "go"
          },
          {
            "name": "github.com/tdewolff/parse/v2",
            "direct": false,
            "version": "v2.8.12",
            "ecosystem": "go"
          },
          {
            "name": "github.com/tinylib/msgp",
            "direct": false,
            "version": "v1.6.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/twitchyliquid64/golang-asm",
            "direct": false,
            "version": "v0.15.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ugorji/go/codec",
            "direct": false,
            "version": "v1.3.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/valyala/bytebufferpool",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/valyala/fasthttp",
            "direct": false,
            "version": "v1.72.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/valyala/fastjson",
            "direct": false,
            "version": "v1.6.10",
            "ecosystem": "go"
          },
          {
            "name": "github.com/valyala/fasttemplate",
            "direct": false,
            "version": "v1.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmihailenco/msgpack/v5",
            "direct": false,
            "version": "v5.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmihailenco/tagparser/v2",
            "direct": false,
            "version": "v2.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmware-labs/yaml-jsonpath",
            "direct": false,
            "version": "v0.3.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/yosssi/ace",
            "direct": false,
            "version": "v0.0.5",
            "ecosystem": "go"
          },
          {
            "name": "go.mongodb.org/mongo-driver/v2",
            "direct": false,
            "version": "v2.6.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/arch",
            "direct": false,
            "version": "v0.26.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.54.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/exp",
            "direct": false,
            "version": "v0.0.0-20260410095643-746e56fc9e2f",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/net",
            "direct": false,
            "version": "v0.57.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sync",
            "direct": false,
            "version": "v0.22.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.47.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/time",
            "direct": false,
            "version": "v0.15.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/protobuf",
            "direct": false,
            "version": "v1.36.11",
            "ecosystem": "go"
          },
          {
            "name": "gopkg.in/ini.v1",
            "direct": false,
            "version": "v1.67.1",
            "ecosystem": "go"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 126,
        "direct_count": 8,
        "indirect_count": 118
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 65,
        "merged_prs": 817,
        "open_issues": 246,
        "closed_ratio": 0.769,
        "closed_issues": 818,
        "closed_unmerged_prs": 426
      },
      "bus_factor": 2,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "mromaszewicz",
          "commits": 259,
          "avatar_url": "https://avatars.githubusercontent.com/u/13071605?v=4"
        },
        {
          "type": "User",
          "login": "jamietanna",
          "commits": 196,
          "avatar_url": "https://avatars.githubusercontent.com/u/3315059?v=4"
        },
        {
          "type": "User",
          "login": "alexandear",
          "commits": 19,
          "avatar_url": "https://avatars.githubusercontent.com/u/3228886?v=4"
        },
        {
          "type": "User",
          "login": "ShouheiNishi",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/96609867?v=4"
        },
        {
          "type": "User",
          "login": "weitzj",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/829277?v=4"
        },
        {
          "type": "User",
          "login": "mycrEEpy",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/6517708?v=4"
        },
        {
          "type": "User",
          "login": "stevenh",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/104239?v=4"
        },
        {
          "type": "User",
          "login": "Jleagle",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/381099?v=4"
        },
        {
          "type": "User",
          "login": "natsukagami",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/9061737?v=4"
        },
        {
          "type": "User",
          "login": "chrusty",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/1902132?v=4"
        }
      ],
      "contributors_sampled": 98,
      "top_contributor_share": 0.367
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "govulncheck.yml",
        "label-actions.yml",
        "labeler.yml",
        "readme-toc.yml",
        "release-drafter.yml",
        "scorecard.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 4,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 2,
            "reason": "badge detected: InProgress",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 1,
            "reason": "Found 3/21 approved changesets -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 25 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 10,
            "reason": "all dependencies are pinned",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 6,
            "reason": "SAST tool is not run on all commits -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 7,
            "reason": "3 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "d31f05b99cb2a4726ad7e2a1cbf22d0d436de9bb",
        "ran_at": "2026-07-22T02:33:22Z",
        "aggregate_score": 7.6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-21T23:56:55Z",
      "oldest_open_prs": [
        {
          "number": 457,
          "created_at": "2021-10-06T20:20:51Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 596,
          "created_at": "2022-05-27T19:45:57Z",
          "last_comment_at": "2022-10-17T13:50:01Z",
          "last_comment_author": "erendogan51"
        },
        {
          "number": 713,
          "created_at": "2022-08-10T06:24:02Z",
          "last_comment_at": "2026-07-14T15:35:29Z",
          "last_comment_author": "mromaszewicz"
        },
        {
          "number": 995,
          "created_at": "2023-03-08T15:19:53Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1018,
          "created_at": "2023-04-03T08:27:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1303,
          "created_at": "2023-10-04T06:37:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1330,
          "created_at": "2023-10-18T06:48:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1371,
          "created_at": "2023-12-04T16:10:15Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1380,
          "created_at": "2023-12-08T06:14:34Z",
          "last_comment_at": "2024-10-04T12:46:12Z",
          "last_comment_author": "podhmo"
        },
        {
          "number": 1383,
          "created_at": "2023-12-12T18:31:22Z",
          "last_comment_at": "2023-12-13T13:10:16Z",
          "last_comment_author": "jamietanna"
        },
        {
          "number": 1400,
          "created_at": "2023-12-21T06:02:14Z",
          "last_comment_at": "2024-01-25T11:49:40Z",
          "last_comment_author": "jamietanna"
        },
        {
          "number": 1489,
          "created_at": "2024-03-06T20:44:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1502,
          "created_at": "2024-03-14T23:07:43Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1518,
          "created_at": "2024-03-26T17:40:43Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1544,
          "created_at": "2024-04-18T08:47:29Z",
          "last_comment_at": "2024-08-22T16:58:36Z",
          "last_comment_author": "deefdragon"
        },
        {
          "number": 1598,
          "created_at": "2024-05-06T04:11:42Z",
          "last_comment_at": "2024-06-28T19:52:36Z",
          "last_comment_author": "gaiaz-iusipov"
        },
        {
          "number": 1684,
          "created_at": "2024-07-04T08:46:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1706,
          "created_at": "2024-07-20T17:10:41Z",
          "last_comment_at": "2024-11-28T13:58:18Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1709,
          "created_at": "2024-07-23T17:19:05Z",
          "last_comment_at": "2024-07-23T19:58:34Z",
          "last_comment_author": "mromaszewicz"
        },
        {
          "number": 1717,
          "created_at": "2024-08-06T07:29:22Z",
          "last_comment_at": "2025-11-21T12:27:18Z",
          "last_comment_author": "LarsStegman"
        }
      ],
      "last_merged_pr_at": "2026-07-21T23:56:02Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 143,
          "created_at": "2020-03-02T13:47:52Z",
          "last_comment_at": "2026-04-03T00:51:11Z",
          "last_comment_author": "mromaszewicz"
        },
        {
          "number": 163,
          "created_at": "2020-03-28T17:46:10Z",
          "last_comment_at": "2021-02-11T09:47:06Z",
          "last_comment_author": "acabarbaye"
        },
        {
          "number": 253,
          "created_at": "2020-11-16T09:07:28Z",
          "last_comment_at": "2021-01-27T21:34:37Z",
          "last_comment_author": "davidovich"
        },
        {
          "number": 276,
          "created_at": "2021-01-12T05:34:16Z",
          "last_comment_at": "2021-11-03T21:08:25Z",
          "last_comment_author": "mitar"
        },
        {
          "number": 281,
          "created_at": "2021-01-14T09:12:17Z",
          "last_comment_at": "2023-04-22T05:08:18Z",
          "last_comment_author": "bobmorley"
        },
        {
          "number": 360,
          "created_at": "2021-05-12T16:27:16Z",
          "last_comment_at": "2022-11-23T09:43:04Z",
          "last_comment_author": "jamietanna"
        },
        {
          "number": 366,
          "created_at": "2021-05-19T08:36:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 369,
          "created_at": "2021-05-22T00:56:06Z",
          "last_comment_at": "2021-05-22T21:42:34Z",
          "last_comment_author": null
        },
        {
          "number": 435,
          "created_at": "2021-08-26T14:46:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 447,
          "created_at": "2021-09-29T01:01:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 452,
          "created_at": "2021-10-05T14:57:16Z",
          "last_comment_at": "2021-11-03T18:44:38Z",
          "last_comment_author": "jake-scott"
        },
        {
          "number": 472,
          "created_at": "2021-10-27T16:19:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 476,
          "created_at": "2021-11-02T14:35:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 479,
          "created_at": "2021-11-09T12:05:47Z",
          "last_comment_at": "2025-02-07T10:12:01Z",
          "last_comment_author": "majewsky"
        },
        {
          "number": 483,
          "created_at": "2021-11-14T01:43:25Z",
          "last_comment_at": "2022-05-27T07:45:38Z",
          "last_comment_author": "jamietanna"
        },
        {
          "number": 486,
          "created_at": "2021-11-23T17:25:08Z",
          "last_comment_at": "2024-08-05T14:55:20Z",
          "last_comment_author": "Giftzwerg02"
        },
        {
          "number": 489,
          "created_at": "2021-11-25T07:33:21Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 513,
          "created_at": "2022-01-28T14:31:07Z",
          "last_comment_at": "2026-07-14T18:58:32Z",
          "last_comment_author": "jamietanna"
        },
        {
          "number": 514,
          "created_at": "2022-01-31T11:51:39Z",
          "last_comment_at": "2025-01-16T07:41:39Z",
          "last_comment_author": "spidemen2024"
        },
        {
          "number": 538,
          "created_at": "2022-03-13T01:58:46Z",
          "last_comment_at": "2024-03-07T10:09:57Z",
          "last_comment_author": "smallhive"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/oapi-codegen/oapi-codegen",
    "host": "github.com",
    "name": "oapi-codegen",
    "owner": "oapi-codegen"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 79,
      "inputs": {
        "security": 81,
        "vitality": 88,
        "community": 83,
        "governance": 69,
        "engineering": 78
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 88,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "commits_last_year": 260,
              "human_commit_share": 0.66,
              "days_since_last_push": 0,
              "active_weeks_last_year": 32
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "32/52 weeks with commits",
                "points": 22.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 32
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "260 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 260
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 92,
            "inputs": {
              "releases_count": 87,
              "latest_release_tag": "v2.8.0",
              "releases_from_tags": false,
              "days_since_latest_release": 4,
              "mean_days_between_releases": 85.6
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "87 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 87
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 4 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~85.6 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 85.6
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 83,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "forks": 1049,
              "stars": 8472,
              "watchers": 41,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "8,472 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 8472
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1,049 forks",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1049
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "41 watchers",
                "points": 8.9,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 41
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 69,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 63,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 98,
              "top_contributor_share": 0.367
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 37% of commits",
                "points": 14.2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 37
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "98 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 98
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 25 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 63,
            "inputs": {
              "merged_prs": 817,
              "open_issues": 246,
              "closed_issues": 818,
              "issue_closed_ratio": 0.769,
              "closed_unmerged_prs": 426
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "77% of issues closed",
                "points": 36,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 77
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "817/1243 decided PRs merged",
                "points": 25.1,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 817,
                      "decided": 1243
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 3/21 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 58,
            "inputs": {
              "followers": 62,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "oapi-codegen",
              "public_repos": 19,
              "account_age_days": 1066
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "62 followers of oapi-codegen",
                "points": 12.9,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 62,
                      "login": "oapi-codegen"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "19 public repos, account ~2 yr old",
                "points": 15.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 19
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 2
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/oapi-codegen/oapi-codegen/v2"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 4
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 4 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "13 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 13
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 78,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "7 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "topics": [
                "openapi3",
                "golang",
                "swagger",
                "openapi",
                "rest-api",
                "go",
                "openapi-codegen",
                "openapi-generator",
                "rest-api-client"
              ],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "9 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "good",
        "name": "Security",
        "value": 81,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "good",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 76,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 7.6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "badge detected: InProgress",
                "points": 0.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 3/21 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 25 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "all dependencies are pinned",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 6",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "3 existing vulnerabilities detected",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 126 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 126
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 4,
              "affected_packages": 3,
              "assessed_packages": 126,
              "unassessed_packages": 0,
              "affected_by_severity": "moderate 2, unknown 1",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 126,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 16
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 68,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "66 of 66 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 66,
                      "sampled": 66
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 89,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile",
                "examples/Makefile",
                "internal/test/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.34,
              "toolchain_manifests": [
                "examples/go.mod",
                "go.mod",
                "internal/test/go.mod"
              ],
              "dependency_bot_commit_share": 0.34
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile, examples/Makefile, internal/test/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile, examples/Makefile, internal/test/Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "34 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 34,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "34 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 34,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "all dependencies are pinned",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 129047,
              "source_files_sampled": 599,
              "oversized_source_files": 10
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "10/599 source files over 60KB",
                "points": 54.1,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 599,
                      "oversized": 10
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [],
  "report_type": "repository",
  "generated_at": "2026-07-22T02:33:50.458114Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/o/oapi-codegen/oapi-codegen.svg",
  "full_name": "oapi-codegen/oapi-codegen",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.26.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsGo.