Public record
Software health reportschema 0.26.0 · metrics 1.13.0 · 2026-07-21 23:34 UTC

sporkmonger / addressable

Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates.

RubyApache-2.0★ 1,611 stars⑂ 279 forkssince Jun 2008View on GitHub ↗

sporkmonger/addressable holds a health index of 62 out of 100, placing it in the Moderate band. It scores highest on Community & Adoption (74/100) and lowest on Vitality (35/100). It was last updated 24 days ago. A single contributor accounts for most of its recent work.

62
overall / 100
Moderate

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.

62
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

Bob AmanPersonal account
181 followers132 public repossince Feb 2008@discord

This repository is owned by a personal account. A single-owner project carries more continuity risk than an organization-backed one.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publish
RubyGemsaddressable2.9.0-48107 days ago

Metrics by category

Vitality

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

35At risk · 22% of overall
How it's scored
28.8/36Push recency — last push 24 days ago
9/36Commit cadence — 13/52 weeks with commits
15.7/18Commit volume — 55 commits in the last year
4/10OpenSSF Scorecard: Maintained — 5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4
Inputs used
commits_last_year55
human_commit_share0.88
days_since_last_push24
active_weeks_last_year13
How it's scored
0/27Ships releases — no releases published
0/36Release recency — no releases
0/27Release cadence — no releases
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count0
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?

74Good · 18% of overall
How it's scored
52/60Stars — 1,611 stars
20.4/25Forks — 279 forks
8.1/15Watchers — 30 watchers
Inputs used
forks279
stars1,611
watchers30
growth_stateorganic
growth_factor_pct100
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
How it's scored
80/80Total downloads — 1,225,594,015 downloads all-time across rubygems
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagesaddressable
dependents
ecosystemsrubygems
total_downloads1,225,594,015
monthly_downloads
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

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

66Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
8.8/22.5Commit distribution — top contributor authored 61% of commits
13.5/13.5Contributor breadth — 99 contributors
10/10OpenSSF Scorecard: Contributors — project has 45 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled99
top_contributor_share0.607
How it's scored
40.7/46.8Issue resolution — 87% of issues closed
28.5/38.3PR acceptance — 216/290 decided PRs merged
1.5/15OpenSSF Scorecard: Code-Review — Found 2/14 approved changesets -- score normalized to 1
Inputs used
merged_prs216
open_issues37
closed_issues250
issue_closed_ratio0.871
closed_unmerged_prs74
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
16.2/25Owner reach — 181 followers of sporkmonger
25/25Track record — 132 public repos, account ~18 yr old
Inputs used
followers181
owner_typeUser
is_verified
owner_loginsporkmonger
public_repos132
account_age_days6,717
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.
How it's scored
25/25Published & resolvable — 1 package(s) on rubygems
35/35Publish recency — latest publish 107 days ago
20/20Version history — 48 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesaddressable
ecosystemsrubygems
any_deprecatedno
min_days_since_publish107

Engineering Quality

Are baseline engineering and documentation practices in place?

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

Documentation

60Moderate
How it's scored
30/30README
0/25Documentation directory
0/15Documentation / homepage site
10/10Repository description
10/10Topics — 2 topics
10/10Wiki
Inputs used
topicsuri, uri-template
has_wikiyes
homepage
has_readmeyes
has_docs_dirno
has_descriptionyes

Security

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

73Good · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — no data
2.5/2.5CI-Tests — 21 out of 21 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 2/14 approved changesets -- score normalized to 1
2.5/2.5Contributors — project has 45 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
3/7.5Maintained — 5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4
5/5Packaging — packaging workflow detected
5/5Pinned-Dependencies — all dependencies are pinned
5/5SAST — SAST tool is run on all commits
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
6.8/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate7.3
Excluded from scoring (no data or not applicable): branch_protection, signed_releases. Remaining weights renormalized.

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.

39At risk · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
34.5/40Legible commit history — 57 of 88 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.648
agent_instruction_files
agent_instruction_max_bytes
How it's scored
0/18One-command bootstrap
22/22Automated tests
0/11Lint / format config
0/11Static type checking
0/10Reproducible environment
0/10Demonstrated agent practice — no agent-authored commits among the last 100
8/8Automated maintenance — 12 of the last 100 commits are automated dependency updates
10/10OpenSSF Scorecard: Pinned-Dependencies — all dependencies are pinned
Inputs used
has_nixno
has_testsyes
lockfiles
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0.12
How it's scored
0/45Type-checkable code — Ruby without a type-check config
47.1/55Manageable file sizes — 3/21 source files over 60KB
Inputs used
primary_languageRuby
largest_source_bytes229,409
source_files_sampled21
oversized_source_files3

Key facts

1,611GitHub stars
99contributors
55commits, last 12 months
24days since last push
0releases
1bus factor
37open issues
RubyGemspackage ecosystems

Data collection warnings

  • No resolved dependencies carried a version and a supported ecosystem

More detail

Star and fork history 1,611 ★ / 279 ⇿
1,611Stars
279Forks

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.

04008001,2001,6002,0001,611272192009-042017-112026-07

Each point covers 16 days.

OpenSSF Scorecard 7.3 / 10
7.3aggregate

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-21 23:34 UTC

10Binary-Artifactsno binaries found in the repo
n/aBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests21 out of 21 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 2/14 approved changesets -- score normalized to 1
10Contributorsproject has 45 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
4Maintained5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4
10Packagingpackaging workflow detected
10Pinned-Dependenciesall dependencies are pinned
10SASTSAST tool is run on all commits
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
9Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direct dependencies 3
RegistryPackageVersion constraintManifest
RubyGemscoveralls> 0.7Gemfile
RubyGemssimplecovGemfile
RubyGemsidn-rubyGemfile
All dependencies 10

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

RegistryPackageVersionRelation
RubyGemscoverallsdirect
RubyGemsidn-rubydirect
RubyGemssimplecovdirect
RubyGemslaunchyindirect
RubyGemsmemory_profilerindirect
RubyGemsrakeindirect
RubyGemsredcarpetindirect
RubyGemsrspecindirect
RubyGemsrspec-itsindirect
RubyGemsyardindirect
Dependency advisories not assessed

Advisory matching could not run for this report: No resolved dependencies carried a version and a supported ecosystem

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "uri",
        "uri-template"
      ],
      "is_fork": false,
      "size_kb": 1984,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Ruby": 623654
      },
      "pushed_at": "2026-06-27T13:52:18Z",
      "created_at": "2008-06-05T19:00:11Z",
      "owner_type": "User",
      "updated_at": "2026-07-14T20:45:04Z",
      "description": "Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Ruby",
      "significant_languages": [
        "Ruby"
      ]
    },
    "owner": {
      "blog": "http://sporkmonger.com/",
      "name": "Bob Aman",
      "type": "User",
      "login": "sporkmonger",
      "company": "@discord",
      "location": "Minneapolis, MN",
      "followers": 181,
      "avatar_url": "https://avatars.githubusercontent.com/u/1778?v=4",
      "created_at": "2008-02-29T17:55:30Z",
      "is_verified": null,
      "public_repos": 132,
      "account_age_days": 6717
    },
    "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": [],
      "recent_commits": [
        {
          "oid": "d298c9f551fa9748d16dbfb6273b70f60b3d61bc",
          "body": "Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.4 to 4.35.5.\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/6\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Build(deps): Bump github/codeql-action from 4.35.4 to 4.35.5 (#594)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-17T20:21:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "78b2194e6cb170d10b56d24515ca479e05d22b07",
          "body": "Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.2 to 4.35.4.\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/9\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Build(deps): Bump github/codeql-action from 4.35.2 to 4.35.4 (#593)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-13T16:11:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b0219e2cd0f0a52ebb25986ec3221fdd698f6086",
          "body": "Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.305.0 to 1.306.0.\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)\n- [Commits](https://github.com/ruby/setup-ruby/compare/0cb964fd540e0a24c900370a\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Build(deps): Bump ruby/setup-ruby from 1.305.0 to 1.306.0 (#592)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-13T16:08:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f22057d717b094e723e7420b83a4d04f67747f1b",
          "body": "Bumps [rubygems/configure-rubygems-credentials](https://github.com/rubygems/configure-rubygems-credentials) from 1.0.0 to 2.0.0.\n- [Release notes](https://github.com/rubygems/configure-rubygems-credentials/releases)\n- [Commits](https://github.com/rubygems/configure-rubygems-credentials/compare/bc6dd\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Build(deps): Bump rubygems/configure-rubygems-credentials (#590)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-13T16:02:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "13e426b28b3abb9f483ace6c98db854ae756bcfb",
          "body": "Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.302.0 to 1.305.0.\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)\n- [Commits](https://github.com/ruby/setup-ruby/compare/7372622e62b60b3cb750dcd2\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Build(deps): Bump ruby/setup-ruby from 1.302.0 to 1.305.0 (#588)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-25T15:28:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2036ef6ad0f1728e7dc7874216721aeb03039037",
          "body": "Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.1 to 4.35.2.\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/c\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Build(deps): Bump github/codeql-action from 4.35.1 to 4.35.2 (#587)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-21T11:29:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "82daabe6c88c4cfdfa3f71fa771bbf8cd0ab90f8",
          "body": "Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.299.0 to 1.302.0.\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)\n- [Commits](https://github.com/ruby/setup-ruby/compare/3ff19f5e2baf30647122352b\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Build(deps): Bump ruby/setup-ruby from 1.299.0 to 1.302.0 (#586)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-21T11:26:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "137197e92e4bd6e942003a2c3c29d83339d5c826",
          "body": null,
          "is_bot": false,
          "headline": "Use explicit permissions for workflows",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T07:11:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ec66f25313937f33d51def15293a716f593abfd",
          "body": null,
          "is_bot": false,
          "headline": "Previous change had a bug in ordering",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T06:58:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0767bf1355265dccfd29f517b50a9954c4e07e00",
          "body": null,
          "is_bot": false,
          "headline": "Reduces the risk of template injection",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T06:47:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0dfd74efaea898594c11559b4a9146fa1c95f0b2",
          "body": null,
          "is_bot": false,
          "headline": "Make sure we're releasing the right version",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T06:32:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f50bd3bcbe1001da6a807152510fa7edd0bf7633",
          "body": null,
          "is_bot": false,
          "headline": "Auto-update dependencies",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T06:25:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4320f1ceb3773df4719db629ff41e6d6d1ba9647",
          "body": null,
          "is_bot": false,
          "headline": "Switch to pinned actions",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T06:07:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eef6c9bf0c46b8e402fa8003c5bf1de55e7c5d94",
          "body": null,
          "is_bot": false,
          "headline": "This should keep the tests from being flaky on TruffleRuby",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T05:43:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c3e8589b23d4402903a9b4e1fdeba4e43c52ca4",
          "body": null,
          "is_bot": false,
          "headline": "Revving version and changelog",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T03:39:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91915c1f7aafa3e2c9f42e2f4e21d948c7a861b8",
          "body": null,
          "is_bot": false,
          "headline": "Fixing additional vulnerable paths",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T03:39:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a091e39ff02fc321b21dea3a0df585bef2ba3744",
          "body": "…S regressions",
          "is_bot": false,
          "headline": "Add many more adversarial test cases to ensure we don't have any ReDo…",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-05T03:39:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "463a819665a3b85ce5ce894c90bd7bfa3b9d2e15",
          "body": null,
          "is_bot": false,
          "headline": "Regenerate gemspec on newer rubygems",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-04T22:03:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0afcb0b9672bee301e5e96ed850fec05b2fcabb0",
          "body": null,
          "is_bot": false,
          "headline": "Improve from O(n^2) to O(n)",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-04T21:57:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c87f768f22ab00376ed2f8cb106f59c9d0652d3a",
          "body": null,
          "is_bot": false,
          "headline": "Fix a ReDoS vulnerability in URI template matching",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2026-04-04T21:57:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d7e9b259fb0940d1a85064b04f678a7984409a5",
          "body": null,
          "is_bot": false,
          "headline": "Fix links for 2.8.9 in CHANGELOG (#573)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-02-27T16:07:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2091200b31553f19248eb871f071852409796f8",
          "body": null,
          "is_bot": false,
          "headline": "Update version, gemspec, and CHANGELOG for 2.8.9 (#572)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-02-27T15:48:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "387587492b6536748ed12a11c3fdb44a48885f28",
          "body": "This pull request updates the *.gemspec file to optimize the gem package size and structure\n\n$ gem build -o before.tar.gz\n\n$ git switch reduce-gem-size\n\n$ gem build -o after.tar.gz\n\n$ du -sh before.tar.gz after.tar.gz\n 108K \tbefore\n 76K \tafter",
          "is_bot": false,
          "headline": "Reduce gem size by excluding test files (#569)",
          "author_name": "Yuri Zubov",
          "author_login": "yuri-zubov",
          "committed_at": "2026-01-28T22:21:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e57cc6018f94231aabb47fd341acd1b40f1e71a",
          "body": "...since it is required to exist in order to merge PRs.",
          "is_bot": false,
          "headline": "CI: back to `windows-2022` for MRI job",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-01-25T17:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4f92fc45a018268c6a204aa0b13017d1e0f49ec",
          "body": "Gemini said this:\n\n> If a background thread or a Ractor is still \"alive\" or cleaning up when\n> the main test suite finishes, the shell might wait for that process to\n> fully relinquish control.",
          "is_bot": false,
          "headline": "CI: skip `Ractor` test on Windows to avoid job timeout",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-01-25T17:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6aa115f47b5f2e26e5a1dc04d28a9b5663c39a95",
          "body": null,
          "is_bot": false,
          "headline": "CI: add public_suffix v7 job",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-01-25T17:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b860736521cd3b46481db63ed5a3fcc4e1bee1f7",
          "body": "macos-latest is macos-15 is right now, I suspect it will move to\nmacos-26 at some point.",
          "is_bot": false,
          "headline": "CI: drop macos-14, add macos-26",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-01-25T17:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45dd2d3e581cb6fece8829534a1d14826b27e6b2",
          "body": "...and allow the jobs to fail.\n\nWe are not in a position to provide first class support for Windows and\nWindows+JRuby. It will be best effort when we notice them to fail. The\nCI issues are most often not related to addressable.\n\nRight now windows-2022 on Ruby 4 never makes any progress and never\nfinish. Around new Ruby releases, Windows support may lag behind.",
          "is_bot": false,
          "headline": "CI: Use Windows 2025 (`windows-latest`)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-01-25T17:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b5a7d6588d8e3a9740cb5916a182eda260a95cf",
          "body": "5 minutes is plenty looking back.",
          "is_bot": false,
          "headline": "CI: timeouts for all jobs",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-01-25T17:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5fc1d931e7fdc79d878f240fa4706b89cb01e171",
          "body": "It happend in 2015 with 5b241f6c41987ad5c007dfd6bc6b3903c95b055d\n\nI think it is more confusing than helping. Most people know that you use\nBundler to install gems listed in a Gemfile. This requirement also makes\nit harder to build the gem with newer Bundler.",
          "is_bot": false,
          "headline": "No need for bundler as development dependency",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-01-25T17:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2802fea3f1a311dc75c820a49fe460b83084b38",
          "body": "Latest truffleruby is at 33 now: https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.1",
          "is_bot": false,
          "headline": "CI: test with modern truffleruby",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-01-25T17:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ca681a2b84a6c544a48560247018a4670d4cdc2",
          "body": null,
          "is_bot": false,
          "headline": "CI: test with Ruby 4",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2026-01-25T17:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6a5ae3cf7657f7261afa753f8349ef91090119e",
          "body": null,
          "is_bot": false,
          "headline": "Better `git diff` for gemspec job",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-12-03T09:15:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fdd62643848fcd3ed76a6518abe8e9510cdfc53e",
          "body": null,
          "is_bot": false,
          "headline": "Fix the indentation for some steps in the gemspec job",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-12-03T09:15:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ac197fa96c4ea643f6b11d1783d07596366a648",
          "body": "No need for strategy here as it require a matrix.\n\nMy bad in 305db8e383421cad21cb2eae2475d9062c395d02",
          "is_bot": false,
          "headline": "Fix broken test workflow",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-12-03T09:15:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "305db8e383421cad21cb2eae2475d9062c395d02",
          "body": null,
          "is_bot": false,
          "headline": "Update the gemspec after `unicode.data` removal",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-12-02T23:18:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a27b0df2ce7a6307cc6b17bf9a645010f3bf8256",
          "body": "Nothing references it since 1998e06c81d813eac30409497b04fc6d6f19d231\n\nThis saves ~150kiB and a bit of CPU at boot time.",
          "is_bot": false,
          "headline": "idna/pure: stop building the useless `COMPOSITION_TABLE`",
          "author_name": "Jean Boussier",
          "author_login": "byroot",
          "committed_at": "2025-11-25T21:19:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea0cdf73af5480e8d6e233f47874c6a7202b3fc5",
          "body": null,
          "is_bot": false,
          "headline": "Fix link in CHANGELOG, add missing space in RELEASING (#563)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-25T07:56:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "111af8e8d3260dbd5b10a2dfec42a4e129d18705",
          "body": null,
          "is_bot": false,
          "headline": "Update version, gemspec, and CHANGELOG for 2.8.8",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-25T07:32:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d923a5e9a7b20ed57199e9a37366446c7f8fde4f",
          "body": "https://www.w3.org/WAI/tutorials/page-structure/headings/\n\n- one h1 per page\n- level order (h1 > h2 > …)\n\nCo-authored-by: Antoine Marguerie <antoine@basesecrete.com>",
          "is_bot": false,
          "headline": "Fix heading levels in README and Changelog",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-25T07:32:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88f14727fffea367e3801e05f72d17f9079281a9",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v5...v6)\n\n---\nupdated-dependenc\n[…]\njor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Patrik Ragnarsson <patrik@starkast.net>",
          "is_bot": true,
          "headline": "Bump actions/checkout from 5 to 6 (#560)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-11-24T22:32:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22528139b10c9697a4790f334d9323ecc02c59fe",
          "body": "Ref: 1eb715d16c93987f5feb5507ad88f6a7cd708b61\n\nIt seems like this data was initially YAML, but 13 years ago\nvarious version of libyaml had issues, so Marshal was used.\n\nThe problem with marshal is it's a binary format, so while this\ndata has no reason to change, it's hard to see what's in it.\n\nI think a simple Ruby constant would work just as well.\nOn my machine, both take as long to load, but many apps have\nbootsnap setup, so would probably load the ruby version faster\nthan the marshal one.",
          "is_bot": false,
          "headline": "Replace the `unicode.data` blob by a ruby constant (#561)",
          "author_name": "Jean Boussier",
          "author_login": "byroot",
          "committed_at": "2025-11-24T22:20:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af2d3f6e70b9551f94124e2dbab0d739127a8234",
          "body": "No breaking changes: https://github.com/weppos/publicsuffix-ruby/blob/main/CHANGELOG.md#700",
          "is_bot": false,
          "headline": "Allow `public_suffix` v7 (#558)",
          "author_name": "Earlopain",
          "author_login": "Earlopain",
          "committed_at": "2025-11-18T16:22:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aaa53fe23417b0bb5ce198ed081a70e70f240260",
          "body": "These public_suffix versions (2-4) was released 2016-2022, which\ncorresponds to Ruby 2.1-3.1.",
          "is_bot": false,
          "headline": "CI: restore older rubies for `public_suffix` jobs",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49fc47477dc39f816bee25419c687e9a1f0282ef",
          "body": null,
          "is_bot": false,
          "headline": "CI: fix `profile:template_match_memory` task for Ruby >2.7",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0f98d5f18e428a601b55f3740546293a18fc371",
          "body": "https://github.com/ruby/setup-ruby?tab=readme-ov-file#supported-version-syntax",
          "is_bot": false,
          "headline": "CI: use latest stable ruby outside the version matrix",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7cb10aae0353bc3c280aecaf3f62645b62c1ccce",
          "body": null,
          "is_bot": false,
          "headline": "CI: test with modern JVM Rubies",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd1adcfc8368ab188526f7160c6e74fe2ef4cafa",
          "body": null,
          "is_bot": false,
          "headline": "CI: less `ubuntu-22.04`, more `ubuntu-24.04`",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a031d9ac6687d204106ff50f0ec27be10ad8499",
          "body": "Close https://github.com/sporkmonger/addressable/issues/556",
          "is_bot": false,
          "headline": "CI: `Ractor` fix for Ruby 4.0",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d034e5e7cfe02c3267273b8523504c3b616bbb1c",
          "body": "> The macOS-13 based runner images are being deprecated, consider\n> switching to macOS-15 (macos-15-intel) or macOS 15 arm64 (macos-latest)\n> instead. For more details see https://github.com/actions/runner-images/issues/13046",
          "is_bot": false,
          "headline": "CI: replace `macos-13` job, EoL soon",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c2cc31fc8278bfbf7375823f0a1e9dc6b74a39d",
          "body": "> Windows Server 2019 has been retired. The Windows Server 2019 image\n> has been removed as of 2025-06-30. For more details, see\n> https://github.com/actions/runner-images/issues/12045",
          "is_bot": false,
          "headline": "CI: remove `windows-2019` job, has reached EoL",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "729214c0c00a97d842a4428bedb99ae945bc255e",
          "body": null,
          "is_bot": false,
          "headline": "CI: Add Ruby 3.4 job",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6502222616d40e4732f9d80da1e521a39e02839",
          "body": "So we don't have to bump it in this workflow, it should just always\nwork.",
          "is_bot": false,
          "headline": "CI: Use `ubuntu-latest` for release workflow",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "569609fbee47f550fbc62682e232d913801a34b8",
          "body": "Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/v3...v4)\n\n-\n[…]\ndependency-name: github/codeql-action\n  dependency-version: '4'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump github/codeql-action from 3 to 4",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4dbbaa84a382e908ae3fecd7676d9098cd8d73a9",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v4...v5)\n\n---\nupdated-dependenc\n[…]\n:\n- dependency-name: actions/checkout\n  dependency-version: '5'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump actions/checkout from 4 to 5",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-11-12T02:47:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3450895887d0a1770660d8831d1b6fcfed9bd9d6",
          "body": "CI: `ubuntu-20.04` -> `ubuntu-22.04`",
          "is_bot": false,
          "headline": "Merge pull request #549 from dentarg/ci/bump-ubuntu",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2025-02-16T18:11:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ae2a89f67e08863c86232dff4419de2735e511f",
          "body": "The macOS 12 Actions runner image has been removed:\nhttps://github.com/actions/runner-images/issues/10721",
          "is_bot": false,
          "headline": "CI: use `macos-12` -> `macos-13`",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-02-11T17:56:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab7b4fcf487e3c3c1e2eafdaea7a8ef3c2d2433a",
          "body": "setup-ruby says:\n\n> Unavailable version 22.1.0 for truffleruby on ubuntu-22.04",
          "is_bot": false,
          "headline": "CI: stop testing truffleruby 22.1",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-02-11T17:54:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b87da7c3fa2f16394b809765a08da572168ec7dd",
          "body": "setup-ruby can only provide Ruby 2.2 on Ubuntu 20.04 images, but that\nimage is going away: https://github.com/ruby/setup-ruby/issues/496#issuecomment-1520667671",
          "is_bot": false,
          "headline": "CI: stop testing Ruby 2.2",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-02-11T17:52:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f67f859e7f7ce972b83e85bf7a666305ed1d1c7",
          "body": "Ubuntu 20.04 on GitHub Actions is deprecated, stops working 2025-04-01:\nhttps://github.com/actions/runner-images/issues/11101",
          "is_bot": false,
          "headline": "CI: `ubuntu-20.04` -> `ubuntu-22.04`",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2025-02-11T17:45:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4229164843616783287ca359bbe38b574f1908a3",
          "body": "* This will allow sub-classing `Addressable::URI` and have the\r\n  sub-classes name show up in the `inspect` output.\r\n\r\n      class CustomURL < Addressable::URI\r\n\r\n        def custom_method\r\n\t  ...\r\n\tend\r\n\r\n      end\r\n\r\n      uri = CustomURL.parse(\"https://example.com\")\r\n      # => #<CustomURL:0x1824 URI:https://example.com>",
          "is_bot": false,
          "headline": "Fixed `Addressable::URI#inspect` to use `self.class`. (#544)",
          "author_name": "Postmodern",
          "author_login": "postmodern",
          "committed_at": "2024-08-22T15:47:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96c9da52c7831b7e43a0cd8ed8dfcbbbc812367e",
          "body": "CI: remove `macos-11` job",
          "is_bot": false,
          "headline": "Merge pull request #543 from dentarg/ci/rm/macos-11",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2024-08-22T02:06:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf71f2ea174a798ac8d0e55eb469fdfe5b4c1c31",
          "body": "> The macos-11 label has been deprecated and will no longer be available\n> after 28 June 2024.\n\nClose #540",
          "is_bot": false,
          "headline": "CI: remove `macos-11` job",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2024-06-29T15:58:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7930ece6e4ae266e67fc927f2e44e39f97fd5f22",
          "body": null,
          "is_bot": false,
          "headline": "Actually install libidn in release workflow (#539)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2024-06-21T10:45:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb5eb7493e2705b379b8d2a1f5457cd3c1daf22b",
          "body": "Use ubuntu-22.04 so that doesn't change to 24.04 that we haven't tested yet.",
          "is_bot": false,
          "headline": "Release workflow needs libidn (#538)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2024-06-21T10:38:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83bb919a77cd96e71ed9f68fa534f9e37f6adc19",
          "body": null,
          "is_bot": false,
          "headline": "Update version, gemspec, and CHANGELOG for 2.8.7 (#537)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2024-06-21T10:24:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ed8fe70affe43bc9cdb0a4d7bb7c158676c5dfb",
          "body": null,
          "is_bot": false,
          "headline": "Add Trusted Publishing workflow (#536)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2024-06-21T10:14:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b7197d95a37e59b2536e6f185577f23e2c6d0f0",
          "body": "Close #534",
          "is_bot": false,
          "headline": "Allow `public_suffix` 6 (#535)",
          "author_name": "Geremia Taglialatela",
          "author_login": "tagliala",
          "committed_at": "2024-06-21T09:12:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a0970754d99f1b764758daecefe8bceaa5a4217",
          "body": null,
          "is_bot": false,
          "headline": "CI: Add bigdecimal to Gemfile (#533)",
          "author_name": "Masato Nakamura",
          "author_login": "m-nakamura145",
          "committed_at": "2024-05-22T09:41:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b136f7d521401b5b88b253ded6537e46505a266a",
          "body": "Signed-off-by: Patrick Linnane <patrick@linnane.io>",
          "is_bot": false,
          "headline": "various: fix miscellaneous typos (#530)",
          "author_name": "Patrick Linnane",
          "author_login": "p-linnane",
          "committed_at": "2024-01-13T11:02:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42424ee1ba4450dd920bfc9ca9f72e328fb6e160",
          "body": null,
          "is_bot": false,
          "headline": "Add Ruby 3.3 to CI matrix (#529)",
          "author_name": "Masato Nakamura",
          "author_login": "m-nakamura145",
          "committed_at": "2023-12-29T08:59:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f692e49ef1fd3b149f51cf3f6a5f9939f8c3fcc",
          "body": "Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.\r\n- [Release notes](https://github.com/github/codeql-action/releases)\r\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/github/codeql-action/compare/v2...v3)\n[…]\n:production\r\n  update-type: version-update:semver-major\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump github/codeql-action from 2 to 3 (#528)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2023-12-19T09:36:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "35a0f5c38eed558997187dced2ba8ffffeb07f04",
          "body": "This diff appeared after I ran\r\n\r\n    VERSION=2.8.6 bundle exec rake gem:release",
          "is_bot": false,
          "headline": "gemspec: more `#freeze` and `rubygems_version` bump (#526)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2023-12-09T10:21:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63ab40ec2788c9879753bb15b1252b88c6ad0a62",
          "body": null,
          "is_bot": false,
          "headline": "Update version, gemspec, and CHANGELOG for 2.8.6 (#525)",
          "author_name": "Ian Ker-Seymer",
          "author_login": "ianks",
          "committed_at": "2023-12-09T10:09:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20879a973ce12dbd75224ed082bd9727122a9478",
          "body": "This improves the performance of `Addressable::URI#encode` and \r\n`Addressable::URI#encode_component` by memoizing the default character class \r\nregexes instead of recompiling them on every call. This results in the following \r\nperformance improvements:\r\n\r\n### `Addressable::URI#encode_component`\r\n\r\n\r\n[…]\nld)\r\n                             20.800k (± 1.2%) i/s -    105.213k in   5.058973s\r\n\r\n    Addressable::URI#encode (new)\r\n                             34.344k (± 2.3%) i/s -    174.794k in   5.092458s",
          "is_bot": false,
          "headline": "Memoize regexps for common character classes (#524)",
          "author_name": "Ian Ker-Seymer",
          "author_login": "ianks",
          "committed_at": "2023-11-15T17:51:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "60feb48d345ad0d4cec5991fe20c5f38f5252ce9",
          "body": "Future versions on https://rubygems.org/gems/addressable will link to the changelog like this:\r\n\r\nhttps://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md#v2.5.0",
          "is_bot": false,
          "headline": "Link directly to versioned changelog from gemspec (#522)",
          "author_name": "Simon",
          "author_login": "stoivo",
          "committed_at": "2023-09-22T07:52:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3635ccf5bc3da9e2be2bcefd3874e41316f3c73",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/v3...v4)\r\n\r\n---\r\nupdated-dep\n[…]\n:production\r\n  update-type: version-update:semver-major\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/checkout from 3 to 4 (#521)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2023-09-04T20:08:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7cd185ec53691ee0b8922c1ddf542725f1d54aa0",
          "body": null,
          "is_bot": false,
          "headline": "Update version, gemspec, and CHANGELOG for 2.8.5 (#518)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2023-08-03T08:52:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5a85142dcbdb47c377418f24cd6fd07ef9e2d9e",
          "body": "This should resolve the issues (#495, #497) with the files list once for\r\nall. The main problem was probably the \"[A-Z]*\" glob matching lowercase\r\nfiles (and directories) when using a case-insensitive filesystem\r\n(typical for macOS).\r\n\r\nInspired by https://github.com/sporkmonger/addressable/commit/0a6f09194a66f07e0b095ce87c844848547d497a\r\n\r\nCo-authored-by: Adrien Rey-Jarthon <jobs@adrienjarthon.com>",
          "is_bot": false,
          "headline": "Fix gemspec generation (#517)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2023-08-03T08:02:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e01456b27c7a41826a94ed2c5bc8c8d7ba869361",
          "body": "Fix: https://github.com/sporkmonger/addressable/issues/514\r\nFix: https://github.com/oracle/truffleruby/issues/3166\r\n\r\nThese hashes lazily memoize percent encoded characters, this is an\r\nissue on GVL-less Ruby implementations as it can cause concurrent\r\naccess.\r\n\r\nBut these are actually quite wastefu\n[…]\n single byte\r\nso rather than use string keys are lazily memoize these, we can precompute\r\ntwo static arrays of 255 elements once and for all.\r\n\r\nCo-authored-by: Jean Boussier <jean.boussier@gmail.com>",
          "is_bot": false,
          "headline": "Fix thread safety issue with encoding tables (#515)",
          "author_name": "Jean byroot Boussier",
          "author_login": "casperisfine",
          "committed_at": "2023-07-31T18:45:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cf2153e362cb59a5032e4ccf2f91f3a1821f68b2",
          "body": "It currently crashes: https://github.com/sporkmonger/addressable/pull/515#issuecomment-1658516160",
          "is_bot": false,
          "headline": "Allow ruby-head to fail (#516)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2023-07-31T15:27:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b56cef3e69bb1294ac4e31dad150e910b05f607f",
          "body": "If it's an anonymous objects, when serialized and restored by Marshal\r\nor YAML, the restored instance has a different anonymous object as ivar values.\r\n\r\nThe simplest fix for this is to use a named module.\r\n\r\nCo-authored-by: Jean Boussier <jean.boussier@gmail.com>",
          "is_bot": false,
          "headline": "Define URI::NONE as a module to avoid serialization issues (#509)",
          "author_name": "Jean byroot Boussier",
          "author_login": "casperisfine",
          "committed_at": "2023-05-19T21:23:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "736c42a97f0d48685ad834725e151da89d55b910",
          "body": "Ref: https://github.com/sporkmonger/addressable/pull/486\r\n\r\nFollowing the introduction of `NONE` flags, `Addressable::URI`\r\ninstance can no longer be correctly serialized with YAML.\r\n\r\nIt appear to work, but `NONE` is serialized as `!ruby/object {}`,\r\nso when the YAML is parsed back, the attributes are assigned a\r\ndistinct anonymous object.\r\n\r\nCo-authored-by: Jean Boussier <jean.boussier@gmail.com>",
          "is_bot": false,
          "headline": "Fix YAML serialization (#508)",
          "author_name": "Jean byroot Boussier",
          "author_login": "casperisfine",
          "committed_at": "2023-05-19T21:15:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e91b64e1ab36dccacd8e339a84e89684ed5bbb3e",
          "body": null,
          "is_bot": false,
          "headline": "Update version, gemspec, and CHANGELOG for 2.8.4 (#505)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2023-04-09T15:01:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b460cb7dae6cc7f272e9840c6c1afe26efc00ed6",
          "body": "As discussed in https://github.com/sporkmonger/addressable/pull/492#discussion_r1157346135, this change restores `unicode_normalize_kc` as a deprecated method (in case some people where using it). Example of the produced warning:\r\n```\r\nNOTE: Addressable::IDNA.unicode_normalize_kc is deprecated; use String#unicode_normalize(:nfkc) instead. It will be removed on or after 2023-04.\r\nAddressable::IDNA.unicode_normalize_kc called from benchmark/unicode_normalize.rb:17.\r\n```",
          "is_bot": false,
          "headline": "restore unicode_normalize_kc as a deprecated method (#504)",
          "author_name": "Adrien Rey-Jarthon",
          "author_login": "jarthod",
          "committed_at": "2023-04-09T14:46:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68c60e380fe6218100898d73c75b0f4e54340d3e",
          "body": null,
          "is_bot": false,
          "headline": "Update version, gemspec, and CHANGELOG for 2.8.3 (#503)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2023-04-04T21:09:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bfafba8a05b46c0716ade59dc57a83a7de68cbad",
          "body": "This is legacy due to ruby 1.8 unordered hash so it's not necessary any more since Ruby 1.9, confirmed by this commit which introduced it: ccfce40\r\n\r\nAs addressable only supports ruby 2.2+ now, I believe we can remove this to make these specs easier to read and modify.",
          "is_bot": false,
          "headline": "Simplify template specs by removing the 1.8 unordered hash fix (#500)",
          "author_name": "Adrien Rey-Jarthon",
          "author_login": "jarthod",
          "committed_at": "2023-04-04T12:03:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c00d58b084597ef53c7621d866b39dd1c7aa133c",
          "body": "Close #498",
          "is_bot": false,
          "headline": "Fix template expand level 2 hash support for non-string objects (#499)",
          "author_name": "Adrien Rey-Jarthon",
          "author_login": "jarthod",
          "committed_at": "2023-04-04T11:52:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bcaf766b0a91d889d0a0bfc5cfbdc07bd376924b",
          "body": "The result after running `rake gem:release`.\r\n\r\nRemoved:\r\n\r\n    [\"benchmark\", \"data\", \"gemfiles\", \"lib\", \"lib/addressable\", \"lib/addressable/idna\", \"spec\", \"spec/addressable\", \"tasks\"]",
          "is_bot": false,
          "headline": "Correct files list in gemspec (#497)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2023-04-01T10:48:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5622589d27fe730d47a6f8ea48e791aff7dadba4",
          "body": "Ran `bundle exec rake gem:gemspec` on Ruby 3.2.1 to update the gemspec.\r\n\r\nNot sure why list of files changed, but it has happened before:\r\nhttps://github.com/sporkmonger/addressable/pull/466#discussion_r928663411\r\n\r\nList extended this time with\r\n\r\n    [\"addressable.gemspec\", \"benchmark\", \"data\", \"gemfiles\", \"lib\", \"spec\", \"tasks\"]\r\n\r\nExclude `coverage` directory from files list as it is ignored by git.",
          "is_bot": false,
          "headline": "Update version, gemspec, and CHANGELOG for 2.8.2 (#495)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2023-04-01T10:12:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c22f258c8acb6750ef6b1b0487ffcc1c3fdb874",
          "body": "Use ruby unicode normalize to avoid libidn C problems and heavy legacy ruby code",
          "is_bot": false,
          "headline": "Merge pull request #492 from jarthod/fix-null-normalization-408",
          "author_name": "Bob Aman",
          "author_login": "sporkmonger",
          "committed_at": "2023-03-14T21:55:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1998e06c81d813eac30409497b04fc6d6f19d231",
          "body": "…y ruby code",
          "is_bot": false,
          "headline": "Use ruby unicode normalize to avoid libidn C problems and heavy legac…",
          "author_name": "Adrien Rey-Jarthon",
          "author_login": "jarthod",
          "committed_at": "2023-02-20T10:35:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fdd676753fb2f44c9d7e0953c97c3e6becfb36a",
          "body": "It is not a supported release anymore, and it does not work with latest bundler (2.4): https://github.com/ruby/setup-ruby/issues/433#issuecomment-1367991816\r\n\r\nClose #489",
          "is_bot": false,
          "headline": "CI: remove truffleruby-21.3 from matrix (#490)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2023-01-03T10:41:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03aafa6ff6ed79954ea005db952cf0d5e175eeb7",
          "body": "Co-authored-by: Patrik Ragnarsson <patrik@starkast.net>",
          "is_bot": false,
          "headline": "Add Ruby 3.2 to the CI matrix (#487)",
          "author_name": "Peter Goldstein",
          "author_login": "petergoldstein",
          "committed_at": "2022-12-29T14:39:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d22034f50fbfe2f1a48580e08e6983ff08e3ce30",
          "body": "Allow TruffleRuby 21.3 to fail for now (can't use latest Bundler release).",
          "is_bot": false,
          "headline": "Add JRuby 9.4, TruffleRuby 22.2, 22.3 (#488)",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2022-12-29T11:06:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eac45f96e0cfcd8f078cade2fc7c4785ccd3dcdb",
          "body": null,
          "is_bot": false,
          "headline": "Improve code style (#482)",
          "author_name": "Daniel Pepper",
          "author_login": "dpep",
          "committed_at": "2022-12-15T21:26:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32bd534cd75ffdeadc0e19d620cb9d3a76a21d40",
          "body": "There is an edge case where the block in defer_validation could raises an exception and validation_deferred isn't reset properly. Perhaps contrived, but I thought it worth addressing.\r\n\r\nCo-authored-by: Patrik Ragnarsson <patrik@starkast.net>",
          "is_bot": false,
          "headline": "Ensure reset of deferred validation (#481)",
          "author_name": "Daniel Pepper",
          "author_login": "dpep",
          "committed_at": "2022-12-15T16:55:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6f628876114b10ee85957ef79ca3e1db3453a03",
          "body": "Improve cache hits and JIT friendliness",
          "is_bot": false,
          "headline": "Merge pull request #486 from tenderlove/better-iv",
          "author_name": "Patrik Ragnarsson",
          "author_login": "dentarg",
          "committed_at": "2022-12-15T09:51:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8eb40a78d5c22c1511ce37c4af3ee60bb659fcac",
          "body": "`defined?` always returns true for local variables, so there's no need\nto check these",
          "is_bot": false,
          "headline": "Remove defined? checks",
          "author_name": "Aaron Patterson",
          "author_login": "tenderlove",
          "committed_at": "2022-12-15T00:43:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac2d9edce2932b2fa11a50e81b492eaeea6520c0",
          "body": null,
          "is_bot": false,
          "headline": "use attr_readers",
          "author_name": "Aaron Patterson",
          "author_login": "tenderlove",
          "committed_at": "2022-12-15T00:43:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 0,
      "commits_last_year": 55,
      "latest_release_at": null,
      "latest_release_tag": null,
      "releases_from_tags": false,
      "days_since_last_push": 24,
      "active_weeks_last_year": 13,
      "days_since_latest_release": null,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "addressable",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [],
          "ecosystem": "rubygems",
          "matches_repo": true,
          "registry_url": "https://rubygems.org/gems/addressable",
          "is_deprecated": false,
          "latest_version": "2.9.0",
          "repository_url": "https://github.com/sporkmonger/addressable",
          "versions_count": 48,
          "total_downloads": 1225594015,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2009-07-25T18:34:57Z",
          "latest_published_at": "2026-04-05T03:41:55.596000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 107
        }
      ]
    },
    "popularity": {
      "forks": 279,
      "stars": 1611,
      "watchers": 30,
      "fork_history": {
        "days": [
          {
            "date": "2009-04-10",
            "count": 1
          },
          {
            "date": "2009-05-07",
            "count": 1
          },
          {
            "date": "2009-09-27",
            "count": 1
          },
          {
            "date": "2010-01-07",
            "count": 1
          },
          {
            "date": "2010-01-30",
            "count": 1
          },
          {
            "date": "2010-04-20",
            "count": 1
          },
          {
            "date": "2010-07-12",
            "count": 1
          },
          {
            "date": "2010-07-19",
            "count": 1
          },
          {
            "date": "2010-09-23",
            "count": 1
          },
          {
            "date": "2010-11-18",
            "count": 1
          },
          {
            "date": "2010-12-16",
            "count": 1
          },
          {
            "date": "2011-02-10",
            "count": 1
          },
          {
            "date": "2011-03-26",
            "count": 1
          },
          {
            "date": "2011-03-29",
            "count": 1
          },
          {
            "date": "2011-04-26",
            "count": 1
          },
          {
            "date": "2011-05-22",
            "count": 1
          },
          {
            "date": "2011-06-14",
            "count": 1
          },
          {
            "date": "2011-07-27",
            "count": 1
          },
          {
            "date": "2011-08-04",
            "count": 1
          },
          {
            "date": "2011-08-16",
            "count": 1
          },
          {
            "date": "2011-09-07",
            "count": 1
          },
          {
            "date": "2011-09-19",
            "count": 1
          },
          {
            "date": "2011-10-21",
            "count": 1
          },
          {
            "date": "2011-10-24",
            "count": 1
          },
          {
            "date": "2011-12-07",
            "count": 1
          },
          {
            "date": "2011-12-15",
            "count": 1
          },
          {
            "date": "2012-01-13",
            "count": 1
          },
          {
            "date": "2012-02-23",
            "count": 1
          },
          {
            "date": "2012-03-29",
            "count": 1
          },
          {
            "date": "2012-05-02",
            "count": 1
          },
          {
            "date": "2012-05-16",
            "count": 1
          },
          {
            "date": "2012-07-17",
            "count": 1
          },
          {
            "date": "2012-08-03",
            "count": 1
          },
          {
            "date": "2012-09-23",
            "count": 1
          },
          {
            "date": "2012-09-27",
            "count": 1
          },
          {
            "date": "2012-10-15",
            "count": 1
          },
          {
            "date": "2012-11-08",
            "count": 1
          },
          {
            "date": "2012-11-13",
            "count": 1
          },
          {
            "date": "2012-12-18",
            "count": 1
          },
          {
            "date": "2013-01-09",
            "count": 1
          },
          {
            "date": "2013-02-04",
            "count": 1
          },
          {
            "date": "2013-03-22",
            "count": 1
          },
          {
            "date": "2013-04-14",
            "count": 1
          },
          {
            "date": "2013-05-08",
            "count": 1
          },
          {
            "date": "2013-06-17",
            "count": 1
          },
          {
            "date": "2013-06-18",
            "count": 1
          },
          {
            "date": "2013-06-25",
            "count": 1
          },
          {
            "date": "2013-06-27",
            "count": 1
          },
          {
            "date": "2013-07-12",
            "count": 1
          },
          {
            "date": "2013-07-21",
            "count": 1
          },
          {
            "date": "2013-07-24",
            "count": 1
          },
          {
            "date": "2013-08-16",
            "count": 2
          },
          {
            "date": "2013-10-07",
            "count": 1
          },
          {
            "date": "2013-10-17",
            "count": 1
          },
          {
            "date": "2014-02-21",
            "count": 1
          },
          {
            "date": "2014-03-12",
            "count": 1
          },
          {
            "date": "2014-06-06",
            "count": 1
          },
          {
            "date": "2014-06-25",
            "count": 1
          },
          {
            "date": "2014-08-25",
            "count": 1
          },
          {
            "date": "2014-08-29",
            "count": 1
          },
          {
            "date": "2014-09-24",
            "count": 1
          },
          {
            "date": "2014-10-15",
            "count": 1
          },
          {
            "date": "2014-10-25",
            "count": 1
          },
          {
            "date": "2014-10-29",
            "count": 1
          },
          {
            "date": "2015-01-07",
            "count": 1
          },
          {
            "date": "2015-01-13",
            "count": 1
          },
          {
            "date": "2015-01-17",
            "count": 1
          },
          {
            "date": "2015-02-12",
            "count": 1
          },
          {
            "date": "2015-02-25",
            "count": 1
          },
          {
            "date": "2015-03-14",
            "count": 1
          },
          {
            "date": "2015-03-29",
            "count": 1
          },
          {
            "date": "2015-05-01",
            "count": 1
          },
          {
            "date": "2015-05-11",
            "count": 1
          },
          {
            "date": "2015-05-15",
            "count": 1
          },
          {
            "date": "2015-05-28",
            "count": 1
          },
          {
            "date": "2015-05-31",
            "count": 1
          },
          {
            "date": "2015-06-01",
            "count": 1
          },
          {
            "date": "2015-06-09",
            "count": 1
          },
          {
            "date": "2015-06-19",
            "count": 1
          },
          {
            "date": "2015-07-01",
            "count": 1
          },
          {
            "date": "2015-07-16",
            "count": 1
          },
          {
            "date": "2015-08-31",
            "count": 1
          },
          {
            "date": "2015-09-11",
            "count": 1
          },
          {
            "date": "2015-09-14",
            "count": 1
          },
          {
            "date": "2015-09-29",
            "count": 1
          },
          {
            "date": "2015-10-01",
            "count": 1
          },
          {
            "date": "2015-10-07",
            "count": 1
          },
          {
            "date": "2015-10-12",
            "count": 1
          },
          {
            "date": "2015-12-07",
            "count": 1
          },
          {
            "date": "2015-12-18",
            "count": 1
          },
          {
            "date": "2015-12-23",
            "count": 1
          },
          {
            "date": "2015-12-26",
            "count": 1
          },
          {
            "date": "2016-01-19",
            "count": 1
          },
          {
            "date": "2016-01-29",
            "count": 1
          },
          {
            "date": "2016-01-31",
            "count": 1
          },
          {
            "date": "2016-02-22",
            "count": 1
          },
          {
            "date": "2016-02-23",
            "count": 1
          },
          {
            "date": "2016-03-01",
            "count": 1
          },
          {
            "date": "2016-03-17",
            "count": 1
          },
          {
            "date": "2016-04-24",
            "count": 1
          },
          {
            "date": "2016-06-16",
            "count": 1
          },
          {
            "date": "2016-07-18",
            "count": 1
          },
          {
            "date": "2016-08-17",
            "count": 1
          },
          {
            "date": "2016-08-22",
            "count": 1
          },
          {
            "date": "2016-08-24",
            "count": 1
          },
          {
            "date": "2016-09-08",
            "count": 1
          },
          {
            "date": "2016-09-23",
            "count": 1
          },
          {
            "date": "2016-11-03",
            "count": 1
          },
          {
            "date": "2016-11-08",
            "count": 1
          },
          {
            "date": "2016-11-10",
            "count": 1
          },
          {
            "date": "2016-11-11",
            "count": 1
          },
          {
            "date": "2016-12-14",
            "count": 1
          },
          {
            "date": "2016-12-18",
            "count": 1
          },
          {
            "date": "2017-01-21",
            "count": 1
          },
          {
            "date": "2017-02-21",
            "count": 1
          },
          {
            "date": "2017-02-23",
            "count": 1
          },
          {
            "date": "2017-03-28",
            "count": 1
          },
          {
            "date": "2017-04-20",
            "count": 1
          },
          {
            "date": "2017-06-22",
            "count": 1
          },
          {
            "date": "2017-07-02",
            "count": 1
          },
          {
            "date": "2017-07-04",
            "count": 1
          },
          {
            "date": "2017-07-05",
            "count": 1
          },
          {
            "date": "2017-09-08",
            "count": 1
          },
          {
            "date": "2017-10-03",
            "count": 1
          },
          {
            "date": "2017-10-16",
            "count": 1
          },
          {
            "date": "2017-11-03",
            "count": 1
          },
          {
            "date": "2017-11-09",
            "count": 1
          },
          {
            "date": "2017-11-10",
            "count": 1
          },
          {
            "date": "2017-11-20",
            "count": 1
          },
          {
            "date": "2017-11-22",
            "count": 1
          },
          {
            "date": "2017-11-29",
            "count": 1
          },
          {
            "date": "2017-12-23",
            "count": 1
          },
          {
            "date": "2017-12-26",
            "count": 1
          },
          {
            "date": "2018-01-16",
            "count": 1
          },
          {
            "date": "2018-01-25",
            "count": 1
          },
          {
            "date": "2018-02-03",
            "count": 1
          },
          {
            "date": "2018-02-12",
            "count": 1
          },
          {
            "date": "2018-02-18",
            "count": 1
          },
          {
            "date": "2018-03-05",
            "count": 2
          },
          {
            "date": "2018-07-20",
            "count": 1
          },
          {
            "date": "2018-08-03",
            "count": 1
          },
          {
            "date": "2018-08-17",
            "count": 1
          },
          {
            "date": "2018-09-02",
            "count": 1
          },
          {
            "date": "2018-10-17",
            "count": 1
          },
          {
            "date": "2018-11-21",
            "count": 1
          },
          {
            "date": "2018-11-29",
            "count": 1
          },
          {
            "date": "2018-11-30",
            "count": 1
          },
          {
            "date": "2019-02-18",
            "count": 1
          },
          {
            "date": "2019-03-12",
            "count": 1
          },
          {
            "date": "2019-03-17",
            "count": 1
          },
          {
            "date": "2019-04-17",
            "count": 1
          },
          {
            "date": "2019-05-03",
            "count": 1
          },
          {
            "date": "2019-06-13",
            "count": 1
          },
          {
            "date": "2019-07-10",
            "count": 1
          },
          {
            "date": "2019-07-21",
            "count": 1
          },
          {
            "date": "2019-08-07",
            "count": 1
          },
          {
            "date": "2019-09-09",
            "count": 1
          },
          {
            "date": "2019-09-30",
            "count": 1
          },
          {
            "date": "2019-11-26",
            "count": 1
          },
          {
            "date": "2019-12-21",
            "count": 1
          },
          {
            "date": "2020-04-13",
            "count": 1
          },
          {
            "date": "2020-04-24",
            "count": 1
          },
          {
            "date": "2020-05-01",
            "count": 1
          },
          {
            "date": "2020-05-16",
            "count": 1
          },
          {
            "date": "2020-05-27",
            "count": 1
          },
          {
            "date": "2020-05-28",
            "count": 1
          },
          {
            "date": "2020-06-12",
            "count": 1
          },
          {
            "date": "2020-06-19",
            "count": 1
          },
          {
            "date": "2020-06-24",
            "count": 1
          },
          {
            "date": "2020-07-05",
            "count": 1
          },
          {
            "date": "2020-07-28",
            "count": 1
          },
          {
            "date": "2020-07-30",
            "count": 2
          },
          {
            "date": "2020-11-11",
            "count": 1
          },
          {
            "date": "2020-11-25",
            "count": 1
          },
          {
            "date": "2020-12-28",
            "count": 1
          },
          {
            "date": "2021-01-06",
            "count": 1
          },
          {
            "date": "2021-01-30",
            "count": 1
          },
          {
            "date": "2021-02-08",
            "count": 1
          },
          {
            "date": "2021-02-12",
            "count": 1
          },
          {
            "date": "2021-07-12",
            "count": 1
          },
          {
            "date": "2021-07-13",
            "count": 3
          },
          {
            "date": "2021-07-14",
            "count": 2
          },
          {
            "date": "2021-07-15",
            "count": 1
          },
          {
            "date": "2021-07-18",
            "count": 1
          },
          {
            "date": "2021-07-19",
            "count": 1
          },
          {
            "date": "2021-07-23",
            "count": 1
          },
          {
            "date": "2021-07-27",
            "count": 2
          },
          {
            "date": "2021-08-05",
            "count": 1
          },
          {
            "date": "2021-08-10",
            "count": 1
          },
          {
            "date": "2021-08-11",
            "count": 1
          },
          {
            "date": "2021-08-23",
            "count": 1
          },
          {
            "date": "2021-08-25",
            "count": 2
          },
          {
            "date": "2021-09-02",
            "count": 1
          },
          {
            "date": "2021-09-12",
            "count": 1
          },
          {
            "date": "2021-09-13",
            "count": 1
          },
          {
            "date": "2021-09-15",
            "count": 2
          },
          {
            "date": "2021-09-21",
            "count": 1
          },
          {
            "date": "2021-09-23",
            "count": 1
          },
          {
            "date": "2021-10-25",
            "count": 1
          },
          {
            "date": "2021-10-27",
            "count": 1
          },
          {
            "date": "2021-11-04",
            "count": 1
          },
          {
            "date": "2021-12-06",
            "count": 1
          },
          {
            "date": "2021-12-08",
            "count": 1
          },
          {
            "date": "2021-12-31",
            "count": 1
          },
          {
            "date": "2022-01-02",
            "count": 1
          },
          {
            "date": "2022-01-03",
            "count": 1
          },
          {
            "date": "2022-01-05",
            "count": 1
          },
          {
            "date": "2022-01-12",
            "count": 1
          },
          {
            "date": "2022-01-15",
            "count": 1
          },
          {
            "date": "2022-01-20",
            "count": 1
          },
          {
            "date": "2022-01-31",
            "count": 1
          },
          {
            "date": "2022-03-22",
            "count": 1
          },
          {
            "date": "2022-03-25",
            "count": 1
          },
          {
            "date": "2022-06-27",
            "count": 1
          },
          {
            "date": "2022-07-02",
            "count": 1
          },
          {
            "date": "2022-07-10",
            "count": 1
          },
          {
            "date": "2022-09-09",
            "count": 1
          },
          {
            "date": "2022-10-07",
            "count": 1
          },
          {
            "date": "2022-10-24",
            "count": 1
          },
          {
            "date": "2022-10-29",
            "count": 1
          },
          {
            "date": "2022-11-27",
            "count": 1
          },
          {
            "date": "2022-12-08",
            "count": 1
          },
          {
            "date": "2022-12-15",
            "count": 1
          },
          {
            "date": "2022-12-22",
            "count": 1
          },
          {
            "date": "2023-01-11",
            "count": 1
          },
          {
            "date": "2023-02-11",
            "count": 1
          },
          {
            "date": "2023-04-27",
            "count": 1
          },
          {
            "date": "2023-05-04",
            "count": 2
          },
          {
            "date": "2023-05-10",
            "count": 1
          },
          {
            "date": "2023-07-23",
            "count": 1
          },
          {
            "date": "2023-09-10",
            "count": 1
          },
          {
            "date": "2023-09-13",
            "count": 1
          },
          {
            "date": "2023-11-09",
            "count": 1
          },
          {
            "date": "2023-11-11",
            "count": 1
          },
          {
            "date": "2023-11-15",
            "count": 1
          },
          {
            "date": "2023-12-29",
            "count": 1
          },
          {
            "date": "2024-03-19",
            "count": 1
          },
          {
            "date": "2024-04-09",
            "count": 1
          },
          {
            "date": "2024-05-09",
            "count": 1
          },
          {
            "date": "2024-05-17",
            "count": 1
          },
          {
            "date": "2024-06-18",
            "count": 1
          },
          {
            "date": "2024-07-21",
            "count": 3
          },
          {
            "date": "2024-08-13",
            "count": 1
          },
          {
            "date": "2024-11-18",
            "count": 1
          },
          {
            "date": "2024-12-17",
            "count": 1
          },
          {
            "date": "2024-12-27",
            "count": 1
          },
          {
            "date": "2025-02-15",
            "count": 1
          },
          {
            "date": "2025-03-06",
            "count": 1
          },
          {
            "date": "2025-05-06",
            "count": 1
          },
          {
            "date": "2025-05-15",
            "count": 1
          },
          {
            "date": "2025-11-18",
            "count": 1
          },
          {
            "date": "2025-11-22",
            "count": 1
          },
          {
            "date": "2025-11-24",
            "count": 1
          },
          {
            "date": "2025-12-15",
            "count": 1
          },
          {
            "date": "2026-04-10",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 1
          },
          {
            "date": "2026-04-14",
            "count": 1
          },
          {
            "date": "2026-04-29",
            "count": 1
          },
          {
            "date": "2026-05-01",
            "count": 1
          },
          {
            "date": "2026-07-10",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 272,
        "total_forks": 279
      },
      "star_history": {
        "days": [
          {
            "date": "2015-04-29",
            "count": 1
          },
          {
            "date": "2015-05-01",
            "count": 2
          },
          {
            "date": "2015-05-05",
            "count": 2
          },
          {
            "date": "2015-05-08",
            "count": 1
          },
          {
            "date": "2015-05-10",
            "count": 1
          },
          {
            "date": "2015-05-11",
            "count": 1
          },
          {
            "date": "2015-05-12",
            "count": 1
          },
          {
            "date": "2015-05-13",
            "count": 1
          },
          {
            "date": "2015-05-16",
            "count": 1
          },
          {
            "date": "2015-05-17",
            "count": 1
          },
          {
            "date": "2015-05-19",
            "count": 1
          },
          {
            "date": "2015-05-20",
            "count": 3
          },
          {
            "date": "2015-05-22",
            "count": 1
          },
          {
            "date": "2015-05-25",
            "count": 1
          },
          {
            "date": "2015-06-03",
            "count": 2
          },
          {
            "date": "2015-06-05",
            "count": 2
          },
          {
            "date": "2015-06-10",
            "count": 2
          },
          {
            "date": "2015-06-15",
            "count": 2
          },
          {
            "date": "2015-06-16",
            "count": 3
          },
          {
            "date": "2015-06-18",
            "count": 2
          },
          {
            "date": "2015-06-19",
            "count": 2
          },
          {
            "date": "2015-06-21",
            "count": 2
          },
          {
            "date": "2015-06-22",
            "count": 4
          },
          {
            "date": "2015-06-23",
            "count": 2
          },
          {
            "date": "2015-06-26",
            "count": 2
          },
          {
            "date": "2015-06-30",
            "count": 1
          },
          {
            "date": "2015-07-02",
            "count": 1
          },
          {
            "date": "2015-07-13",
            "count": 1
          },
          {
            "date": "2015-07-14",
            "count": 2
          },
          {
            "date": "2015-07-16",
            "count": 1
          },
          {
            "date": "2015-07-17",
            "count": 1
          },
          {
            "date": "2015-07-24",
            "count": 1
          },
          {
            "date": "2015-07-28",
            "count": 2
          },
          {
            "date": "2015-07-29",
            "count": 1
          },
          {
            "date": "2015-08-01",
            "count": 1
          },
          {
            "date": "2015-08-03",
            "count": 1
          },
          {
            "date": "2015-08-04",
            "count": 1
          },
          {
            "date": "2015-08-06",
            "count": 1
          },
          {
            "date": "2015-08-07",
            "count": 1
          },
          {
            "date": "2015-08-08",
            "count": 2
          },
          {
            "date": "2015-08-11",
            "count": 1
          },
          {
            "date": "2015-08-12",
            "count": 2
          },
          {
            "date": "2015-08-17",
            "count": 1
          },
          {
            "date": "2015-08-20",
            "count": 1
          },
          {
            "date": "2015-08-21",
            "count": 1
          },
          {
            "date": "2015-08-24",
            "count": 1
          },
          {
            "date": "2015-09-02",
            "count": 1
          },
          {
            "date": "2015-09-04",
            "count": 1
          },
          {
            "date": "2015-09-06",
            "count": 2
          },
          {
            "date": "2015-09-09",
            "count": 1
          },
          {
            "date": "2015-09-11",
            "count": 2
          },
          {
            "date": "2015-09-12",
            "count": 1
          },
          {
            "date": "2015-09-13",
            "count": 1
          },
          {
            "date": "2015-09-14",
            "count": 1
          },
          {
            "date": "2015-09-16",
            "count": 2
          },
          {
            "date": "2015-09-17",
            "count": 1
          },
          {
            "date": "2015-09-18",
            "count": 2
          },
          {
            "date": "2015-09-21",
            "count": 1
          },
          {
            "date": "2015-09-25",
            "count": 1
          },
          {
            "date": "2015-09-29",
            "count": 1
          },
          {
            "date": "2015-09-30",
            "count": 1
          },
          {
            "date": "2015-10-04",
            "count": 1
          },
          {
            "date": "2015-10-07",
            "count": 1
          },
          {
            "date": "2015-10-09",
            "count": 1
          },
          {
            "date": "2015-10-21",
            "count": 1
          },
          {
            "date": "2015-10-26",
            "count": 1
          },
          {
            "date": "2015-10-29",
            "count": 2
          },
          {
            "date": "2015-11-05",
            "count": 1
          },
          {
            "date": "2015-11-06",
            "count": 2
          },
          {
            "date": "2015-11-08",
            "count": 1
          },
          {
            "date": "2015-11-09",
            "count": 2
          },
          {
            "date": "2015-11-11",
            "count": 2
          },
          {
            "date": "2015-11-12",
            "count": 1
          },
          {
            "date": "2015-11-19",
            "count": 2
          },
          {
            "date": "2015-11-26",
            "count": 2
          },
          {
            "date": "2015-12-02",
            "count": 1
          },
          {
            "date": "2015-12-04",
            "count": 1
          },
          {
            "date": "2015-12-08",
            "count": 1
          },
          {
            "date": "2015-12-09",
            "count": 2
          },
          {
            "date": "2015-12-10",
            "count": 2
          },
          {
            "date": "2015-12-13",
            "count": 1
          },
          {
            "date": "2015-12-16",
            "count": 2
          },
          {
            "date": "2015-12-21",
            "count": 1
          },
          {
            "date": "2015-12-22",
            "count": 2
          },
          {
            "date": "2015-12-25",
            "count": 2
          },
          {
            "date": "2015-12-27",
            "count": 2
          },
          {
            "date": "2015-12-29",
            "count": 2
          },
          {
            "date": "2016-01-02",
            "count": 1
          },
          {
            "date": "2016-01-11",
            "count": 1
          },
          {
            "date": "2016-01-12",
            "count": 1
          },
          {
            "date": "2016-01-14",
            "count": 2
          },
          {
            "date": "2016-01-15",
            "count": 1
          },
          {
            "date": "2016-01-20",
            "count": 1
          },
          {
            "date": "2016-01-21",
            "count": 1
          },
          {
            "date": "2016-01-23",
            "count": 1
          },
          {
            "date": "2016-01-24",
            "count": 2
          },
          {
            "date": "2016-01-27",
            "count": 1
          },
          {
            "date": "2016-01-31",
            "count": 1
          },
          {
            "date": "2016-02-01",
            "count": 2
          },
          {
            "date": "2016-02-05",
            "count": 1
          },
          {
            "date": "2016-02-10",
            "count": 2
          },
          {
            "date": "2016-02-12",
            "count": 2
          },
          {
            "date": "2016-02-13",
            "count": 1
          },
          {
            "date": "2016-02-15",
            "count": 1
          },
          {
            "date": "2016-02-16",
            "count": 1
          },
          {
            "date": "2016-02-23",
            "count": 2
          },
          {
            "date": "2016-02-24",
            "count": 1
          },
          {
            "date": "2016-02-27",
            "count": 1
          },
          {
            "date": "2016-02-28",
            "count": 1
          },
          {
            "date": "2016-03-03",
            "count": 1
          },
          {
            "date": "2016-03-04",
            "count": 1
          },
          {
            "date": "2016-03-10",
            "count": 1
          },
          {
            "date": "2016-03-14",
            "count": 2
          },
          {
            "date": "2016-03-16",
            "count": 1
          },
          {
            "date": "2016-03-21",
            "count": 1
          },
          {
            "date": "2016-03-28",
            "count": 1
          },
          {
            "date": "2016-03-29",
            "count": 2
          },
          {
            "date": "2016-04-03",
            "count": 1
          },
          {
            "date": "2016-04-08",
            "count": 2
          },
          {
            "date": "2016-04-09",
            "count": 1
          },
          {
            "date": "2016-04-13",
            "count": 2
          },
          {
            "date": "2016-04-14",
            "count": 1
          },
          {
            "date": "2016-04-15",
            "count": 1
          },
          {
            "date": "2016-04-16",
            "count": 1
          },
          {
            "date": "2016-04-20",
            "count": 1
          },
          {
            "date": "2016-04-23",
            "count": 1
          },
          {
            "date": "2016-04-24",
            "count": 1
          },
          {
            "date": "2016-04-28",
            "count": 1
          },
          {
            "date": "2016-04-29",
            "count": 2
          },
          {
            "date": "2016-05-02",
            "count": 1
          },
          {
            "date": "2016-05-04",
            "count": 1
          },
          {
            "date": "2016-05-07",
            "count": 2
          },
          {
            "date": "2016-05-24",
            "count": 1
          },
          {
            "date": "2016-05-26",
            "count": 1
          },
          {
            "date": "2016-05-27",
            "count": 2
          },
          {
            "date": "2016-05-30",
            "count": 1
          },
          {
            "date": "2016-06-07",
            "count": 1
          },
          {
            "date": "2016-06-08",
            "count": 1
          },
          {
            "date": "2016-06-09",
            "count": 2
          },
          {
            "date": "2016-06-14",
            "count": 1
          },
          {
            "date": "2016-06-15",
            "count": 1
          },
          {
            "date": "2016-06-16",
            "count": 2
          },
          {
            "date": "2016-06-20",
            "count": 1
          },
          {
            "date": "2016-06-21",
            "count": 1
          },
          {
            "date": "2016-06-23",
            "count": 1
          },
          {
            "date": "2016-06-25",
            "count": 1
          },
          {
            "date": "2016-06-27",
            "count": 1
          },
          {
            "date": "2016-06-28",
            "count": 1
          },
          {
            "date": "2016-06-30",
            "count": 1
          },
          {
            "date": "2016-07-01",
            "count": 1
          },
          {
            "date": "2016-07-06",
            "count": 1
          },
          {
            "date": "2016-07-12",
            "count": 1
          },
          {
            "date": "2016-07-14",
            "count": 2
          },
          {
            "date": "2016-07-24",
            "count": 1
          },
          {
            "date": "2016-07-29",
            "count": 1
          },
          {
            "date": "2016-08-03",
            "count": 1
          },
          {
            "date": "2016-08-09",
            "count": 2
          },
          {
            "date": "2016-08-30",
            "count": 2
          },
          {
            "date": "2016-09-02",
            "count": 1
          },
          {
            "date": "2016-09-11",
            "count": 1
          },
          {
            "date": "2016-09-16",
            "count": 1
          },
          {
            "date": "2016-09-20",
            "count": 1
          },
          {
            "date": "2016-09-30",
            "count": 2
          },
          {
            "date": "2016-10-05",
            "count": 1
          },
          {
            "date": "2016-10-06",
            "count": 1
          },
          {
            "date": "2016-10-13",
            "count": 1
          },
          {
            "date": "2016-10-20",
            "count": 1
          },
          {
            "date": "2016-10-22",
            "count": 1
          },
          {
            "date": "2016-10-26",
            "count": 2
          },
          {
            "date": "2016-11-01",
            "count": 1
          },
          {
            "date": "2016-11-02",
            "count": 1
          },
          {
            "date": "2016-11-03",
            "count": 1
          },
          {
            "date": "2016-11-04",
            "count": 2
          },
          {
            "date": "2016-11-08",
            "count": 1
          },
          {
            "date": "2016-11-10",
            "count": 2
          },
          {
            "date": "2016-11-13",
            "count": 1
          },
          {
            "date": "2016-11-19",
            "count": 1
          },
          {
            "date": "2016-11-23",
            "count": 1
          },
          {
            "date": "2016-11-24",
            "count": 1
          },
          {
            "date": "2016-12-06",
            "count": 1
          },
          {
            "date": "2016-12-08",
            "count": 1
          },
          {
            "date": "2016-12-13",
            "count": 1
          },
          {
            "date": "2016-12-14",
            "count": 1
          },
          {
            "date": "2016-12-15",
            "count": 1
          },
          {
            "date": "2016-12-20",
            "count": 1
          },
          {
            "date": "2016-12-21",
            "count": 1
          },
          {
            "date": "2016-12-26",
            "count": 1
          },
          {
            "date": "2016-12-27",
            "count": 1
          },
          {
            "date": "2016-12-28",
            "count": 1
          },
          {
            "date": "2016-12-29",
            "count": 1
          },
          {
            "date": "2017-01-03",
            "count": 1
          },
          {
            "date": "2017-01-10",
            "count": 2
          },
          {
            "date": "2017-01-12",
            "count": 1
          },
          {
            "date": "2017-01-13",
            "count": 1
          },
          {
            "date": "2017-01-20",
            "count": 1
          },
          {
            "date": "2017-01-25",
            "count": 1
          },
          {
            "date": "2017-01-26",
            "count": 1
          },
          {
            "date": "2017-01-29",
            "count": 1
          },
          {
            "date": "2017-02-04",
            "count": 1
          },
          {
            "date": "2017-02-09",
            "count": 3
          },
          {
            "date": "2017-02-16",
            "count": 1
          },
          {
            "date": "2017-02-17",
            "count": 1
          },
          {
            "date": "2017-02-18",
            "count": 1
          },
          {
            "date": "2017-02-21",
            "count": 1
          },
          {
            "date": "2017-02-23",
            "count": 2
          },
          {
            "date": "2017-03-02",
            "count": 3
          },
          {
            "date": "2017-03-06",
            "count": 1
          },
          {
            "date": "2017-03-09",
            "count": 1
          },
          {
            "date": "2017-03-10",
            "count": 1
          },
          {
            "date": "2017-03-17",
            "count": 1
          },
          {
            "date": "2017-03-18",
            "count": 1
          },
          {
            "date": "2017-03-21",
            "count": 1
          },
          {
            "date": "2017-03-23",
            "count": 1
          },
          {
            "date": "2017-03-31",
            "count": 2
          },
          {
            "date": "2017-04-06",
            "count": 1
          },
          {
            "date": "2017-04-09",
            "count": 1
          },
          {
            "date": "2017-04-10",
            "count": 1
          },
          {
            "date": "2017-04-11",
            "count": 1
          },
          {
            "date": "2017-04-12",
            "count": 1
          },
          {
            "date": "2017-04-17",
            "count": 1
          },
          {
            "date": "2017-04-20",
            "count": 4
          },
          {
            "date": "2017-04-26",
            "count": 2
          },
          {
            "date": "2017-04-27",
            "count": 1
          },
          {
            "date": "2017-04-28",
            "count": 1
          },
          {
            "date": "2017-05-09",
            "count": 2
          },
          {
            "date": "2017-05-11",
            "count": 1
          },
          {
            "date": "2017-05-12",
            "count": 1
          },
          {
            "date": "2017-05-14",
            "count": 1
          },
          {
            "date": "2017-05-17",
            "count": 1
          },
          {
            "date": "2017-05-19",
            "count": 2
          },
          {
            "date": "2017-05-25",
            "count": 1
          },
          {
            "date": "2017-05-26",
            "count": 1
          },
          {
            "date": "2017-05-29",
            "count": 1
          },
          {
            "date": "2017-05-30",
            "count": 2
          },
          {
            "date": "2017-05-31",
            "count": 1
          },
          {
            "date": "2017-06-04",
            "count": 1
          },
          {
            "date": "2017-06-08",
            "count": 1
          },
          {
            "date": "2017-06-11",
            "count": 1
          },
          {
            "date": "2017-06-13",
            "count": 1
          },
          {
            "date": "2017-06-16",
            "count": 1
          },
          {
            "date": "2017-06-18",
            "count": 1
          },
          {
            "date": "2017-07-01",
            "count": 1
          },
          {
            "date": "2017-07-07",
            "count": 2
          },
          {
            "date": "2017-07-17",
            "count": 1
          },
          {
            "date": "2017-07-18",
            "count": 1
          },
          {
            "date": "2017-07-19",
            "count": 1
          },
          {
            "date": "2017-07-21",
            "count": 1
          },
          {
            "date": "2017-07-24",
            "count": 2
          },
          {
            "date": "2017-08-03",
            "count": 1
          },
          {
            "date": "2017-08-06",
            "count": 1
          },
          {
            "date": "2017-08-07",
            "count": 1
          },
          {
            "date": "2017-08-08",
            "count": 1
          },
          {
            "date": "2017-08-09",
            "count": 1
          },
          {
            "date": "2017-08-17",
            "count": 1
          },
          {
            "date": "2017-08-18",
            "count": 1
          },
          {
            "date": "2017-08-22",
            "count": 1
          },
          {
            "date": "2017-08-25",
            "count": 1
          },
          {
            "date": "2017-08-27",
            "count": 1
          },
          {
            "date": "2017-08-28",
            "count": 2
          },
          {
            "date": "2017-08-29",
            "count": 1
          },
          {
            "date": "2017-08-31",
            "count": 1
          },
          {
            "date": "2017-09-01",
            "count": 2
          },
          {
            "date": "2017-09-06",
            "count": 3
          },
          {
            "date": "2017-09-12",
            "count": 1
          },
          {
            "date": "2017-09-14",
            "count": 1
          },
          {
            "date": "2017-10-05",
            "count": 2
          },
          {
            "date": "2017-10-10",
            "count": 1
          },
          {
            "date": "2017-10-13",
            "count": 2
          },
          {
            "date": "2017-10-16",
            "count": 1
          },
          {
            "date": "2017-10-17",
            "count": 1
          },
          {
            "date": "2017-10-22",
            "count": 1
          },
          {
            "date": "2017-10-23",
            "count": 1
          },
          {
            "date": "2017-10-24",
            "count": 1
          },
          {
            "date": "2017-11-05",
            "count": 1
          },
          {
            "date": "2017-11-06",
            "count": 2
          },
          {
            "date": "2017-11-07",
            "count": 1
          },
          {
            "date": "2017-11-08",
            "count": 1
          },
          {
            "date": "2017-11-10",
            "count": 1
          },
          {
            "date": "2017-11-13",
            "count": 2
          },
          {
            "date": "2017-11-17",
            "count": 1
          },
          {
            "date": "2017-11-18",
            "count": 1
          },
          {
            "date": "2017-11-25",
            "count": 1
          },
          {
            "date": "2017-11-28",
            "count": 1
          },
          {
            "date": "2017-12-05",
            "count": 2
          },
          {
            "date": "2017-12-08",
            "count": 2
          },
          {
            "date": "2017-12-20",
            "count": 1
          },
          {
            "date": "2017-12-21",
            "count": 3
          },
          {
            "date": "2018-01-12",
            "count": 1
          },
          {
            "date": "2018-01-19",
            "count": 1
          },
          {
            "date": "2018-01-21",
            "count": 1
          },
          {
            "date": "2018-01-28",
            "count": 2
          },
          {
            "date": "2018-02-04",
            "count": 2
          },
          {
            "date": "2018-02-06",
            "count": 2
          },
          {
            "date": "2018-02-07",
            "count": 2
          },
          {
            "date": "2018-02-14",
            "count": 1
          },
          {
            "date": "2018-02-15",
            "count": 1
          },
          {
            "date": "2018-02-17",
            "count": 2
          },
          {
            "date": "2018-02-18",
            "count": 2
          },
          {
            "date": "2018-02-20",
            "count": 1
          },
          {
            "date": "2018-02-22",
            "count": 1
          },
          {
            "date": "2018-02-24",
            "count": 1
          },
          {
            "date": "2018-02-27",
            "count": 1
          },
          {
            "date": "2018-03-04",
            "count": 1
          },
          {
            "date": "2018-03-07",
            "count": 2
          },
          {
            "date": "2018-03-08",
            "count": 3
          },
          {
            "date": "2018-03-14",
            "count": 1
          },
          {
            "date": "2018-03-15",
            "count": 2
          },
          {
            "date": "2018-03-18",
            "count": 2
          },
          {
            "date": "2018-03-21",
            "count": 2
          },
          {
            "date": "2018-03-26",
            "count": 2
          },
          {
            "date": "2018-03-27",
            "count": 1
          },
          {
            "date": "2018-03-28",
            "count": 1
          },
          {
            "date": "2018-03-30",
            "count": 1
          },
          {
            "date": "2018-03-31",
            "count": 2
          },
          {
            "date": "2018-04-02",
            "count": 1
          },
          {
            "date": "2018-04-07",
            "count": 1
          },
          {
            "date": "2018-04-09",
            "count": 1
          },
          {
            "date": "2018-04-13",
            "count": 1
          },
          {
            "date": "2018-04-21",
            "count": 1
          },
          {
            "date": "2018-05-02",
            "count": 3
          },
          {
            "date": "2018-05-09",
            "count": 1
          },
          {
            "date": "2018-05-14",
            "count": 1
          },
          {
            "date": "2018-05-15",
            "count": 1
          },
          {
            "date": "2018-05-18",
            "count": 1
          },
          {
            "date": "2018-05-28",
            "count": 2
          },
          {
            "date": "2018-05-31",
            "count": 1
          },
          {
            "date": "2018-06-04",
            "count": 1
          },
          {
            "date": "2018-06-05",
            "count": 1
          },
          {
            "date": "2018-06-15",
            "count": 1
          },
          {
            "date": "2018-06-18",
            "count": 1
          },
          {
            "date": "2018-06-19",
            "count": 1
          },
          {
            "date": "2018-06-27",
            "count": 1
          },
          {
            "date": "2018-07-19",
            "count": 1
          },
          {
            "date": "2018-08-01",
            "count": 1
          },
          {
            "date": "2018-08-03",
            "count": 1
          },
          {
            "date": "2018-08-08",
            "count": 1
          },
          {
            "date": "2018-08-09",
            "count": 1
          },
          {
            "date": "2018-08-14",
            "count": 1
          },
          {
            "date": "2018-09-03",
            "count": 1
          },
          {
            "date": "2018-09-06",
            "count": 1
          },
          {
            "date": "2018-09-09",
            "count": 1
          },
          {
            "date": "2018-09-11",
            "count": 1
          },
          {
            "date": "2018-09-14",
            "count": 1
          },
          {
            "date": "2018-09-23",
            "count": 1
          },
          {
            "date": "2018-09-25",
            "count": 1
          },
          {
            "date": "2018-09-29",
            "count": 2
          },
          {
            "date": "2018-10-03",
            "count": 2
          },
          {
            "date": "2018-10-07",
            "count": 1
          },
          {
            "date": "2018-10-12",
            "count": 1
          },
          {
            "date": "2018-10-26",
            "count": 1
          },
          {
            "date": "2018-10-29",
            "count": 1
          },
          {
            "date": "2018-10-30",
            "count": 2
          },
          {
            "date": "2018-11-03",
            "count": 1
          },
          {
            "date": "2018-11-07",
            "count": 1
          },
          {
            "date": "2018-11-10",
            "count": 1
          },
          {
            "date": "2018-11-13",
            "count": 1
          },
          {
            "date": "2018-11-17",
            "count": 2
          },
          {
            "date": "2018-11-19",
            "count": 1
          },
          {
            "date": "2018-11-23",
            "count": 1
          },
          {
            "date": "2018-11-26",
            "count": 1
          },
          {
            "date": "2018-11-30",
            "count": 1
          },
          {
            "date": "2018-12-04",
            "count": 1
          },
          {
            "date": "2018-12-10",
            "count": 1
          },
          {
            "date": "2018-12-13",
            "count": 1
          },
          {
            "date": "2018-12-20",
            "count": 1
          },
          {
            "date": "2018-12-24",
            "count": 1
          },
          {
            "date": "2018-12-25",
            "count": 1
          },
          {
            "date": "2018-12-27",
            "count": 1
          },
          {
            "date": "2018-12-29",
            "count": 1
          },
          {
            "date": "2019-01-04",
            "count": 2
          },
          {
            "date": "2019-01-05",
            "count": 1
          },
          {
            "date": "2019-01-06",
            "count": 1
          },
          {
            "date": "2019-01-07",
            "count": 2
          },
          {
            "date": "2019-01-08",
            "count": 1
          },
          {
            "date": "2019-01-09",
            "count": 1
          },
          {
            "date": "2019-01-17",
            "count": 1
          },
          {
            "date": "2019-01-21",
            "count": 1
          },
          {
            "date": "2019-01-22",
            "count": 1
          },
          {
            "date": "2019-01-23",
            "count": 1
          },
          {
            "date": "2019-01-24",
            "count": 2
          },
          {
            "date": "2019-02-05",
            "count": 1
          },
          {
            "date": "2019-02-18",
            "count": 1
          },
          {
            "date": "2019-02-22",
            "count": 1
          },
          {
            "date": "2019-03-11",
            "count": 1
          },
          {
            "date": "2019-03-16",
            "count": 2
          },
          {
            "date": "2019-03-22",
            "count": 1
          },
          {
            "date": "2019-03-25",
            "count": 1
          },
          {
            "date": "2019-03-26",
            "count": 1
          },
          {
            "date": "2019-03-27",
            "count": 1
          },
          {
            "date": "2019-04-01",
            "count": 1
          },
          {
            "date": "2019-04-02",
            "count": 1
          },
          {
            "date": "2019-04-06",
            "count": 2
          },
          {
            "date": "2019-04-10",
            "count": 1
          },
          {
            "date": "2019-04-17",
            "count": 1
          },
          {
            "date": "2019-04-24",
            "count": 1
          },
          {
            "date": "2019-04-25",
            "count": 1
          },
          {
            "date": "2019-05-02",
            "count": 1
          },
          {
            "date": "2019-05-06",
            "count": 1
          },
          {
            "date": "2019-05-09",
            "count": 1
          },
          {
            "date": "2019-05-15",
            "count": 1
          },
          {
            "date": "2019-05-17",
            "count": 1
          },
          {
            "date": "2019-05-20",
            "count": 1
          },
          {
            "date": "2019-05-24",
            "count": 2
          },
          {
            "date": "2019-05-29",
            "count": 1
          },
          {
            "date": "2019-06-03",
            "count": 1
          },
          {
            "date": "2019-06-10",
            "count": 1
          },
          {
            "date": "2019-06-12",
            "count": 1
          },
          {
            "date": "2019-06-24",
            "count": 1
          },
          {
            "date": "2019-07-03",
            "count": 1
          },
          {
            "date": "2019-07-04",
            "count": 1
          },
          {
            "date": "2019-07-05",
            "count": 1
          },
          {
            "date": "2019-07-09",
            "count": 1
          },
          {
            "date": "2019-07-11",
            "count": 1
          },
          {
            "date": "2019-07-16",
            "count": 2
          },
          {
            "date": "2019-07-22",
            "count": 2
          },
          {
            "date": "2019-07-23",
            "count": 2
          },
          {
            "date": "2019-07-29",
            "count": 1
          },
          {
            "date": "2019-08-02",
            "count": 1
          },
          {
            "date": "2019-08-05",
            "count": 1
          },
          {
            "date": "2019-08-06",
            "count": 2
          },
          {
            "date": "2019-08-08",
            "count": 1
          },
          {
            "date": "2019-08-09",
            "count": 2
          },
          {
            "date": "2019-08-10",
            "count": 1
          },
          {
            "date": "2019-08-11",
            "count": 1
          },
          {
            "date": "2019-08-13",
            "count": 2
          },
          {
            "date": "2019-08-14",
            "count": 1
          },
          {
            "date": "2019-08-15",
            "count": 1
          },
          {
            "date": "2019-08-16",
            "count": 1
          },
          {
            "date": "2019-08-22",
            "count": 1
          },
          {
            "date": "2019-08-26",
            "count": 1
          },
          {
            "date": "2019-08-30",
            "count": 1
          },
          {
            "date": "2019-09-05",
            "count": 1
          },
          {
            "date": "2019-09-09",
            "count": 1
          },
          {
            "date": "2019-09-10",
            "count": 2
          },
          {
            "date": "2019-09-11",
            "count": 1
          },
          {
            "date": "2019-09-19",
            "count": 1
          },
          {
            "date": "2019-09-24",
            "count": 1
          },
          {
            "date": "2019-10-22",
            "count": 1
          },
          {
            "date": "2019-10-30",
            "count": 1
          },
          {
            "date": "2019-11-19",
            "count": 1
          },
          {
            "date": "2019-11-26",
            "count": 1
          },
          {
            "date": "2019-11-29",
            "count": 1
          },
          {
            "date": "2019-12-01",
            "count": 1
          },
          {
            "date": "2019-12-11",
            "count": 1
          },
          {
            "date": "2019-12-14",
            "count": 1
          },
          {
            "date": "2019-12-20",
            "count": 1
          },
          {
            "date": "2019-12-30",
            "count": 1
          },
          {
            "date": "2020-01-17",
            "count": 1
          },
          {
            "date": "2020-01-20",
            "count": 1
          },
          {
            "date": "2020-01-22",
            "count": 1
          },
          {
            "date": "2020-01-28",
            "count": 1
          },
          {
            "date": "2020-01-29",
            "count": 1
          },
          {
            "date": "2020-02-07",
            "count": 2
          },
          {
            "date": "2020-03-05",
            "count": 1
          },
          {
            "date": "2020-03-08",
            "count": 1
          },
          {
            "date": "2020-03-11",
            "count": 1
          },
          {
            "date": "2020-03-23",
            "count": 1
          },
          {
            "date": "2020-03-27",
            "count": 2
          },
          {
            "date": "2020-04-03",
            "count": 2
          },
          {
            "date": "2020-04-06",
            "count": 1
          },
          {
            "date": "2020-04-08",
            "count": 1
          },
          {
            "date": "2020-04-10",
            "count": 1
          },
          {
            "date": "2020-04-13",
            "count": 2
          },
          {
            "date": "2020-04-16",
            "count": 1
          },
          {
            "date": "2020-04-21",
            "count": 1
          },
          {
            "date": "2020-04-22",
            "count": 1
          },
          {
            "date": "2020-05-04",
            "count": 1
          },
          {
            "date": "2020-05-13",
            "count": 1
          },
          {
            "date": "2020-05-18",
            "count": 1
          },
          {
            "date": "2020-05-20",
            "count": 1
          },
          {
            "date": "2020-05-23",
            "count": 1
          },
          {
            "date": "2020-05-27",
            "count": 1
          },
          {
            "date": "2020-05-28",
            "count": 1
          },
          {
            "date": "2020-05-31",
            "count": 1
          },
          {
            "date": "2020-06-05",
            "count": 1
          },
          {
            "date": "2020-06-11",
            "count": 1
          },
          {
            "date": "2020-06-22",
            "count": 1
          },
          {
            "date": "2020-06-30",
            "count": 1
          },
          {
            "date": "2020-07-07",
            "count": 3
          },
          {
            "date": "2020-07-09",
            "count": 1
          },
          {
            "date": "2020-07-13",
            "count": 1
          },
          {
            "date": "2020-07-23",
            "count": 2
          },
          {
            "date": "2020-07-29",
            "count": 1
          },
          {
            "date": "2020-09-15",
            "count": 1
          },
          {
            "date": "2020-09-17",
            "count": 1
          },
          {
            "date": "2020-09-21",
            "count": 2
          },
          {
            "date": "2020-09-27",
            "count": 1
          },
          {
            "date": "2020-10-01",
            "count": 1
          },
          {
            "date": "2020-10-03",
            "count": 1
          },
          {
            "date": "2020-10-16",
            "count": 1
          },
          {
            "date": "2020-10-25",
            "count": 1
          },
          {
            "date": "2020-11-06",
            "count": 1
          },
          {
            "date": "2020-11-18",
            "count": 1
          },
          {
            "date": "2020-11-20",
            "count": 2
          },
          {
            "date": "2020-11-27",
            "count": 1
          },
          {
            "date": "2020-11-30",
            "count": 1
          },
          {
            "date": "2020-12-16",
            "count": 1
          },
          {
            "date": "2020-12-21",
            "count": 1
          },
          {
            "date": "2020-12-22",
            "count": 1
          },
          {
            "date": "2020-12-24",
            "count": 1
          },
          {
            "date": "2020-12-28",
            "count": 2
          },
          {
            "date": "2021-01-05",
            "count": 1
          },
          {
            "date": "2021-01-11",
            "count": 1
          },
          {
            "date": "2021-01-13",
            "count": 1
          },
          {
            "date": "2021-01-19",
            "count": 2
          },
          {
            "date": "2021-01-20",
            "count": 1
          },
          {
            "date": "2021-01-25",
            "count": 1
          },
          {
            "date": "2021-01-26",
            "count": 1
          },
          {
            "date": "2021-01-28",
            "count": 1
          },
          {
            "date": "2021-01-29",
            "count": 1
          },
          {
            "date": "2021-02-04",
            "count": 1
          },
          {
            "date": "2021-02-09",
            "count": 1
          },
          {
            "date": "2021-02-12",
            "count": 3
          },
          {
            "date": "2021-02-17",
            "count": 2
          },
          {
            "date": "2021-02-22",
            "count": 1
          },
          {
            "date": "2021-02-23",
            "count": 1
          },
          {
            "date": "2021-03-01",
            "count": 2
          },
          {
            "date": "2021-03-04",
            "count": 2
          },
          {
            "date": "2021-03-05",
            "count": 1
          },
          {
            "date": "2021-03-11",
            "count": 1
          },
          {
            "date": "2021-03-17",
            "count": 1
          },
          {
            "date": "2021-03-23",
            "count": 1
          },
          {
            "date": "2021-03-30",
            "count": 1
          },
          {
            "date": "2021-04-01",
            "count": 1
          },
          {
            "date": "2021-04-06",
            "count": 1
          },
          {
            "date": "2021-04-27",
            "count": 2
          },
          {
            "date": "2021-05-26",
            "count": 1
          },
          {
            "date": "2021-06-09",
            "count": 1
          },
          {
            "date": "2021-06-21",
            "count": 1
          },
          {
            "date": "2021-06-22",
            "count": 1
          },
          {
            "date": "2021-06-26",
            "count": 1
          },
          {
            "date": "2021-07-12",
            "count": 2
          },
          {
            "date": "2021-07-13",
            "count": 1
          },
          {
            "date": "2021-07-14",
            "count": 2
          },
          {
            "date": "2021-07-15",
            "count": 2
          },
          {
            "date": "2021-07-18",
            "count": 1
          },
          {
            "date": "2021-07-19",
            "count": 2
          },
          {
            "date": "2021-07-21",
            "count": 1
          },
          {
            "date": "2021-07-26",
            "count": 1
          },
          {
            "date": "2021-07-27",
            "count": 2
          },
          {
            "date": "2021-07-28",
            "count": 1
          },
          {
            "date": "2021-07-29",
            "count": 1
          },
          {
            "date": "2021-08-01",
            "count": 1
          },
          {
            "date": "2021-08-02",
            "count": 1
          },
          {
            "date": "2021-08-08",
            "count": 2
          },
          {
            "date": "2021-08-13",
            "count": 1
          },
          {
            "date": "2021-08-16",
            "count": 1
          },
          {
            "date": "2021-08-17",
            "count": 1
          },
          {
            "date": "2021-08-18",
            "count": 1
          },
          {
            "date": "2021-08-19",
            "count": 1
          },
          {
            "date": "2021-08-22",
            "count": 1
          },
          {
            "date": "2021-08-27",
            "count": 1
          },
          {
            "date": "2021-08-29",
            "count": 1
          },
          {
            "date": "2021-08-30",
            "count": 2
          },
          {
            "date": "2021-08-31",
            "count": 1
          },
          {
            "date": "2021-09-02",
            "count": 1
          },
          {
            "date": "2021-09-03",
            "count": 1
          },
          {
            "date": "2021-09-07",
            "count": 1
          },
          {
            "date": "2021-09-09",
            "count": 1
          },
          {
            "date": "2021-09-15",
            "count": 1
          },
          {
            "date": "2021-09-19",
            "count": 1
          },
          {
            "date": "2021-09-21",
            "count": 1
          },
          {
            "date": "2021-10-06",
            "count": 2
          },
          {
            "date": "2021-10-07",
            "count": 1
          },
          {
            "date": "2021-10-08",
            "count": 4
          },
          {
            "date": "2021-10-13",
            "count": 3
          },
          {
            "date": "2021-10-15",
            "count": 1
          },
          {
            "date": "2021-10-16",
            "count": 1
          },
          {
            "date": "2021-10-25",
            "count": 1
          },
          {
            "date": "2021-10-26",
            "count": 1
          },
          {
            "date": "2021-10-28",
            "count": 1
          },
          {
            "date": "2021-11-07",
            "count": 1
          },
          {
            "date": "2021-11-08",
            "count": 1
          },
          {
            "date": "2021-11-14",
            "count": 1
          },
          {
            "date": "2021-11-15",
            "count": 1
          },
          {
            "date": "2021-11-16",
            "count": 1
          },
          {
            "date": "2021-11-18",
            "count": 1
          },
          {
            "date": "2021-11-22",
            "count": 2
          },
          {
            "date": "2021-11-28",
            "count": 1
          },
          {
            "date": "2021-12-02",
            "count": 1
          },
          {
            "date": "2021-12-07",
            "count": 1
          },
          {
            "date": "2021-12-10",
            "count": 1
          },
          {
            "date": "2021-12-12",
            "count": 1
          },
          {
            "date": "2021-12-20",
            "count": 1
          },
          {
            "date": "2021-12-29",
            "count": 1
          },
          {
            "date": "2021-12-31",
            "count": 1
          },
          {
            "date": "2022-01-03",
            "count": 1
          },
          {
            "date": "2022-01-05",
            "count": 1
          },
          {
            "date": "2022-01-07",
            "count": 1
          },
          {
            "date": "2022-01-12",
            "count": 1
          },
          {
            "date": "2022-01-24",
            "count": 1
          },
          {
            "date": "2022-01-27",
            "count": 1
          },
          {
            "date": "2022-02-08",
            "count": 1
          },
          {
            "date": "2022-02-10",
            "count": 1
          },
          {
            "date": "2022-02-14",
            "count": 1
          },
          {
            "date": "2022-03-09",
            "count": 1
          },
          {
            "date": "2022-03-14",
            "count": 1
          },
          {
            "date": "2022-03-23",
            "count": 1
          },
          {
            "date": "2022-03-24",
            "count": 1
          },
          {
            "date": "2022-03-29",
            "count": 1
          },
          {
            "date": "2022-04-08",
            "count": 1
          },
          {
            "date": "2022-04-09",
            "count": 1
          },
          {
            "date": "2022-04-12",
            "count": 1
          },
          {
            "date": "2022-04-14",
            "count": 1
          },
          {
            "date": "2022-04-16",
            "count": 1
          },
          {
            "date": "2022-04-17",
            "count": 1
          },
          {
            "date": "2022-04-27",
            "count": 2
          },
          {
            "date": "2022-04-28",
            "count": 1
          },
          {
            "date": "2022-05-12",
            "count": 1
          },
          {
            "date": "2022-05-15",
            "count": 1
          },
          {
            "date": "2022-05-16",
            "count": 1
          },
          {
            "date": "2022-05-18",
            "count": 1
          },
          {
            "date": "2022-05-26",
            "count": 1
          },
          {
            "date": "2022-05-28",
            "count": 1
          },
          {
            "date": "2022-06-03",
            "count": 1
          },
          {
            "date": "2022-06-10",
            "count": 1
          },
          {
            "date": "2022-06-18",
            "count": 1
          },
          {
            "date": "2022-06-21",
            "count": 1
          },
          {
            "date": "2022-06-29",
            "count": 1
          },
          {
            "date": "2022-06-30",
            "count": 2
          },
          {
            "date": "2022-07-07",
            "count": 1
          },
          {
            "date": "2022-07-15",
            "count": 1
          },
          {
            "date": "2022-07-16",
            "count": 1
          },
          {
            "date": "2022-07-25",
            "count": 2
          },
          {
            "date": "2022-07-27",
            "count": 1
          },
          {
            "date": "2022-07-28",
            "count": 3
          },
          {
            "date": "2022-07-29",
            "count": 2
          },
          {
            "date": "2022-07-31",
            "count": 1
          },
          {
            "date": "2022-08-08",
            "count": 1
          },
          {
            "date": "2022-08-14",
            "count": 1
          },
          {
            "date": "2022-09-05",
            "count": 1
          },
          {
            "date": "2022-09-18",
            "count": 1
          },
          {
            "date": "2022-09-22",
            "count": 1
          },
          {
            "date": "2022-09-28",
            "count": 1
          },
          {
            "date": "2022-10-03",
            "count": 1
          },
          {
            "date": "2022-10-07",
            "count": 2
          },
          {
            "date": "2022-10-08",
            "count": 2
          },
          {
            "date": "2022-10-09",
            "count": 1
          },
          {
            "date": "2022-10-15",
            "count": 1
          },
          {
            "date": "2022-10-27",
            "count": 1
          },
          {
            "date": "2022-10-30",
            "count": 1
          },
          {
            "date": "2022-11-08",
            "count": 2
          },
          {
            "date": "2022-11-17",
            "count": 1
          },
          {
            "date": "2022-11-27",
            "count": 1
          },
          {
            "date": "2022-12-07",
            "count": 3
          },
          {
            "date": "2022-12-15",
            "count": 7
          },
          {
            "date": "2022-12-17",
            "count": 1
          },
          {
            "date": "2022-12-24",
            "count": 1
          },
          {
            "date": "2023-01-03",
            "count": 1
          },
          {
            "date": "2023-01-23",
            "count": 1
          },
          {
            "date": "2023-01-24",
            "count": 2
          },
          {
            "date": "2023-02-01",
            "count": 1
          },
          {
            "date": "2023-02-02",
            "count": 1
          },
          {
            "date": "2023-02-09",
            "count": 1
          },
          {
            "date": "2023-02-12",
            "count": 1
          },
          {
            "date": "2023-02-15",
            "count": 1
          },
          {
            "date": "2023-02-18",
            "count": 1
          },
          {
            "date": "2023-02-23",
            "count": 1
          },
          {
            "date": "2023-02-24",
            "count": 1
          },
          {
            "date": "2023-02-28",
            "count": 1
          },
          {
            "date": "2023-03-01",
            "count": 1
          },
          {
            "date": "2023-03-06",
            "count": 1
          },
          {
            "date": "2023-03-09",
            "count": 1
          },
          {
            "date": "2023-03-24",
            "count": 1
          },
          {
            "date": "2023-03-26",
            "count": 1
          },
          {
            "date": "2023-03-29",
            "count": 2
          },
          {
            "date": "2023-04-01",
            "count": 1
          },
          {
            "date": "2023-04-11",
            "count": 1
          },
          {
            "date": "2023-04-15",
            "count": 1
          },
          {
            "date": "2023-04-20",
            "count": 1
          },
          {
            "date": "2023-05-08",
            "count": 1
          },
          {
            "date": "2023-05-09",
            "count": 1
          },
          {
            "date": "2023-05-10",
            "count": 2
          },
          {
            "date": "2023-05-11",
            "count": 2
          },
          {
            "date": "2023-05-12",
            "count": 2
          },
          {
            "date": "2023-05-14",
            "count": 1
          },
          {
            "date": "2023-05-15",
            "count": 1
          },
          {
            "date": "2023-05-16",
            "count": 1
          },
          {
            "date": "2023-05-26",
            "count": 1
          },
          {
            "date": "2023-05-29",
            "count": 1
          },
          {
            "date": "2023-05-30",
            "count": 1
          },
          {
            "date": "2023-06-16",
            "count": 1
          },
          {
            "date": "2023-07-01",
            "count": 2
          },
          {
            "date": "2023-07-02",
            "count": 1
          },
          {
            "date": "2023-07-05",
            "count": 1
          },
          {
            "date": "2023-07-27",
            "count": 1
          },
          {
            "date": "2023-07-30",
            "count": 1
          },
          {
            "date": "2023-08-01",
            "count": 1
          },
          {
            "date": "2023-08-07",
            "count": 2
          },
          {
            "date": "2023-08-10",
            "count": 1
          },
          {
            "date": "2023-08-28",
            "count": 1
          },
          {
            "date": "2023-09-02",
            "count": 1
          },
          {
            "date": "2023-09-06",
            "count": 1
          },
          {
            "date": "2023-09-14",
            "count": 1
          },
          {
            "date": "2023-09-18",
            "count": 1
          },
          {
            "date": "2023-09-20",
            "count": 1
          },
          {
            "date": "2023-09-23",
            "count": 1
          },
          {
            "date": "2023-10-03",
            "count": 1
          },
          {
            "date": "2023-10-04",
            "count": 1
          },
          {
            "date": "2023-10-13",
            "count": 1
          },
          {
            "date": "2023-10-22",
            "count": 1
          },
          {
            "date": "2023-10-23",
            "count": 2
          },
          {
            "date": "2023-10-24",
            "count": 1
          },
          {
            "date": "2023-12-02",
            "count": 1
          },
          {
            "date": "2023-12-05",
            "count": 1
          },
          {
            "date": "2023-12-08",
            "count": 1
          },
          {
            "date": "2023-12-13",
            "count": 1
          },
          {
            "date": "2023-12-14",
            "count": 3
          },
          {
            "date": "2023-12-19",
            "count": 1
          },
          {
            "date": "2024-01-03",
            "count": 1
          },
          {
            "date": "2024-01-06",
            "count": 1
          },
          {
            "date": "2024-01-08",
            "count": 1
          },
          {
            "date": "2024-01-09",
            "count": 1
          },
          {
            "date": "2024-01-14",
            "count": 1
          },
          {
            "date": "2024-01-18",
            "count": 1
          },
          {
            "date": "2024-01-23",
            "count": 1
          },
          {
            "date": "2024-01-24",
            "count": 1
          },
          {
            "date": "2024-02-03",
            "count": 1
          },
          {
            "date": "2024-02-10",
            "count": 1
          },
          {
            "date": "2024-02-14",
            "count": 1
          },
          {
            "date": "2024-02-19",
            "count": 1
          },
          {
            "date": "2024-02-21",
            "count": 1
          },
          {
            "date": "2024-02-24",
            "count": 1
          },
          {
            "date": "2024-03-05",
            "count": 1
          },
          {
            "date": "2024-03-27",
            "count": 1
          },
          {
            "date": "2024-04-07",
            "count": 1
          },
          {
            "date": "2024-04-17",
            "count": 1
          },
          {
            "date": "2024-05-03",
            "count": 1
          },
          {
            "date": "2024-05-08",
            "count": 1
          },
          {
            "date": "2024-05-09",
            "count": 2
          },
          {
            "date": "2024-05-10",
            "count": 1
          },
          {
            "date": "2024-05-18",
            "count": 1
          },
          {
            "date": "2024-05-22",
            "count": 1
          },
          {
            "date": "2024-05-24",
            "count": 1
          },
          {
            "date": "2024-06-06",
            "count": 1
          },
          {
            "date": "2024-06-22",
            "count": 1
          },
          {
            "date": "2024-07-10",
            "count": 1
          },
          {
            "date": "2024-07-15",
            "count": 1
          },
          {
            "date": "2024-07-22",
            "count": 1
          },
          {
            "date": "2024-08-01",
            "count": 1
          },
          {
            "date": "2024-09-05",
            "count": 1
          },
          {
            "date": "2024-09-09",
            "count": 1
          },
          {
            "date": "2024-09-10",
            "count": 1
          },
          {
            "date": "2024-10-07",
            "count": 1
          },
          {
            "date": "2024-10-09",
            "count": 1
          },
          {
            "date": "2024-10-11",
            "count": 1
          },
          {
            "date": "2024-10-14",
            "count": 1
          },
          {
            "date": "2024-11-01",
            "count": 1
          },
          {
            "date": "2024-11-05",
            "count": 1
          },
          {
            "date": "2024-11-11",
            "count": 1
          },
          {
            "date": "2024-11-25",
            "count": 1
          },
          {
            "date": "2024-11-26",
            "count": 1
          },
          {
            "date": "2024-11-28",
            "count": 1
          },
          {
            "date": "2024-12-05",
            "count": 1
          },
          {
            "date": "2024-12-06",
            "count": 1
          },
          {
            "date": "2024-12-09",
            "count": 1
          },
          {
            "date": "2024-12-12",
            "count": 1
          },
          {
            "date": "2024-12-17",
            "count": 1
          },
          {
            "date": "2024-12-24",
            "count": 2
          },
          {
            "date": "2024-12-28",
            "count": 1
          },
          {
            "date": "2025-01-08",
            "count": 1
          },
          {
            "date": "2025-01-19",
            "count": 1
          },
          {
            "date": "2025-01-29",
            "count": 1
          },
          {
            "date": "2025-02-04",
            "count": 1
          },
          {
            "date": "2025-02-12",
            "count": 1
          },
          {
            "date": "2025-02-22",
            "count": 1
          },
          {
            "date": "2025-03-02",
            "count": 1
          },
          {
            "date": "2025-03-18",
            "count": 1
          },
          {
            "date": "2025-03-26",
            "count": 1
          },
          {
            "date": "2025-04-08",
            "count": 1
          },
          {
            "date": "2025-04-17",
            "count": 1
          },
          {
            "date": "2025-05-09",
            "count": 1
          },
          {
            "date": "2025-05-20",
            "count": 1
          },
          {
            "date": "2025-05-24",
            "count": 1
          },
          {
            "date": "2025-06-10",
            "count": 1
          },
          {
            "date": "2025-06-25",
            "count": 1
          },
          {
            "date": "2025-07-08",
            "count": 1
          },
          {
            "date": "2025-07-14",
            "count": 1
          },
          {
            "date": "2025-07-18",
            "count": 1
          },
          {
            "date": "2025-07-24",
            "count": 3
          },
          {
            "date": "2025-07-25",
            "count": 1
          },
          {
            "date": "2025-07-28",
            "count": 1
          },
          {
            "date": "2025-07-31",
            "count": 1
          },
          {
            "date": "2025-08-06",
            "count": 1
          },
          {
            "date": "2025-08-30",
            "count": 1
          },
          {
            "date": "2025-09-04",
            "count": 1
          },
          {
            "date": "2025-09-15",
            "count": 1
          },
          {
            "date": "2025-09-16",
            "count": 1
          },
          {
            "date": "2025-10-22",
            "count": 1
          },
          {
            "date": "2025-10-23",
            "count": 2
          },
          {
            "date": "2025-10-24",
            "count": 1
          },
          {
            "date": "2025-10-27",
            "count": 1
          },
          {
            "date": "2025-12-25",
            "count": 1
          },
          {
            "date": "2026-01-08",
            "count": 1
          },
          {
            "date": "2026-01-14",
            "count": 1
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-02-20",
            "count": 1
          },
          {
            "date": "2026-03-02",
            "count": 1
          },
          {
            "date": "2026-04-25",
            "count": 1
          },
          {
            "date": "2026-05-01",
            "count": 2
          },
          {
            "date": "2026-05-13",
            "count": 1
          },
          {
            "date": "2026-05-24",
            "count": 1
          },
          {
            "date": "2026-05-25",
            "count": 7
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-05-30",
            "count": 1
          },
          {
            "date": "2026-06-09",
            "count": 1
          },
          {
            "date": "2026-07-14",
            "count": 1
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_stars": 1611
      },
      "open_issues_and_prs": 49
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 229409,
      "source_files_sampled": 21,
      "oversized_source_files": 3,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "Gemfile"
      ],
      "advisories": {
        "error": "No resolved dependencies carried a version and a supported ecosystem",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 10,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "rubygems"
      ],
      "dependencies": [
        {
          "name": "coveralls",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "> 0.7"
        },
        {
          "name": "simplecov",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "idn-ruby",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "coveralls",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "idn-ruby",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "simplecov",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "launchy",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "memory_profiler",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rake",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "redcarpet",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rspec",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rspec-its",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "yard",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 10,
        "direct_count": 3,
        "indirect_count": 7
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 12,
        "merged_prs": 216,
        "open_issues": 37,
        "closed_ratio": 0.871,
        "closed_issues": 250,
        "closed_unmerged_prs": 74
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "sporkmonger",
          "commits": 569,
          "avatar_url": "https://avatars.githubusercontent.com/u/1778?v=4"
        },
        {
          "type": "User",
          "login": "dentarg",
          "commits": 107,
          "avatar_url": "https://avatars.githubusercontent.com/u/42626?v=4"
        },
        {
          "type": "User",
          "login": "therabidbanana",
          "commits": 27,
          "avatar_url": "https://avatars.githubusercontent.com/u/18348?v=4"
        },
        {
          "type": "User",
          "login": "sferik",
          "commits": 25,
          "avatar_url": "https://avatars.githubusercontent.com/u/10308?v=4"
        },
        {
          "type": "User",
          "login": "igrigorik",
          "commits": 21,
          "avatar_url": "https://avatars.githubusercontent.com/u/10652?v=4"
        },
        {
          "type": "User",
          "login": "ashmaroli",
          "commits": 12,
          "avatar_url": "https://avatars.githubusercontent.com/u/12479464?v=4"
        },
        {
          "type": "User",
          "login": "petergoldstein",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/421488?v=4"
        },
        {
          "type": "User",
          "login": "jarthod",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/201687?v=4"
        },
        {
          "type": "User",
          "login": "mislav",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/887?v=4"
        },
        {
          "type": "User",
          "login": "olleolleolle",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/211?v=4"
        }
      ],
      "contributors_sampled": 99,
      "top_contributor_share": 0.607
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "codeql-analysis.yml",
        "release.yml",
        "test.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "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": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "21 out of 21 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": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 1,
            "reason": "Found 2/14 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 45 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": 4,
            "reason": "5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow 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": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not 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": 9,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "d298c9f551fa9748d16dbfb6273b70f60b3d61bc",
        "ran_at": "2026-07-21T23:34:12Z",
        "aggregate_score": 7.3,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-21T20:07:46Z",
      "oldest_open_prs": [
        {
          "number": 133,
          "created_at": "2013-07-30T11:27:20Z",
          "last_comment_at": "2016-12-21T00:13:18Z",
          "last_comment_author": "sporkmonger"
        },
        {
          "number": 446,
          "created_at": "2021-12-10T11:50:59Z",
          "last_comment_at": "2022-12-15T21:08:51Z",
          "last_comment_author": "dpep"
        },
        {
          "number": 496,
          "created_at": "2023-03-22T18:20:21Z",
          "last_comment_at": "2026-05-21T11:29:05Z",
          "last_comment_author": "jarthod"
        },
        {
          "number": 510,
          "created_at": "2023-05-10T14:53:45Z",
          "last_comment_at": "2023-06-03T20:22:50Z",
          "last_comment_author": "dentarg"
        },
        {
          "number": 512,
          "created_at": "2023-06-07T22:33:31Z",
          "last_comment_at": "2023-07-06T14:53:40Z",
          "last_comment_author": "Hbutlercapone"
        },
        {
          "number": 585,
          "created_at": "2026-04-14T06:09:56Z",
          "last_comment_at": "2026-04-21T11:32:29Z",
          "last_comment_author": "dentarg"
        },
        {
          "number": 589,
          "created_at": "2026-04-29T09:50:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 597,
          "created_at": "2026-06-06T13:52:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 600,
          "created_at": "2026-06-13T13:52:18Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 601,
          "created_at": "2026-06-20T13:52:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 602,
          "created_at": "2026-06-20T13:52:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 603,
          "created_at": "2026-06-27T13:52:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-05-17T20:21:47Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 8,
          "created_at": "2010-03-20T06:34:07Z",
          "last_comment_at": "2023-07-19T08:08:51Z",
          "last_comment_author": "dentarg"
        },
        {
          "number": 94,
          "created_at": "2012-12-13T16:32:22Z",
          "last_comment_at": "2016-06-16T06:40:39Z",
          "last_comment_author": "dmitry"
        },
        {
          "number": 124,
          "created_at": "2013-05-14T19:50:38Z",
          "last_comment_at": "2020-06-25T10:31:28Z",
          "last_comment_author": "vfonic"
        },
        {
          "number": 134,
          "created_at": "2013-07-31T11:12:15Z",
          "last_comment_at": "2013-08-01T17:02:37Z",
          "last_comment_author": "sporkmonger"
        },
        {
          "number": 142,
          "created_at": "2013-10-04T02:15:11Z",
          "last_comment_at": "2015-11-23T18:18:42Z",
          "last_comment_author": "therabidbanana"
        },
        {
          "number": 158,
          "created_at": "2014-04-05T21:06:05Z",
          "last_comment_at": "2014-04-15T21:33:35Z",
          "last_comment_author": "sporkmonger"
        },
        {
          "number": 162,
          "created_at": "2014-07-09T13:20:11Z",
          "last_comment_at": "2015-03-27T16:57:44Z",
          "last_comment_author": "sporkmonger"
        },
        {
          "number": 163,
          "created_at": "2014-07-10T09:22:33Z",
          "last_comment_at": "2016-11-06T20:08:28Z",
          "last_comment_author": "therabidbanana"
        },
        {
          "number": 171,
          "created_at": "2014-10-17T15:56:50Z",
          "last_comment_at": "2015-03-27T16:12:51Z",
          "last_comment_author": "sporkmonger"
        },
        {
          "number": 184,
          "created_at": "2015-02-11T05:23:32Z",
          "last_comment_at": "2015-02-11T05:31:42Z",
          "last_comment_author": "adstage-david"
        },
        {
          "number": 192,
          "created_at": "2015-04-20T23:22:05Z",
          "last_comment_at": "2015-06-03T14:21:04Z",
          "last_comment_author": "sporkmonger"
        },
        {
          "number": 193,
          "created_at": "2015-04-29T13:54:53Z",
          "last_comment_at": "2015-04-29T14:04:07Z",
          "last_comment_author": "jnicklas"
        },
        {
          "number": 196,
          "created_at": "2015-05-09T19:40:37Z",
          "last_comment_at": "2021-03-14T19:29:39Z",
          "last_comment_author": "dentarg"
        },
        {
          "number": 247,
          "created_at": "2016-11-03T20:30:18Z",
          "last_comment_at": "2023-03-22T22:32:24Z",
          "last_comment_author": "jarthod"
        },
        {
          "number": 265,
          "created_at": "2017-08-01T01:46:19Z",
          "last_comment_at": "2023-07-19T08:11:12Z",
          "last_comment_author": "dentarg"
        },
        {
          "number": 272,
          "created_at": "2017-09-23T11:34:27Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 284,
          "created_at": "2018-01-03T19:07:00Z",
          "last_comment_at": "2023-07-19T08:28:26Z",
          "last_comment_author": "dentarg"
        },
        {
          "number": 295,
          "created_at": "2018-03-22T13:22:50Z",
          "last_comment_at": "2023-07-19T07:09:36Z",
          "last_comment_author": "dentarg"
        },
        {
          "number": 356,
          "created_at": "2019-08-31T03:25:43Z",
          "last_comment_at": "2024-12-28T07:42:01Z",
          "last_comment_author": "dentarg"
        },
        {
          "number": 357,
          "created_at": "2019-09-01T20:40:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/sporkmonger/addressable",
    "host": "github.com",
    "name": "addressable",
    "owner": "sporkmonger"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 62,
      "inputs": {
        "security": 73,
        "vitality": 35,
        "community": 74,
        "governance": 66,
        "engineering": 65
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "at_risk",
        "name": "Vitality",
        "value": 35,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 58,
            "inputs": {
              "commits_last_year": 55,
              "human_commit_share": 0.88,
              "days_since_last_push": 24,
              "active_weeks_last_year": 13
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 24 days ago",
                "points": 28.8,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 24
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "13/52 weeks with commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 13
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "55 commits in the last year",
                "points": 15.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 55
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4",
                "points": 4,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "critical",
            "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": 1,
            "inputs": {
              "releases_count": 0
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "no releases published",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases_published",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "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": 107,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 107 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 107
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 74,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "good",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "forks": 279,
              "stars": 1611,
              "watchers": 30,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1,611 stars",
                "points": 52,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1611
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "279 forks",
                "points": 20.4,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 279
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "30 watchers",
                "points": 8.1,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 30
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "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": 0,
                "status": "missed",
                "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
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "packages": [
                "addressable"
              ],
              "dependents": null,
              "ecosystems": "rubygems",
              "total_downloads": 1225594015,
              "monthly_downloads": null
            },
            "components": [
              {
                "key": "total_downloads",
                "name": "Total downloads",
                "detail": "1,225,594,015 downloads all-time across rubygems",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_total",
                    "params": {
                      "count": 1225594015,
                      "ecosystems": "rubygems"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 66,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 41,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 99,
              "top_contributor_share": 0.607
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 61% of commits",
                "points": 8.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 61
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "99 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 99
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 45 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 71,
            "inputs": {
              "merged_prs": 216,
              "open_issues": 37,
              "closed_issues": 250,
              "issue_closed_ratio": 0.871,
              "closed_unmerged_prs": 74
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "87% of issues closed",
                "points": 40.7,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 87
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "216/290 decided PRs merged",
                "points": 28.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 216,
                      "decided": 290
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 2/14 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 64,
            "inputs": {
              "followers": 181,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "sporkmonger",
              "public_repos": 132,
              "account_age_days": 6717
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "181 followers of sporkmonger",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 181,
                      "login": "sporkmonger"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "132 public repos, account ~18 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 132
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 18
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "addressable"
              ],
              "ecosystems": "rubygems",
              "any_deprecated": false,
              "min_days_since_publish": 107
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on rubygems",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "rubygems"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 107 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 107
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "48 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 48
                    }
                  }
                ],
                "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": "moderate",
        "name": "Engineering Quality",
        "value": 65,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "21 out of 21 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "topics": [
                "uri",
                "uri-template"
              ],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "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": 0,
                "status": "missed",
                "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": "2 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": 73,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "good",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 73,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 7.3
            },
            "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": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "21 out of 21 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": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 2/14 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 45 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": "5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "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 run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "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": "detected GitHub workflow tokens with excessive permissions",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "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": 25
            },
            "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": "at_risk",
        "name": "AI Readiness",
        "value": 39,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 34,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.648,
              "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": "57 of 88 human commits state their intent (structured subject or explanatory body)",
                "points": 34.5,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 57,
                      "sampled": 88
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.12
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "12 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 12,
                      "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": "at_risk",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 47,
            "inputs": {
              "primary_language": "Ruby",
              "largest_source_bytes": 229409,
              "source_files_sampled": 21,
              "oversized_source_files": 3
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Ruby without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "Ruby"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "3/21 source files over 60KB",
                "points": 47.1,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 21,
                      "oversized": 3
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "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": [
    "No resolved dependencies carried a version and a supported ecosystem"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-21T23:34:38.178422Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/sporkmonger/addressable.svg",
  "full_name": "sporkmonger/addressable",
  "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 statisticsRubyGems.