公开记录
软件健康报告模式 0.26.0 · 指标 1.13.0 · 2026-07-21 23:26 UTC

jeremyevans / sequel

Sequel: The Database Toolkit for Ruby

RubyMIT★ 5,087 星标⑂ 1,075 复刻始于 2008年3月在 GitHub 上查看 ↗

jeremyevans/sequel 的健康指数为 100 分中的 75 分,处于「良好」区间。 其得分最高的类别是Vitality(90/100),最低的是AI Readiness(32/100)。 最近一次更新在 2 天前。 近期的大部分工作由 1 位贡献者完成。

75
总分 / 100
良好

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

75
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

所有权

Jeremy Evans个人账户
1,742 关注者239 个公开仓库始于 2008年3月Ubicloud, Inc.

该仓库由个人账户拥有。相较于组织支持的项目,单一所有者项目的延续性风险更高。

软件包生态系统

注册表软件包版本月下载量版本数最近发布
RubyGemssequel5.106.0-30720 天前

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

90优秀 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 2 天前
28.4/36提交节奏 — 52 周中有 41 周有提交
18/18提交量 — 最近一年 164 次提交
10/10OpenSSF Scorecard:Maintained — 25 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year164
human_commit_share1
days_since_last_push2
active_weeks_last_year41

发布纪律

88优秀
评分方式
16.2/27有发布版本 — 100 个版本标签(无 GitHub 发布版本)
36/36发布时效 — 最近一次发布版本于 20 天前
27/27发布节奏 — 约每 30.3 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count100
latest_release_tag5.106.0
releases_from_tags
days_since_latest_release20
mean_days_between_releases30.3
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

88优秀 · 占总体的 18%
评分方式
60/60星标 — 5,087 个星标
25/25复刻 — 1,075 个复刻
11.2/15关注者 — 106 位关注者
所用输入
forks1,075
stars5,087
watchers106
growth_stateorganic
growth_factor_pct100

社区健康

70良好
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
18/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template
评分方式
80/80累计下载量 — rubygems 合计历史 72,208,559 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packagessequel
dependents
ecosystemsrubygems
total_downloads72,208,559
monthly_downloads
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

67中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
3.4/22.5提交分布 — 头号贡献者编写了 85% 的提交
13.5/13.5贡献者广度 — 100 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 48 contributing companies or organizations
所用输入
bus_factor1
contributors_sampled100
top_contributor_share0.85
评分方式
46.8/46.8议题解决 — 100% 的议题已关闭
23.5/38.3PR 接受 — 已裁定的 PR 中 472/767 已合并
1.5/15OpenSSF Scorecard:Code-Review — Found 5/29 approved changesets -- score normalized to 1
所用输入
merged_prs472
open_issues0
closed_issues1,227
issue_closed_ratio1
closed_unmerged_prs295
评分方式
10/30所有权背书 — 个人(用户)账户
0/20已验证域名 — 不适用于个人账户
23.3/25所有者影响力 — jeremyevans 有 1,742 位关注者
25/25既往记录 — 239 个公开仓库,账户约 18 年
所用输入
followers1,742
owner_typeUser
is_verified
owner_loginjeremyevans
public_repos239
account_age_days6,691
已排除计分(无数据或不适用):已验证域名。 其余权重已重新归一化。
评分方式
25/25已发布且可解析 — rubygems 上有 1 个软件包
35/35发布时效 — 最近一次发布于 20 天前
20/20版本历史 — 307 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagessequel
ecosystemsrubygems
any_deprecated
min_days_since_publish20

工程质量

基础的工程与文档实践是否到位?

70良好 · 占总体的 20%

工程实践

64中等
评分方式
24/24CI 工作流 — 1 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
0/6.4.editorconfig
16/20OpenSSF Scorecard:CI-Tests — 4 out of 5 merged PRs checked by a CI test -- score normalized to 8
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

80良好
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — http://sequel.jeremyevans.net
10/10仓库描述
0/10主题标签
0/10Wiki
所用输入
topics
has_wiki
homepagehttp://sequel.jeremyevans.net
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

56中等 · 占总体的 16%

安全态势

56中等
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — 无数据
2/2.5CI-Tests — 4 out of 5 merged PRs checked by a CI test -- score normalized to 8
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 5/29 approved changesets -- score normalized to 1
2.5/2.5Contributors — project has 48 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 25 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — 无数据
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — 无数据
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate5.6
已排除计分(无数据或不适用):branch_protection, packaging, signed_releases。 其余权重已重新归一化。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

32存在风险 · 占总体的 0%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
33.1/40可读的提交历史 — 100 次人类提交中有 62 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.62
agent_instruction_files
agent_instruction_max_bytes
评分方式
0/18一条命令的引导启动
22/22自动化测试
0/11Lint / 格式化配置
0/11静态类型检查
0/10可复现环境
0/10已体现的代理实践 — 最近 100 次提交中没有代理编写的提交
0/8自动化维护 — 未观察到自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfiles
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
评分方式
0/45可类型检查的代码 — Ruby,未配置类型检查
53.5/55可控的文件大小 — 采样的 625 个源文件中有 17 个超过 60KB
所用输入
primary_languageRuby
largest_source_bytes311,412
source_files_sampled625
oversized_source_files17

关键数据

5,087GitHub 星标
100贡献者
164最近 12 个月提交数
2距最近推送天数
100发布版本数
1巴士系数(bus factor)
0开放议题
软件包生态系统数

数据采集警告

  • No resolved dependencies carried a version and a supported ecosystem

更多细节

Star 与 Fork 历史 5,087 ★ / 1,075 ⇿
5,087Star
1,075Fork
100发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

仅显示最近的历史——该仓库超出采集窗口,因此未采集最早的历史记录。

01,0002,0003,0004,0005,0006,0005,0871,075342011-112019-032026-07
主版本 0次版本 97修订 3

每个点涵盖 14 天。

OpenSSF Scorecard 5.6 / 10
5.6综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-07-21 23:26 UTC

10Binary-Artifactsno binaries found in the repo
不适用Branch-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
8CI-Tests4 out of 5 merged PRs checked by a CI test -- score normalized to 8
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 5/29 approved changesets -- score normalized to 1
10Contributorsproject has 48 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained25 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
不适用Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
不适用Signed-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
10Vulnerabilities0 existing vulnerabilities detected
全部依赖 7

来自 GitHub 依赖图的完整解析依赖集合:0 个直接依赖与 7 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
RubyGemsactivemodel间接
RubyGemsbigdecimal间接
RubyGemsminitest间接
RubyGemsminitest-global_expectations间接
RubyGemsminitest-hooks间接
RubyGemsnokogiri间接
RubyGemstzinfo间接
依赖安全公告 未评估

本报告未能完成公告比对:No resolved dependencies carried a version and a supported ecosystem

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 62427,
      "has_wiki": false,
      "homepage": "http://sequel.jeremyevans.net",
      "languages": {
        "CSS": 10040,
        "HTML": 96829,
        "Ruby": 7113334
      },
      "pushed_at": "2026-07-19T16:46:48Z",
      "created_at": "2008-03-31T05:41:15Z",
      "owner_type": "User",
      "updated_at": "2026-07-19T16:46:54Z",
      "description": "Sequel: The Database Toolkit for Ruby",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "master",
      "license_spdx_raw": "MIT",
      "primary_language": "Ruby",
      "significant_languages": [
        "Ruby"
      ]
    },
    "owner": {
      "blog": "http://code.jeremyevans.net",
      "name": "Jeremy Evans",
      "type": "User",
      "login": "jeremyevans",
      "company": "Ubicloud, Inc.",
      "location": "Sacramento, California, USA",
      "followers": 1742,
      "avatar_url": "https://avatars.githubusercontent.com/u/3846?v=4",
      "created_at": "2008-03-26T00:07:41Z",
      "is_verified": null,
      "public_repos": 239,
      "account_age_days": 6691
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "5.106.0",
          "kind": "minor",
          "published_at": "2026-07-01T15:46:47Z"
        },
        {
          "tag": "5.105.0",
          "kind": "minor",
          "published_at": "2026-06-01T14:28:09Z"
        },
        {
          "tag": "5.104.0",
          "kind": "minor",
          "published_at": "2026-05-01T15:58:49Z"
        },
        {
          "tag": "5.103.0",
          "kind": "minor",
          "published_at": "2026-04-01T16:09:25Z"
        },
        {
          "tag": "5.102.0",
          "kind": "minor",
          "published_at": "2026-03-01T19:02:27Z"
        },
        {
          "tag": "5.101.0",
          "kind": "minor",
          "published_at": "2026-02-01T17:05:52Z"
        },
        {
          "tag": "5.100.0",
          "kind": "minor",
          "published_at": "2026-01-01T16:57:24Z"
        },
        {
          "tag": "5.99.0",
          "kind": "minor",
          "published_at": "2025-12-01T18:20:49Z"
        },
        {
          "tag": "5.98.0",
          "kind": "minor",
          "published_at": "2025-11-01T17:18:55Z"
        },
        {
          "tag": "5.97.0",
          "kind": "minor",
          "published_at": "2025-10-01T16:18:38Z"
        },
        {
          "tag": "5.96.0",
          "kind": "minor",
          "published_at": "2025-09-01T14:45:37Z"
        },
        {
          "tag": "5.95.1",
          "kind": "patch",
          "published_at": "2025-08-05T15:15:55Z"
        },
        {
          "tag": "5.95.0",
          "kind": "minor",
          "published_at": "2025-08-01T15:31:01Z"
        },
        {
          "tag": "5.94.0",
          "kind": "minor",
          "published_at": "2025-07-01T15:25:01Z"
        },
        {
          "tag": "5.93.0",
          "kind": "minor",
          "published_at": "2025-06-01T17:10:37Z"
        },
        {
          "tag": "5.92.0",
          "kind": "minor",
          "published_at": "2025-05-01T14:47:22Z"
        },
        {
          "tag": "5.91.0",
          "kind": "minor",
          "published_at": "2025-04-01T14:08:12Z"
        },
        {
          "tag": "5.90.0",
          "kind": "minor",
          "published_at": "2025-03-01T17:27:11Z"
        },
        {
          "tag": "5.89.0",
          "kind": "minor",
          "published_at": "2025-02-01T17:08:51Z"
        },
        {
          "tag": "5.88.0",
          "kind": "minor",
          "published_at": "2025-01-01T17:18:19Z"
        },
        {
          "tag": "5.87.0",
          "kind": "minor",
          "published_at": "2024-12-01T17:13:27Z"
        },
        {
          "tag": "5.86.0",
          "kind": "minor",
          "published_at": "2024-11-01T16:04:14Z"
        },
        {
          "tag": "5.85.0",
          "kind": "minor",
          "published_at": "2024-10-01T15:44:30Z"
        },
        {
          "tag": "5.84.0",
          "kind": "minor",
          "published_at": "2024-08-29T23:43:25Z"
        },
        {
          "tag": "5.83.1",
          "kind": "patch",
          "published_at": "2024-08-08T15:55:31Z"
        },
        {
          "tag": "5.83.0",
          "kind": "minor",
          "published_at": "2024-08-01T15:02:05Z"
        },
        {
          "tag": "5.82.0",
          "kind": "minor",
          "published_at": "2024-07-01T15:14:33Z"
        },
        {
          "tag": "5.81.0",
          "kind": "minor",
          "published_at": "2024-05-31T18:59:27Z"
        },
        {
          "tag": "5.80.0",
          "kind": "minor",
          "published_at": "2024-05-01T15:49:50Z"
        },
        {
          "tag": "5.79.0",
          "kind": "minor",
          "published_at": "2024-04-01T16:04:28Z"
        },
        {
          "tag": "5.78.0",
          "kind": "minor",
          "published_at": "2024-03-01T16:29:17Z"
        },
        {
          "tag": "5.77.0",
          "kind": "minor",
          "published_at": "2024-02-01T16:27:19Z"
        },
        {
          "tag": "5.76.0",
          "kind": "minor",
          "published_at": "2023-12-29T20:29:53Z"
        },
        {
          "tag": "5.75.0",
          "kind": "minor",
          "published_at": "2023-12-01T16:25:41Z"
        },
        {
          "tag": "5.74.0",
          "kind": "minor",
          "published_at": "2023-11-01T15:36:13Z"
        },
        {
          "tag": "5.73.0",
          "kind": "minor",
          "published_at": "2023-09-28T22:16:59Z"
        },
        {
          "tag": "5.72.0",
          "kind": "minor",
          "published_at": "2023-08-29T18:55:51Z"
        },
        {
          "tag": "5.71.0",
          "kind": "minor",
          "published_at": "2023-08-01T14:39:10Z"
        },
        {
          "tag": "5.70.0",
          "kind": "minor",
          "published_at": "2023-06-30T18:22:57Z"
        },
        {
          "tag": "5.69.0",
          "kind": "minor",
          "published_at": "2023-06-01T14:29:18Z"
        },
        {
          "tag": "5.68.0",
          "kind": "minor",
          "published_at": "2023-05-01T14:25:38Z"
        },
        {
          "tag": "5.67.0",
          "kind": "minor",
          "published_at": "2023-04-01T14:29:55Z"
        },
        {
          "tag": "5.66.0",
          "kind": "minor",
          "published_at": "2023-03-01T16:07:18Z"
        },
        {
          "tag": "5.65.0",
          "kind": "minor",
          "published_at": "2023-02-01T17:28:11Z"
        },
        {
          "tag": "5.64.0",
          "kind": "minor",
          "published_at": "2022-12-31T02:40:55Z"
        },
        {
          "tag": "5.63.0",
          "kind": "minor",
          "published_at": "2022-12-01T15:04:38Z"
        },
        {
          "tag": "5.62.0",
          "kind": "minor",
          "published_at": "2022-11-01T16:14:58Z"
        },
        {
          "tag": "5.61.0",
          "kind": "minor",
          "published_at": "2022-09-30T20:29:52Z"
        },
        {
          "tag": "5.60.1",
          "kind": "patch",
          "published_at": "2022-09-02T16:07:03Z"
        },
        {
          "tag": "5.60.0",
          "kind": "minor",
          "published_at": "2022-09-01T14:51:51Z"
        },
        {
          "tag": "5.59.0",
          "kind": "minor",
          "published_at": "2022-08-01T14:42:15Z"
        },
        {
          "tag": "5.58.0",
          "kind": "minor",
          "published_at": "2022-07-01T14:39:54Z"
        },
        {
          "tag": "5.57.0",
          "kind": "minor",
          "published_at": "2022-06-01T14:58:39Z"
        },
        {
          "tag": "5.56.0",
          "kind": "minor",
          "published_at": "2022-04-29T19:18:45Z"
        },
        {
          "tag": "5.55.0",
          "kind": "minor",
          "published_at": "2022-04-01T15:48:33Z"
        },
        {
          "tag": "5.54.0",
          "kind": "minor",
          "published_at": "2022-03-01T16:11:07Z"
        },
        {
          "tag": "5.53.0",
          "kind": "minor",
          "published_at": "2022-02-01T16:06:41Z"
        },
        {
          "tag": "5.52.0",
          "kind": "minor",
          "published_at": "2021-12-30T21:01:54Z"
        },
        {
          "tag": "5.51.0",
          "kind": "minor",
          "published_at": "2021-12-01T16:32:59Z"
        },
        {
          "tag": "5.50.0",
          "kind": "minor",
          "published_at": "2021-11-01T15:56:45Z"
        },
        {
          "tag": "5.49.0",
          "kind": "minor",
          "published_at": "2021-10-01T14:27:01Z"
        },
        {
          "tag": "5.48.0",
          "kind": "minor",
          "published_at": "2021-09-01T15:20:31Z"
        },
        {
          "tag": "5.47.0",
          "kind": "minor",
          "published_at": "2021-07-30T18:31:12Z"
        },
        {
          "tag": "5.46.0",
          "kind": "minor",
          "published_at": "2021-07-01T14:57:24Z"
        },
        {
          "tag": "5.45.0",
          "kind": "minor",
          "published_at": "2021-06-01T14:39:15Z"
        },
        {
          "tag": "5.44.0",
          "kind": "minor",
          "published_at": "2021-04-30T21:59:17Z"
        },
        {
          "tag": "5.43.0",
          "kind": "minor",
          "published_at": "2021-04-01T14:37:38Z"
        },
        {
          "tag": "5.42.0",
          "kind": "minor",
          "published_at": "2021-03-01T15:44:27Z"
        },
        {
          "tag": "5.41.0",
          "kind": "minor",
          "published_at": "2021-02-01T15:42:41Z"
        },
        {
          "tag": "5.40.0",
          "kind": "minor",
          "published_at": "2020-12-31T19:04:45Z"
        },
        {
          "tag": "5.39.0",
          "kind": "minor",
          "published_at": "2020-12-01T16:04:15Z"
        },
        {
          "tag": "5.38.0",
          "kind": "minor",
          "published_at": "2020-10-30T18:01:26Z"
        },
        {
          "tag": "5.37.0",
          "kind": "minor",
          "published_at": "2020-10-01T14:33:15Z"
        },
        {
          "tag": "5.36.0",
          "kind": "minor",
          "published_at": "2020-09-01T15:05:22Z"
        },
        {
          "tag": "5.35.0",
          "kind": "minor",
          "published_at": "2020-07-31T18:53:18Z"
        },
        {
          "tag": "5.34.0",
          "kind": "minor",
          "published_at": "2020-07-01T14:34:50Z"
        },
        {
          "tag": "5.33.0",
          "kind": "minor",
          "published_at": "2020-06-01T14:25:58Z"
        },
        {
          "tag": "5.32.0",
          "kind": "minor",
          "published_at": "2020-05-01T14:42:45Z"
        },
        {
          "tag": "5.31.0",
          "kind": "minor",
          "published_at": "2020-04-01T15:27:37Z"
        },
        {
          "tag": "5.30.0",
          "kind": "minor",
          "published_at": "2020-02-28T17:27:07Z"
        },
        {
          "tag": "5.29.0",
          "kind": "minor",
          "published_at": "2020-01-31T20:51:15Z"
        },
        {
          "tag": "5.28.0",
          "kind": "minor",
          "published_at": "2019-12-31T22:22:55Z"
        },
        {
          "tag": "5.27.0",
          "kind": "minor",
          "published_at": "2019-11-27T18:45:08Z"
        },
        {
          "tag": "5.26.0",
          "kind": "minor",
          "published_at": "2019-11-01T16:00:20Z"
        },
        {
          "tag": "5.25.0",
          "kind": "minor",
          "published_at": "2019-10-01T15:03:06Z"
        },
        {
          "tag": "5.24.0",
          "kind": "minor",
          "published_at": "2019-08-30T17:43:49Z"
        },
        {
          "tag": "5.23.0",
          "kind": "minor",
          "published_at": "2019-08-01T16:19:43Z"
        },
        {
          "tag": "5.22.0",
          "kind": "minor",
          "published_at": "2019-07-01T14:13:59Z"
        },
        {
          "tag": "5.21.0",
          "kind": "minor",
          "published_at": "2019-06-01T17:21:52Z"
        },
        {
          "tag": "5.20.0",
          "kind": "minor",
          "published_at": "2019-05-01T15:21:14Z"
        },
        {
          "tag": "5.19.0",
          "kind": "minor",
          "published_at": "2019-04-02T16:28:15Z"
        },
        {
          "tag": "5.18.0",
          "kind": "minor",
          "published_at": "2019-03-01T13:59:17Z"
        },
        {
          "tag": "5.17.0",
          "kind": "minor",
          "published_at": "2019-02-01T16:14:06Z"
        },
        {
          "tag": "5.16.0",
          "kind": "minor",
          "published_at": "2019-01-02T18:07:51Z"
        },
        {
          "tag": "5.15.0",
          "kind": "minor",
          "published_at": "2018-11-30T17:21:47Z"
        },
        {
          "tag": "5.14.0",
          "kind": "minor",
          "published_at": "2018-11-01T14:32:34Z"
        },
        {
          "tag": "5.13.0",
          "kind": "minor",
          "published_at": "2018-10-01T14:21:17Z"
        },
        {
          "tag": "5.12.0",
          "kind": "minor",
          "published_at": "2018-08-31T15:39:17Z"
        },
        {
          "tag": "5.11.0",
          "kind": "minor",
          "published_at": "2018-08-01T15:13:42Z"
        },
        {
          "tag": "5.10.0",
          "kind": "minor",
          "published_at": "2018-07-01T16:34:27Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "bdb03b6d7f3076c9c0c4880975afb6d159a2e717",
          "body": "If there are multiple connections in the pool, there is no guarantee\nthat the same connection will be used for both statements by default,\nand TEMP creates a connection-specific table.",
          "is_bot": false,
          "headline": "Fix nondeterministic test failure in property graph spec",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-07-19T16:42:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e45652ceaba025573d336fbfe38e276a4eded5d",
          "body": "…roperty_graph_schema on PostgreSQL 19+\n\nrename_property_graph and set_property_graph_schema are separate\nmethods because we don't want the property graph name (schema\nqualified or not) to change inside an alter_property_graph block,\nas it could break operations after the rename/schema change.\n\nThis\n[…]\nple array of hashes,\nsimilar to how alter_table works.\n\nTo simplify the spec, it uses a transaction that is always rolled\nback, which is simpler than the code to manually roll back the\nschema changes.",
          "is_bot": false,
          "headline": "Add Database#alter_property_graph, #rename_property_graph, and #set_p…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-07-13T03:25:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6e118df5829f1a3eecc60bb6a10b0bc711839edd",
          "body": "…e symbols on PostgreSQL 19+\n\nThis is basic reflection support for property graphs. This doesn't\ninclude support for getting details about a property graph (no\nDatabase#schema alternative), but that can be added later if\nrequested.",
          "is_bot": false,
          "headline": "Add Database#property_graphs to return an array of property graph nam…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-07-13T01:39:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "114b59ccc13f35ef80d08ac6616ba56669341b89",
          "body": "…ostgreSQL documentation",
          "is_bot": false,
          "headline": "Move parsing check/foreign key constraints to reflection section of P…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-07-13T01:39:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "431979e60603b541f6b9f880579d33d6cb8597ca",
          "body": "…eSQL 19+\n\nThis implements GRAPH_TABLE support similarly to how datasets are\nimplemented, using a frozen object with a method chaining. This allows\nfor using a base graph table to create multiple graph tables, each of\nwhich is independent.",
          "is_bot": false,
          "headline": "Add Database#graph_table to support GRAPH_TABLE expressions on Postgr…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-07-13T01:39:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cef0e9cf8fbd35773939a1864975147f546aea1f",
          "body": "…n PostgreSQL 19+\n\nThis uses a DSL that is similar in some ways to the create_table\ngenerator, but uses an approach where the generator new method\nuses a generator instance to evaluate the block, but it returns\na frozen struct for the data. This makes things easier and is\nmore flexible, because you often want to use the same method name\nto modify things while the generator is running and to retrieve\nconfigured information after the generator is not running.",
          "is_bot": false,
          "headline": "Add Database#create_property_graph to support CREATE PROPERTY GRAPH o…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-07-13T01:39:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5609197d3d34b017c8f0afe26a02e65c316eee7a",
          "body": null,
          "is_bot": false,
          "headline": "Restore TruffleRuby on CI",
          "author_name": "Andrii Konchyn",
          "author_login": "andrykonchin",
          "committed_at": "2026-07-08T20:19:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c08bea8fd8b612af554b21b3fadb7929bc975f1f",
          "body": null,
          "is_bot": false,
          "headline": "Fix specs on TruffleRuby",
          "author_name": "Andrii Konchyn",
          "author_login": "andrykonchin",
          "committed_at": "2026-07-08T20:19:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da33051614c8efa149c10185ae0e8666ac13f067",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 5.106.0",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-07-01T15:46:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff18939e8fded91827784272b6cf6d55d7ff66ec",
          "body": null,
          "is_bot": false,
          "headline": "Test for FOR PORTION OF with table alias",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-06-29T23:25:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16f7ddfde73993bad5dafe26130248f445851364",
          "body": "…ALL) on PostgreSQL 19+",
          "is_bot": false,
          "headline": "Add Sequel::Constants::ALL to support GROUP BY ALL via group(Sequel::…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-06-27T20:08:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dbd90ff1c8e28343dcf9b5a03cdb0b0c59663ee2",
          "body": null,
          "is_bot": false,
          "headline": "Add example of Model.with_pk to querying documentation",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-06-12T14:53:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "933cf5a2e0d50537430896e4f7d9e08cf4e58968",
          "body": "I believe both approaches should result in the same SQL, but I'm not\n100% sure that's true in all cases. So to be conservative, use the\nprevious approach when not using FOR PORTION OF.",
          "is_bot": false,
          "headline": "Only use more complex approach if for_portion_of is used",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-06-08T18:49:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db78072759d1900c673ee4f79a6da726c54030a4",
          "body": "This is only supported for the following window functions in\nPostgreSQL 19: lag, lead, first_value, last_value, nth_value. It's\na little odd in that the IGNORE NULLS clause goes before the OVER\nclause. This doesn't add support for RESPECT NULLS, as that is the\ndefault.",
          "is_bot": false,
          "headline": "Support :ignore_nulls window function option on PostgreSQL 19+",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-06-05T22:03:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7cc5582d0f092b970fe98748ae126948d517183a",
          "body": "Because the FOR PORTION OF goes between the table and the alias, this\nrequires a bit more work than it otherwise would, but it's still a\nfairly simple addition.\n\nNote that DB2 and MariaDB both support FOR PORTION OF, but those\nrequire temporal tables instead of working with any range column.\nThis commit only implements support for PostgreSQL.",
          "is_bot": false,
          "headline": "Support UPDATE/DELETE FOR PORTION OF on PostgreSQL 19+",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-06-05T21:20:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed26b86119d851053526c2714278a2b136f7ed7e",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 5.105.0",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-06-01T14:28:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3708affbc4e6752f03d5cce2a3af9b32178c08d9",
          "body": null,
          "is_bot": false,
          "headline": "Fix typo in CHANGELOG [ci skip]",
          "author_name": "Yuki Fukuma",
          "author_login": "fkmy",
          "committed_at": "2026-05-31T20:26:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fda8ef45b72591f0c28c13d812b780e6a383407",
          "body": "With YJIT and Ruby 3.2+, shape-friendly code can be significantly\nfaster than non-shape-friendly code in many cases. On Ruby 3.2+\nwithout YJIT, shape-friendly code is faster to execute, but\ninitializing instance variables to nil is quite slow. On older\nRuby versions, there is not a significant advan\n[…]\nat removes nil instance variables\nduring marshalling and restores them on unmarshalling.\n\nTo run tests with shape-friendly mode on by default, use the\nSEQUEL_MODEL_SHAPE_FRIENDLY environment variable.",
          "is_bot": false,
          "headline": "Support shape-friendly Model instances via Model.shape_friendly = true",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-05-09T23:22:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2e33acc01faed49f8aeee8ddb364f8fa907cfb4e",
          "body": "…alizer\n\nThere were no explicit specs for this. The code was being run, but\nnow it appears to run after the coverage measurement, so it shows\nas uncovered. Add explicit specs to cover it.",
          "is_bot": false,
          "headline": "Add specs for Sequel::Database::AsyncThreadPool::JobProcessor.run_fin…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-05-09T03:17:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b184a7d52d00e61c726f246174c8a596632039ea",
          "body": "This avoids missing branch coverage, and it's better to raise an\nerror for external connection pool types that may not be handled.",
          "is_bot": false,
          "headline": "Switch conditionals in connection_expiration plugin",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-05-09T03:17:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "694ea77983746754e0035b1f8330f9091caa31e5",
          "body": "Remove register_queued_connections method, as it only applies to timed\nqueue pools, so in some cases it may not be used. Move the logic to a\nlambda inside extended, and only create it if a timed queue connection\npool is used.\n\nRename register_connection to register_connection_expiration_time to\nmake it clear from the name what it is doing. Also make it return the\nconnection, to simplify calling code.\n\nUpdate CHANGELOG.",
          "is_bot": false,
          "headline": "Minor changes to connection_expiration handling of initial connections",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-05-08T16:35:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c52de6420619d27c7166f1d2cd25a81f2a5e8176",
          "body": null,
          "is_bot": false,
          "headline": "Adds expiration for existing connections when added to a db",
          "author_name": "Jacob Feldman",
          "author_login": "cooljacob204",
          "committed_at": "2026-05-08T15:42:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a84e80fa5f619dd4d6699b12d67de2dab6f0666",
          "body": "This adds some additional doc files that are referenced, so links\ninside the documentation are created appropriately.",
          "is_bot": false,
          "headline": "Avoid rdoc-ref resolution errors when building plugin/extension rdoc",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-05-01T16:19:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4642b4a2b6cb4a711e615da26a5f3f0a6166981d",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 5.104.0",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-05-01T15:58:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "67d897c8b74cf88cb8f1e9f26b0b5d08db57cd11",
          "body": "Mention the % operator support, and update the string operator\nsupport to not imply that the mathematical operators do not support\nthe numeric coercion protocol.",
          "is_bot": false,
          "headline": "Fix some minor issues in the Sequel for SQL users guide",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-27T23:50:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdf0c1e88a3dd853376f52bd7d084f1c0223f9b2",
          "body": null,
          "is_bot": false,
          "headline": "Add JRuby 10.1 to matrix",
          "author_name": "Chad Wilson",
          "author_login": "chadlwilson",
          "committed_at": "2026-04-22T15:45:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f060c6c48e3e7f649943c9432b2e2ccaa0100e53",
          "body": null,
          "is_bot": false,
          "headline": "test: fix must_raise assertions on minitest 6.0.5",
          "author_name": "Chad Wilson",
          "author_login": "chadlwilson",
          "committed_at": "2026-04-22T14:28:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d40f4d3ff9ba23ca4ddb288651c777108109ae9b",
          "body": "These databases do not support LATERAL. The\nmssql_emulate_lateral_with_apply extension allows partial emulation\nof LATERAL into APPLY, but the emulation is not good enough to\nallow the :lateral_subquery limit strategy to work.",
          "is_bot": false,
          "headline": "Skip lateral_subquery association tests on MSSQL and SQLAnywhere",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-16T05:17:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "025bdf70e1c661f5fe2e18d8971506083d292721",
          "body": "Now that all :lateral_subquery is supported for all association\ntypes and all types of loading (eager loading, eager graphing,\nfiltering by associations, and dataset associations), it can be\nsimplified.",
          "is_bot": false,
          "headline": "Simplify lateral_subquery integration testing",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T07:16:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b826e2b34ae8c834c368d5c0952b19210dd90933",
          "body": "…in the dataset associations plugin\n\nThis builds on the eager loading support, since dataset associations\nare similar to eager loading, but filtering using a dataset instead\nof an array.\n\n```ruby\nArtist.one_to_many :first_10_albums, class: :Album, limit: 10,\n  filter_limit_strategy: :lateral_subquer\n[…]\n  FROM albums\n  WHERE (artists.id = albums.artist_id)\n  ORDER BY name\n  LIMIT 10\n) AS albums ON true\nWHERE (artists.id IN (\n  SELECT artists.id\n  FROM artists\n  WHERE (name > 'M')\n))\nORDER BY name\n```",
          "is_bot": false,
          "headline": "Support :lateral_subquery as a filter by associations limit strategy …",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T07:16:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "98a70d24ae89af546b56fd1fb201d90aae067b5e",
          "body": "Move apply_lateral_subquery_eager_limit_strategy to the\nAssociationReflection class, and override it as needed per assocation\ntype.\n\nAdd a lateral_subquery_eager_limit_strategy_lateral_dataset for\ncustomizing the lateral subquery, and override it for many_to_many\nto handle removing the associated key (which is on the main query\nand not on the lateral subquery).",
          "is_bot": false,
          "headline": "Refactor :lateral_subquery eager limit strategy support",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T07:16:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ad2e967e8ab35c9a57e5b9ef5e0e07cfbfb27f3",
          "body": "…_many/one_through_many associations\n\nThis inherits support from many_to_many, no code changes are needed.\n\n```ruby\nArtist.many_through_many :first_10_tags,\n  [[:albums, :artist_id, :id], [:albums_tags, :album_id, :tag_id]],\n  class: :Tag, limit: 10, order: :name,\n  eager_limit_strategy: :lateral_su\n[…]\n\n  INNER JOIN albums ON (albums.id = albums_tags.album_id)\n  WHERE (artists.id = albums.artist_id)\n  ORDER BY tags.name\n  LIMIT 10\n) AS tags ON true\nWHERE (artists.id IN (1, 2))\nORDER BY tags.name\n```",
          "is_bot": false,
          "headline": "Support :lateral_subquery as an eager limit strategy for many_through…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T06:55:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "49c7f746fc363809d4b929ca3536f2da13340333",
          "body": "Now that the main association types all support the strategy, we can\nlook at the code and see what is common for each. This extracts three\ngeneral association reflection methods:\n\n* apply_lateral_subquery_filter_limit_strategy: Top level method that\n  applies the entire filter\n\n* lateral_subquery_fi\n[…]\n:\n  The column(s) that the lateral dataset should select\n\nThe only change is to the SQL for the one_to_many/one_to_one\ncases, where the lateral subquery now only selects the specific\ncolumns it needs.",
          "is_bot": false,
          "headline": "Refactor :lateral_subquery filter by associations limit strategy code",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T06:55:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8f79b97d1a0b548b535fdcacba6d39fe8a1af5e7",
          "body": "…for many_through_many/one_through_many associations\n\nFrom my testing, this is about 30x faster than the\ndistinct on and window function strategies.\n\n```ruby\nAlbum.many_through_many :first_10_tags,\n  [[:albums, :artist_id, :id], [:albums_tags, :album_id, :tag_id]],\n  class: :Tag, limit: 10, order: :\n[…]\n= 1)\n  WHERE (artists.id IN (\n    SELECT albums.artist_id\n    FROM albums\n    INNER JOIN albums_tags ON (albums_tags.album_id = albums.id)\n    WHERE (albums_tags.tag_id = 1))\n  ))\n)\nORDER BY name;\n```",
          "is_bot": false,
          "headline": "Support :lateral_subquery as a filter by associations limit strategy …",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T06:55:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "af97ecca6b64c943f4bfb5f6bdd8cbf646f9acc7",
          "body": "…hrough_many/one_through_many associations\n\nThis was already supported when the many_to_many/one_through_one\nsupported was added, due to association reflection inheritance,\nthis just adds specs\n\nIn my testing, this is about 2-3x faster than the ruby strategy.",
          "is_bot": false,
          "headline": "Support :lateral_subquery as an eager_graph limit strategy for many_t…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T06:55:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c752737b053fd817ade423e576b10ed080c18660",
          "body": "…/one_through_one associations\n\n```ruby\nAlbum.many_to_many :first_10_tags, class: :Tag, limit: 10,\n  order: :name, eager_limit_strategy: :lateral_subquery\nAlbum(eager: :first_10_tags).all\n```\n\nSQL:\n\n```sql\nSELECT * FROM albums;\n\nSELECT tags.*, albums.id AS x_foreign_key_x\nFROM albums\nINNER JOIN LATE\n[…]\nFROM tags\n  INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id)\n  WHERE (albums_tags.album_id = albums.id)\n  ORDER BY name\n  LIMIT 10\n) AS tags ON true\nWHERE (albums.id IN (2))\nORDER BY name;\n```",
          "is_bot": false,
          "headline": "Support :lateral_subquery as an eager limit strategy for many_to_many…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T06:55:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a157b2865b305df7f134de3a528376dcec11c218",
          "body": "When including association specs through modules, the auto numbering\nof specs doesn't ensure uniqueness, if multiple modules have the\nsame spec name in the same position.",
          "is_bot": false,
          "headline": "Fix association spec names",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T06:55:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1dbf12f18fb924dda4770f29ae727a9fd4d7778",
          "body": "… for many_to_many/one_through_one associations\n\nFrom my testing, this is 30x faster than the distinct on and window\nfunction strategies.\n\n```ruby\nAlbum.many_to_many :first_10_tags, class: :Tag, limit: 10,\n  order: :num, filter_limit_strategy: :lateral_subquery\nAlbum.where(first_10_tags: Tag[3]).all\n[…]\n WHERE (albums.id = albums_tags.album_id)\n    ORDER BY num\n    LIMIT 10\n  ) AS tags ON (tags.id = 3)\n  WHERE (albums.id IN (\n    SELECT album_id\n    FROM albums_tags\n    WHERE (tag_id = 3)\n  ))\n))\n```",
          "is_bot": false,
          "headline": "Support :lateral_subquery as an filter by associations limit strategy…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T06:55:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "513b767ec1b79820c95317eab0f591818c77db26",
          "body": "This will allow more testing these in isolation without bringing\nin other specs.",
          "is_bot": false,
          "headline": "Move some association integration tests into separate modules",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T06:55:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a68237dac26a2d43572afee38aa78094be8253d5",
          "body": "…o_many/one_through_one associations\n\nFrom my testing, this is 2-3 times as fast as the :ruby strategy in\ncases with a lot of associated records and a small limit.\n\n```ruby\nArtist.many_to_many :first_10_albums, class: :Album, limit: 10, order: :release_date\nArtist.where(id: [1, 2]).eager_graph_with_\n[…]\nx = artists.id)\nWHERE (id IN (1, 2))\nORDER BY first_10_albums.release_date\n```\n\nThis actually fit in much easier than the one_to_many/one_to_one\nsupport, not requiring any changes to the general code.",
          "is_bot": false,
          "headline": "Support :lateral_subquery as an eager graph limit strategy for many_t…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T03:31:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a0c7e82c065adc78be0174f690cd1519585416f8",
          "body": "…one_to_one associations\n\nWhether this is faster than other strategies likely depends on the\ndatabase.\n\n```ruby\nArtist.where(id: [1, 2]).eager(:first_10_albums).all\n```\n\nSQL:\n\n```sql\nSELECT * FROM artists WHERE (id IN (1, 2))\n\nSELECT albums.*\nFROM artists\nINNER JOIN LATERAL (\n  SELECT *\n  FROM album\n[…]\neager block is provided).\n\nThis also inlines quite a bit of logic into\napply_lateral_subquery_eager_limit_strategy. Some of this may be\nextracted into another method if it can be reused by other code.",
          "is_bot": false,
          "headline": "Support :lateral_subquery as an eager limit strategy for one_to_many/…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-14T03:30:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "008698d98b07c4119890a542cac54e2f9d4b26ba",
          "body": "…for one_to_many/one_to_one associations\n\nThis can be over 100 times faster than the current filter limit\nstrategies, though most of that is due to additional subquery filter\nand not the use of LATERAL by itself.\n\n```ruby\nalbum = Album[1]\nalbum.artist_id # => 2\nArtist.where(first_10_albums: album).a\n[…]\nions_conditions_dataset.\n\nThis also inlines quite a bit of logic into\napply_lateral_subquery_filter_limit_strategy. Some of this may be\nextracted into another method if it can be reused by other code.",
          "is_bot": false,
          "headline": "Support :lateral_subquery as a filter by associations limit strategy …",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-09T03:29:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1aa11fbaedcaeac708fbbe671d26dc8a57089626",
          "body": "…_many/one_to_one associations\n\nThis is the first eager_graph limit strategy that appears to be faster\nthan the default strategy of retrieving all records and filtering in\nRuby.\n\n```\nArtist.eager_graph_with_options(:first_10_albums, limit_strategy: :lateral_subquery).all\n```\n\nSQL:\n\n```sql\nSELECT art\n[…]\nlateral_subquery case. As only one_to_many/one_to_one\nassociations current support the lateral_subquery case, this is not\ngreat, but there are future plans to support this for more\nassociations types.",
          "is_bot": false,
          "headline": "Support :lateral_subquery as an eager_graph limit strategy for one_to…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-09T03:29:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "973f60e004c51cddb63d94b0693cdbc8b01e0fab",
          "body": null,
          "is_bot": false,
          "headline": "Fix bad example code in 5.103.0 release notes",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-01T16:24:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37f97a1880291b0c5c12b2bb9e1f6aa939606ad5",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 5.103.0",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-01T16:09:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8792c732a5489ec1e5978e242ba51218ab3d9e5c",
          "body": "Minitest 6.0.3 made a backwards incompatible change to must_be_same_as\nto disallow nil values.",
          "is_bot": false,
          "headline": "Update specs to work with minitest 6.0.3",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-04-01T15:43:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "23634d8950a69e43528072aabf7e5e7b1fff1578",
          "body": "…erride argument values\n\nThis is mostly to catch problems such as:\n\n```ruby\ncolumn :column_name, :table_name, type: :type_name\n```\n\nIn this case, it was likely the intention that column should have\ninstead been foreign key, as the :table_name argument is ignored.\nBehavior here cannot be changed for \n[…]\nnly shows the file and line numbers in the warning on Ruby\n3.2+, as it uses Thread.each_caller_location. This could probably\nbe changed to support older Ruby versions, but I'm not sure it\nis worth it.",
          "is_bot": false,
          "headline": "Have column and add_column in the generators warn if option values ov…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-26T20:59:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fb3df68e3460189edbf8b54cc2336b114a4e555b",
          "body": "Use a simple if instead of case. Anything that is not an array can\nbe handled by _check_unfrozen_literal_string.",
          "is_bot": false,
          "headline": "Simplify code in lit_require_frozen",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-24T23:48:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "930b8860a01ed87905dd336473cc91c871f35e6c",
          "body": "…tion message\n\nThis should ease debugging. For exceptions other than NoMethodError,\nalso use a more descriptive exception method.\n\nTo handle add_primary_key with an array, have it call super so it\nraises NoMethodError, so that we report the problem. It might be\nslightly misleading, as add_primary_ke\n[…]\nerse method to use rescue/else\nwhile here.\n\nThe existing specs that didn't check the exception message sort of\nworked by accident. Check the exception message in all specs for\nirreversible migrations.",
          "is_bot": false,
          "headline": "Show method name causing change migration to be irreversible in excep…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-24T23:46:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1d68f7750444d9cf9a0b17cff05a4f21a3e55937",
          "body": "While it's unlikely to be helpful to have non-model columns in\nchanged_columns, the dirty plugin should not modify existing model\nbehavior unnecessarily.",
          "is_bot": false,
          "headline": "Always call super in Model#change_column_value in dirty plugin",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-23T17:05:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c48c9deef4b313b8c676ad2cc80b162b1a00230",
          "body": "…odel columns (Fixes #2357)",
          "is_bot": false,
          "headline": "Make dirty plugin handle the Model#[]= calls with keys that are not m…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-23T16:53:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e849fd3c87ebb5478900b17febc393e4fe89a98f",
          "body": null,
          "is_bot": false,
          "headline": "Fix doc typo: s/get get/to get/",
          "author_name": "J. Lewis Muir",
          "author_login": "jlmuir",
          "committed_at": "2026-03-23T03:44:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66e72a317afd855bc8b93e5480e38bd67e7b8ba8",
          "body": "These aren't vulnerabilities in the plugin itself, and they require\na separate attack to even be vulnerable, but I think it's still\nworth documenting them so users are aware.",
          "is_bot": false,
          "headline": "Document potential security concerns in the serialization plugin",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-21T17:27:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df447b4b2c0d7b82d7274c130d9156e6bf5d7b4c",
          "body": "The existing code was probably left over from Ruby 1.8 support.",
          "is_bot": false,
          "headline": "Use start_with? in the serialization plugin",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-21T17:16:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4bc3d4d3b11866ec1243104b8b0a2ba3992d3c90",
          "body": null,
          "is_bot": false,
          "headline": "Bump copyright year",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-14T20:20:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98450553ad334a7e33a90ec6de581806674b5365",
          "body": null,
          "is_bot": false,
          "headline": "Update to actions/checkout@v6",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-14T20:20:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2f26024cfccd10238e206dc3a4e989f83680f94",
          "body": "…d upstream\n\nNo deprecation warning yet, but the plan is to remove the adapter\nin Sequel 6.",
          "is_bot": false,
          "headline": "Soft-deprecate the jdbc/derby adapter, as Derby is no longer supporte…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-09T04:49:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1540a8f3a9522e307605adab2e2f85023a319711",
          "body": "…trings as literal SQL\n\nThis is designed for use with Ruby 3+ and frozen-string-literal,\nwhere interpolated string literals are unfrozen and may not be\nsafe, but uninterpolated string literals are frozen and are likely\nto be safe:\n\n  Probably safe, no exception raised\n  DB[\"SELECT * FROM t WHERE c > :v\", v: user_provided_string)\n\n  Potentially unsafe, raises Sequel::LitRequireFrozen::Error\n  DB[\"SELECT * FROM t WHERE c > '#{user_provided_string}'\"]",
          "is_bot": false,
          "headline": "Add lit_require_frozen extension, for disallowing usage of unfrozen s…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-04T05:03:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56a7300e3df406f948439b4772a1b9ddbf18c65f",
          "body": "This allows for overriding the behavior of appending a literal\nstring to a dataset. Prior to this, overriding the behavior\nrequired overriding the top-level literal_append method.",
          "is_bot": false,
          "headline": "Add Dataset#literal_literal_string_append private method",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-04T05:03:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da722f37844def9f925b1fcdfc81aa2877719797",
          "body": "This is to ensure strings in the evaled code are also frozen.",
          "is_bot": false,
          "headline": "Add frozen_string_literal magic comment to a couple evals",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-04T05:03:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5322096dba8e1edb937a42ccb473dd480f78cbf8",
          "body": "This adds freeze calls at numerous places internally, to prepare for\nan upcoming extension that can disallow operations on unfrozen\nstrings.",
          "is_bot": false,
          "headline": "Freeze more internally",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-04T05:03:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5231f7b12a59cc1122fe279d14c6bc53f887f4d9",
          "body": "…t filtering method\n\nWe do not know how large the literal string is, and the previous code\nwould attempt to duplicate it twice, once as an interpolated plain\nstring surrounded by parentheses, and second as a literal string\nwrapping that.\n\nThis new code still creates two objects, but both are small.\n\nThis changes the internal representation of the object, which\nbreaks a to_dot spec. Switch from using filter to select to keep\nthe spec simpler.",
          "is_bot": false,
          "headline": "Avoid creating multiple strings when passing literal string to datase…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-04T00:54:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "952d0c46434ecd6b1f81e30c5bba2378c540beb2",
          "body": "All specs except one pass, because the release process includes\ntesting with --debug=frozen-string-literal\n--enable-frozen-string-literal on Ruby 2.7.\n\nOnly affected spec is a pg_auto_parameterize extension spec, which\npasses with --debug=frozen-string-literal but fails without it.\nFix that by using String#dup to ensure there are two separate\nobjects being used.",
          "is_bot": false,
          "headline": "Add frozen_string_literal magic comment to spec files",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-03T20:20:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee7936438b615a9d290c05f9d8fd642bb6befae1",
          "body": "…ions\n\nfill_queue is used by the timed queue connection pool so that if there\nis a disconnection while a thread is waiting to checkout a connection,\na new connection is created immediately. However, you never need to\ncreate more new connections than there were disconnections to handle\nthat case. The\n[…]\n the\nmutexes, this isn't problematic, though it is slightly inefficient.\nConsidering disconnects should be rare, this shouldn't be a problem,\nand optimizing for disconnect handling is probably unwise.",
          "is_bot": false,
          "headline": "Have fill_queue create no more connections than there were disconnect…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-01T22:59:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7948e9ba6b4373aa649d4d374feddb0f3a77f506",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 5.102.0",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-03-01T19:02:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab3525552bc8de9cc7326da37f1de05df4c2b5ec",
          "body": "fill_queue starts a thread, so depending on timing, later expectations\ncan fail (seen locally with JRuby).",
          "is_bot": false,
          "headline": "Avoid nondeterministic behavior in timed queue connection pool specs",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-02-27T15:33:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3caf120f1b8f86fcecf0dcc1e03ef2c3b12e1c0f",
          "body": "…t handle shared_timed_queue connection pool (Fixes #2354)\n\nPreviously, these extensions did not handle the shared_timed_queue\nconnection pool when disconnecting connections. The\nsharded_timed_queue needs extra care due to it's management of the\npool size.  Add a disconnect_acquired_connection private method\nto the connection pool designed for use by these extensions, and\ncall that. Override the method in shared_timed_queue to correctly\ndecrement the size.",
          "is_bot": false,
          "headline": "Make connection_validator and connection_expiration extensions correc…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-02-25T16:34:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb8d60dd841b1319393f763eb4dffdd09c69bc44",
          "body": null,
          "is_bot": false,
          "headline": "Remove extra + in rdoc formatting",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-02-18T04:43:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c556c41f0e246c9ccbc41548353a79f08a91cf06",
          "body": null,
          "is_bot": false,
          "headline": "Fix doc typo: s/Sequel.connection/Sequel.connect/",
          "author_name": "J. Lewis Muir",
          "author_login": "jlmuir",
          "committed_at": "2026-02-18T03:53:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4bce3850a2b0199e3ad57dc80abe8b907f956fcd",
          "body": "…ck spec\n\nApparently, 10.times{Thread.pass} isn't enough. Use num_waiting on\nthe connection pool to wait until the second thread is definitely\nwaiting for a connection before proceding.\n\nWhile here, DRY up to the code that runs in separate threads.",
          "is_bot": false,
          "headline": "Fix nondeterministic test failure in connection_checkout_event_callba…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-02-01T17:43:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "211a41e2435afc41fe5ba3d1474877304d2bb4fd",
          "body": "…ing telemetry information",
          "is_bot": false,
          "headline": "Add connection_checkout_event_callback extension to assist in collect…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-02-01T17:22:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54b745c7597804d74fa8f8ccaa3625cf8a849ea5",
          "body": "…ion pools\n\nThese DRY some existing code up, and will allow for easier extension.\n\nFor the sharded connection pool, the server argument isn't used by\ndefault, but it is passed so extensions can use it.",
          "is_bot": false,
          "headline": "Add available and wait_until_available methods to timed queue connect…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-02-01T17:21:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e042ab7bbb936cde17019c2ff1507502bcdb56a2",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 5.101.0",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-02-01T17:05:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ea9e4544772bac8aa49c4a31775ce4afab44f07",
          "body": "Apparently MySQL 9.6.0 fails with the previous code, apparently\nchecking for a foreign key match before generating the primary key\nfor a self-referencing foreign key constraint.\n\nFailure:\n\nEagerly loading a tree structure#before_all:\nSequel::ForeignKeyConstraintViolation: Mysql2::Error: Cannot add o\n[…]\na foreign key constraint fails (`sequel_test`.`nodes`, CONSTRAINT `nodes_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `nodes` (`id`))\n\nThis started happening with MySQL 9.6.0. MySQL 9.5.0 worked fine.",
          "is_bot": false,
          "headline": "Work around regression in MySQL 9.6.0 in eager loader test",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-01-23T07:34:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4293be3cb8dbb50992e2ee7c55415928e728512e",
          "body": "Importantly, mention the only two cases where the return value\nshould be relied on.\n\nAlso document the behavior on PostgreSQL with RETURNING, since it\ncan be suprising.",
          "is_bot": false,
          "headline": "Document #import return values (Fixes #2347)",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-01-05T19:36:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ebcb7ab31f544867b20ec6a373969dc1ae01932",
          "body": "…nnecessary association options\n\nThis allows for detecting explicitly specified options that are the\nsame as Sequel's default for the option. The options then can be\nremoved, making the code cleaner (though less explicit).",
          "is_bot": false,
          "headline": "Add detect_unnecessary_association_options plugin to warn/raise for u…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-01-05T17:07:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25ee6b988d34c39e1f646230ade5eaf7769371d3",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 5.100.0",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2026-01-01T16:57:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c85ac912be9136da720ddd6f1fd132705e0e74e",
          "body": "…sh replacement\n\nUse Regexp.union instead of Array#map with Regexp.escape and\nArray#join.\n\nUse until instead of while true and break.\n\nAssume $1 will be set if there is a partition (the q[1..-1] fallback\nwas only used on Ruby < 1.9, where String#partition with regexp\ndidn't set $1).",
          "is_bot": false,
          "headline": "Simplify Sequel::SQL::PlaceholderLiteralString literalization with ha…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-22T20:50:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fbed5ce010b66a2098ebfd6164a26bc5e836e929",
          "body": null,
          "is_bot": false,
          "headline": "Add Ruby 4.0 to CI",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-22T00:51:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a91246a0f18a3353f9d1f6982f344cd05bcc8ca",
          "body": "The previous code was invalid, but happened to work on the common\ndatabases that have optimizations for import.",
          "is_bot": false,
          "headline": "Fix single_statement_dataset_destroy plugin test",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-18T21:42:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76ce8894fc6290c6f993cd2135d33f4cdc93c0c8",
          "body": "Instead of doing any mocking, register an actual adapter class,\ntest without mocking, and remove the registered adapter class.",
          "is_bot": false,
          "headline": "Simplify mocking replacement",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-18T20:37:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b237f2607b7cb90c84afda30b408357687978adf",
          "body": "This appears to be the only minitest mock/stub usage in the specs.\nminitest 6 moved the mock/stub code to a separate gem, and it's\nnot worth adding a dependency on that for one spec.",
          "is_bot": false,
          "headline": "Remove use of minitest stub",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-18T17:41:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd2ee9c4859aab9229bc922d57aa68b7ea80f325",
          "body": "These tests will fail on recent released versions of sequel_pg, due\nto a bug in sequel_pg. They will pass with sequel_pg's master branch.\nThere will be a sequel_pg release shortly containing the fix.",
          "is_bot": false,
          "headline": "Add spec for postgres adapter use_cursor with map/hash/set methods",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-16T21:35:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f7c775a0f40b99b3433ca5576e9eae90408db69",
          "body": "…ed_associations plugin\n\nPreviously, the :is_used association option only interacted with the\n:modify_associations plugin option, disabling the ignoring of this\nassociation. With this change, associations that use :is_used are\nnot reported as unused.\n\nWhile here, mention mocking as a possible cause of false positives\nwith this plugin.",
          "is_bot": false,
          "headline": "Do not report associations with :is_used option as unused in the unus…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-13T02:01:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3032873f770cd443b4496dc7583d24a79c43eb0a",
          "body": "…tput",
          "is_bot": false,
          "headline": "Make Postgres::PGRange#to_s an alias of #inspect, showing friendly ou…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-10T20:26:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0d918922ef05bd4b591a3ecf3e01c652519e6fd",
          "body": "…uses a single DELETE statement\n\nHistorically, Sequel has always used a separate DELETE query per\nrow, since dataset.destroy was the same as all(&:destroy). However,\nthe only readon to use destroy over delete is to run the destroy\nhooks. If you don't have around_destroy hooks, you can run the\nbefore\n[…]\nhe all\nmatches the number of rows deleted. If not, an exception is\nraised and the changes are rolled back. This will not catch\na case where an existing entry is removed and a new one is\nadded, though.",
          "is_bot": false,
          "headline": "Add single_statement_dataset_destroy plugin, so that dataset.destroy …",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-07T02:15:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "78c768713972fd6042a37878485df12fddbe0be6",
          "body": "This wasn't supported originally because COLLATE is handled as a\nseparate clause and not part of the type name. At least PostgreSQL\n9.1+ and MySQL support this.",
          "is_bot": false,
          "headline": "Support :collate option in set_column_type",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-07T01:08:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78e600b0755db11cd711a575374305795f32abc2",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 5.99.0",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-01T18:20:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9288c6fb82035726aa665ba106367ae8de9128c",
          "body": null,
          "is_bot": false,
          "headline": "Fix typo in CHANGELOG",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-12-01T18:20:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b3b9b6bd3cbf310a8e2a744573cb64a847ec8e9",
          "body": null,
          "is_bot": false,
          "headline": "Fix link to pg_auto_parameterize_duplicate_query_detection extension",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-24T16:06:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "caeddc85aa27115467342a7d605f605f411bf0e4",
          "body": "This will automatically optimize the case where sequel/core is\nloaded, then sequel/adapters/postgres (with sequel_pg), then\nsequel/model. Previously in that case, the model code optimizations\nwould be skipped.\n\nThis is done only if sequel_pg 1.18+ is used, because that is the\nfirst version that splits the model code into its own file.",
          "is_bot": false,
          "headline": "Require sequel_pg/model when loading models if sequel_pg 1.18+ is loaded",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-24T00:53:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "839bec6a457e83d12a3295106fce0b8519d3da58",
          "body": "These helped find some minor issues with sequel_pg",
          "is_bot": false,
          "headline": "Add a bunch of integration tests for dataset behavior",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-24T00:34:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e7cf0433e22a0ca67987ffacbf45f7aafaed8df",
          "body": "This was copied from _select_map, but select_set doesn't support\nan order (as sets are unordered), so it is not needed.",
          "is_bot": false,
          "headline": "Remove unnecessary line in Dataset#select_set",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-23T02:48:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "746d3e0039af4699203dd046b4c4a2d27a2b4bbf",
          "body": "… MSSQL, MySQL, and PostgreSQL",
          "is_bot": false,
          "headline": "Support passing a set as a Dataset#full_text_search terms argument on…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-23T02:48:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64839bd26667eeeade309d786ecf08e6a9e7a43f",
          "body": "…ache plugin",
          "is_bot": false,
          "headline": "Optimize Dataset#as_set calls to avoid queries in the subset_static_c…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-23T02:48:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0641461bfa600ff6bb56caf15505d069b237c98f",
          "body": null,
          "is_bot": false,
          "headline": "Optimize Model.as_set calls to avoid queries in the static_cache plugin",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-23T02:48:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8f003b7f4ffaf7ee4491848091fc1d8453fd86e",
          "body": "…ons plugin\n\nWhile here, add a test for filtering by associations with sets\nto the many_through_many plugin, but that did not require any\nchanges.",
          "is_bot": false,
          "headline": "Support filtering by associations with sets in the pg_array_associati…",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-23T02:48:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a03e33c9a0b8c9c4be150a6b9b23a9606181cabd",
          "body": null,
          "is_bot": false,
          "headline": "Support sets in the to_dot extension",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-23T02:48:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d43194893900957565c26e19af4dc0dadeaa97dd",
          "body": null,
          "is_bot": false,
          "headline": "Support splitting nil values from sets in the split_array_nil extension",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-23T02:48:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e357a2a0907efba3d9b66776c37c515ce0efcef3",
          "body": null,
          "is_bot": false,
          "headline": "Fix typo in PGRow::Parser#typecast documentation",
          "author_name": "Jeremy Evans",
          "author_login": "jeremyevans",
          "committed_at": "2025-11-23T02:48:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 164,
      "latest_release_at": "2026-07-01T15:46:47Z",
      "latest_release_tag": "5.106.0",
      "releases_from_tags": true,
      "days_since_last_push": 2,
      "active_weeks_last_year": 41,
      "days_since_latest_release": 20,
      "mean_days_between_releases": 30.3
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 57,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "sequel",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "rubygems",
          "matches_repo": true,
          "registry_url": "https://rubygems.org/gems/sequel",
          "is_deprecated": false,
          "latest_version": "5.106.0",
          "repository_url": "https://github.com/jeremyevans/sequel",
          "versions_count": 307,
          "total_downloads": 72208559,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2009-07-25T17:53:00Z",
          "latest_published_at": "2026-07-01T16:37:07.454000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 20
        }
      ]
    },
    "popularity": {
      "forks": 1075,
      "stars": 5087,
      "watchers": 106,
      "fork_history": {
        "days": [
          {
            "date": "2011-11-14",
            "count": 1
          },
          {
            "date": "2011-11-17",
            "count": 1
          },
          {
            "date": "2011-11-20",
            "count": 1
          },
          {
            "date": "2011-12-02",
            "count": 1
          },
          {
            "date": "2011-12-04",
            "count": 1
          },
          {
            "date": "2011-12-11",
            "count": 1
          },
          {
            "date": "2011-12-19",
            "count": 1
          },
          {
            "date": "2011-12-27",
            "count": 1
          },
          {
            "date": "2012-01-10",
            "count": 1
          },
          {
            "date": "2012-01-16",
            "count": 1
          },
          {
            "date": "2012-01-20",
            "count": 1
          },
          {
            "date": "2012-01-25",
            "count": 1
          },
          {
            "date": "2012-01-31",
            "count": 1
          },
          {
            "date": "2012-02-05",
            "count": 1
          },
          {
            "date": "2012-02-29",
            "count": 1
          },
          {
            "date": "2012-03-11",
            "count": 1
          },
          {
            "date": "2012-03-13",
            "count": 1
          },
          {
            "date": "2012-03-15",
            "count": 2
          },
          {
            "date": "2012-03-20",
            "count": 1
          },
          {
            "date": "2012-03-24",
            "count": 1
          },
          {
            "date": "2012-03-27",
            "count": 2
          },
          {
            "date": "2012-04-09",
            "count": 1
          },
          {
            "date": "2012-04-11",
            "count": 1
          },
          {
            "date": "2012-04-14",
            "count": 1
          },
          {
            "date": "2012-04-23",
            "count": 1
          },
          {
            "date": "2012-04-24",
            "count": 1
          },
          {
            "date": "2012-05-09",
            "count": 1
          },
          {
            "date": "2012-05-14",
            "count": 1
          },
          {
            "date": "2012-05-23",
            "count": 1
          },
          {
            "date": "2012-05-24",
            "count": 1
          },
          {
            "date": "2012-05-27",
            "count": 1
          },
          {
            "date": "2012-05-28",
            "count": 1
          },
          {
            "date": "2012-06-04",
            "count": 2
          },
          {
            "date": "2012-06-17",
            "count": 1
          },
          {
            "date": "2012-06-21",
            "count": 1
          },
          {
            "date": "2012-07-01",
            "count": 1
          },
          {
            "date": "2012-07-13",
            "count": 1
          },
          {
            "date": "2012-07-14",
            "count": 1
          },
          {
            "date": "2012-07-19",
            "count": 1
          },
          {
            "date": "2012-07-20",
            "count": 1
          },
          {
            "date": "2012-07-25",
            "count": 1
          },
          {
            "date": "2012-07-31",
            "count": 1
          },
          {
            "date": "2012-08-08",
            "count": 1
          },
          {
            "date": "2012-08-13",
            "count": 1
          },
          {
            "date": "2012-08-21",
            "count": 1
          },
          {
            "date": "2012-08-22",
            "count": 1
          },
          {
            "date": "2012-08-30",
            "count": 1
          },
          {
            "date": "2012-09-04",
            "count": 1
          },
          {
            "date": "2012-09-14",
            "count": 1
          },
          {
            "date": "2012-09-15",
            "count": 1
          },
          {
            "date": "2012-09-30",
            "count": 1
          },
          {
            "date": "2012-10-02",
            "count": 1
          },
          {
            "date": "2012-10-18",
            "count": 1
          },
          {
            "date": "2012-10-19",
            "count": 1
          },
          {
            "date": "2012-10-24",
            "count": 1
          },
          {
            "date": "2012-10-28",
            "count": 1
          },
          {
            "date": "2012-10-29",
            "count": 1
          },
          {
            "date": "2012-11-06",
            "count": 1
          },
          {
            "date": "2012-11-08",
            "count": 1
          },
          {
            "date": "2012-11-13",
            "count": 1
          },
          {
            "date": "2012-11-29",
            "count": 1
          },
          {
            "date": "2012-12-03",
            "count": 1
          },
          {
            "date": "2012-12-10",
            "count": 1
          },
          {
            "date": "2012-12-11",
            "count": 1
          },
          {
            "date": "2012-12-12",
            "count": 1
          },
          {
            "date": "2012-12-14",
            "count": 1
          },
          {
            "date": "2012-12-22",
            "count": 1
          },
          {
            "date": "2012-12-24",
            "count": 1
          },
          {
            "date": "2012-12-27",
            "count": 1
          },
          {
            "date": "2012-12-28",
            "count": 1
          },
          {
            "date": "2013-01-02",
            "count": 1
          },
          {
            "date": "2013-01-04",
            "count": 1
          },
          {
            "date": "2013-01-25",
            "count": 1
          },
          {
            "date": "2013-02-01",
            "count": 1
          },
          {
            "date": "2013-02-10",
            "count": 1
          },
          {
            "date": "2013-02-17",
            "count": 1
          },
          {
            "date": "2013-02-22",
            "count": 1
          },
          {
            "date": "2013-02-24",
            "count": 1
          },
          {
            "date": "2013-03-04",
            "count": 2
          },
          {
            "date": "2013-03-07",
            "count": 1
          },
          {
            "date": "2013-03-11",
            "count": 1
          },
          {
            "date": "2013-03-21",
            "count": 1
          },
          {
            "date": "2013-04-02",
            "count": 1
          },
          {
            "date": "2013-04-06",
            "count": 1
          },
          {
            "date": "2013-04-15",
            "count": 2
          },
          {
            "date": "2013-04-18",
            "count": 1
          },
          {
            "date": "2013-04-30",
            "count": 2
          },
          {
            "date": "2013-05-01",
            "count": 1
          },
          {
            "date": "2013-05-09",
            "count": 1
          },
          {
            "date": "2013-05-11",
            "count": 1
          },
          {
            "date": "2013-05-16",
            "count": 1
          },
          {
            "date": "2013-05-27",
            "count": 1
          },
          {
            "date": "2013-05-29",
            "count": 1
          },
          {
            "date": "2013-06-01",
            "count": 1
          },
          {
            "date": "2013-06-04",
            "count": 1
          },
          {
            "date": "2013-06-12",
            "count": 1
          },
          {
            "date": "2013-06-19",
            "count": 1
          },
          {
            "date": "2013-07-05",
            "count": 1
          },
          {
            "date": "2013-07-23",
            "count": 1
          },
          {
            "date": "2013-07-25",
            "count": 2
          },
          {
            "date": "2013-08-03",
            "count": 1
          },
          {
            "date": "2013-08-12",
            "count": 1
          },
          {
            "date": "2013-08-21",
            "count": 2
          },
          {
            "date": "2013-08-30",
            "count": 1
          },
          {
            "date": "2013-09-05",
            "count": 1
          },
          {
            "date": "2013-09-10",
            "count": 2
          },
          {
            "date": "2013-09-19",
            "count": 1
          },
          {
            "date": "2013-09-27",
            "count": 1
          },
          {
            "date": "2013-09-28",
            "count": 1
          },
          {
            "date": "2013-10-07",
            "count": 2
          },
          {
            "date": "2013-10-10",
            "count": 1
          },
          {
            "date": "2013-10-26",
            "count": 1
          },
          {
            "date": "2013-10-27",
            "count": 1
          },
          {
            "date": "2013-11-01",
            "count": 1
          },
          {
            "date": "2013-11-05",
            "count": 2
          },
          {
            "date": "2013-11-06",
            "count": 1
          },
          {
            "date": "2013-11-08",
            "count": 1
          },
          {
            "date": "2013-11-11",
            "count": 1
          },
          {
            "date": "2013-11-15",
            "count": 3
          },
          {
            "date": "2013-11-28",
            "count": 1
          },
          {
            "date": "2013-12-09",
            "count": 1
          },
          {
            "date": "2013-12-17",
            "count": 1
          },
          {
            "date": "2013-12-18",
            "count": 1
          },
          {
            "date": "2013-12-20",
            "count": 1
          },
          {
            "date": "2014-01-03",
            "count": 1
          },
          {
            "date": "2014-01-04",
            "count": 1
          },
          {
            "date": "2014-01-12",
            "count": 1
          },
          {
            "date": "2014-01-14",
            "count": 1
          },
          {
            "date": "2014-01-22",
            "count": 1
          },
          {
            "date": "2014-01-29",
            "count": 1
          },
          {
            "date": "2014-02-13",
            "count": 1
          },
          {
            "date": "2014-02-14",
            "count": 1
          },
          {
            "date": "2014-02-19",
            "count": 1
          },
          {
            "date": "2014-03-04",
            "count": 1
          },
          {
            "date": "2014-03-14",
            "count": 1
          },
          {
            "date": "2014-03-15",
            "count": 1
          },
          {
            "date": "2014-03-19",
            "count": 1
          },
          {
            "date": "2014-04-04",
            "count": 1
          },
          {
            "date": "2014-04-11",
            "count": 1
          },
          {
            "date": "2014-04-26",
            "count": 1
          },
          {
            "date": "2014-05-12",
            "count": 1
          },
          {
            "date": "2014-05-13",
            "count": 1
          },
          {
            "date": "2014-05-19",
            "count": 1
          },
          {
            "date": "2014-05-20",
            "count": 1
          },
          {
            "date": "2014-05-21",
            "count": 1
          },
          {
            "date": "2014-05-22",
            "count": 1
          },
          {
            "date": "2014-05-26",
            "count": 1
          },
          {
            "date": "2014-05-27",
            "count": 1
          },
          {
            "date": "2014-05-28",
            "count": 2
          },
          {
            "date": "2014-05-31",
            "count": 2
          },
          {
            "date": "2014-06-04",
            "count": 1
          },
          {
            "date": "2014-06-08",
            "count": 1
          },
          {
            "date": "2014-06-10",
            "count": 2
          },
          {
            "date": "2014-07-22",
            "count": 1
          },
          {
            "date": "2014-07-23",
            "count": 2
          },
          {
            "date": "2014-08-01",
            "count": 1
          },
          {
            "date": "2014-08-02",
            "count": 1
          },
          {
            "date": "2014-08-11",
            "count": 1
          },
          {
            "date": "2014-08-12",
            "count": 1
          },
          {
            "date": "2014-08-15",
            "count": 1
          },
          {
            "date": "2014-08-18",
            "count": 1
          },
          {
            "date": "2014-08-24",
            "count": 1
          },
          {
            "date": "2014-08-26",
            "count": 1
          },
          {
            "date": "2014-08-28",
            "count": 1
          },
          {
            "date": "2014-08-29",
            "count": 1
          },
          {
            "date": "2014-09-16",
            "count": 1
          },
          {
            "date": "2014-09-22",
            "count": 1
          },
          {
            "date": "2014-10-09",
            "count": 1
          },
          {
            "date": "2014-10-30",
            "count": 1
          },
          {
            "date": "2014-11-04",
            "count": 1
          },
          {
            "date": "2014-11-10",
            "count": 2
          },
          {
            "date": "2014-11-11",
            "count": 1
          },
          {
            "date": "2014-11-19",
            "count": 1
          },
          {
            "date": "2014-11-20",
            "count": 1
          },
          {
            "date": "2014-11-21",
            "count": 1
          },
          {
            "date": "2014-11-22",
            "count": 1
          },
          {
            "date": "2014-11-24",
            "count": 1
          },
          {
            "date": "2014-12-05",
            "count": 1
          },
          {
            "date": "2014-12-07",
            "count": 1
          },
          {
            "date": "2014-12-13",
            "count": 1
          },
          {
            "date": "2014-12-18",
            "count": 1
          },
          {
            "date": "2014-12-22",
            "count": 1
          },
          {
            "date": "2014-12-28",
            "count": 1
          },
          {
            "date": "2015-01-07",
            "count": 1
          },
          {
            "date": "2015-01-15",
            "count": 1
          },
          {
            "date": "2015-01-17",
            "count": 1
          },
          {
            "date": "2015-01-23",
            "count": 1
          },
          {
            "date": "2015-01-24",
            "count": 1
          },
          {
            "date": "2015-01-26",
            "count": 1
          },
          {
            "date": "2015-02-02",
            "count": 2
          },
          {
            "date": "2015-02-11",
            "count": 1
          },
          {
            "date": "2015-02-14",
            "count": 1
          },
          {
            "date": "2015-02-20",
            "count": 1
          },
          {
            "date": "2015-02-24",
            "count": 1
          },
          {
            "date": "2015-03-01",
            "count": 1
          },
          {
            "date": "2015-03-02",
            "count": 1
          },
          {
            "date": "2015-03-05",
            "count": 1
          },
          {
            "date": "2015-03-10",
            "count": 2
          },
          {
            "date": "2015-03-14",
            "count": 1
          },
          {
            "date": "2015-03-23",
            "count": 2
          },
          {
            "date": "2015-03-29",
            "count": 1
          },
          {
            "date": "2015-04-07",
            "count": 1
          },
          {
            "date": "2015-04-08",
            "count": 1
          },
          {
            "date": "2015-04-09",
            "count": 1
          },
          {
            "date": "2015-04-10",
            "count": 1
          },
          {
            "date": "2015-04-12",
            "count": 1
          },
          {
            "date": "2015-04-14",
            "count": 1
          },
          {
            "date": "2015-04-21",
            "count": 1
          },
          {
            "date": "2015-04-22",
            "count": 2
          },
          {
            "date": "2015-04-24",
            "count": 2
          },
          {
            "date": "2015-04-26",
            "count": 1
          },
          {
            "date": "2015-04-29",
            "count": 1
          },
          {
            "date": "2015-05-06",
            "count": 1
          },
          {
            "date": "2015-05-19",
            "count": 1
          },
          {
            "date": "2015-05-21",
            "count": 1
          },
          {
            "date": "2015-05-23",
            "count": 1
          },
          {
            "date": "2015-05-26",
            "count": 1
          },
          {
            "date": "2015-05-27",
            "count": 1
          },
          {
            "date": "2015-06-04",
            "count": 1
          },
          {
            "date": "2015-06-11",
            "count": 1
          },
          {
            "date": "2015-06-19",
            "count": 2
          },
          {
            "date": "2015-06-23",
            "count": 1
          },
          {
            "date": "2015-06-26",
            "count": 1
          },
          {
            "date": "2015-06-27",
            "count": 1
          },
          {
            "date": "2015-06-30",
            "count": 1
          },
          {
            "date": "2015-07-14",
            "count": 1
          },
          {
            "date": "2015-07-15",
            "count": 1
          },
          {
            "date": "2015-07-20",
            "count": 1
          },
          {
            "date": "2015-07-21",
            "count": 1
          },
          {
            "date": "2015-07-22",
            "count": 1
          },
          {
            "date": "2015-07-24",
            "count": 1
          },
          {
            "date": "2015-07-25",
            "count": 1
          },
          {
            "date": "2015-07-26",
            "count": 1
          },
          {
            "date": "2015-07-27",
            "count": 1
          },
          {
            "date": "2015-07-28",
            "count": 1
          },
          {
            "date": "2015-07-30",
            "count": 1
          },
          {
            "date": "2015-08-05",
            "count": 1
          },
          {
            "date": "2015-08-13",
            "count": 1
          },
          {
            "date": "2015-08-24",
            "count": 1
          },
          {
            "date": "2015-09-04",
            "count": 1
          },
          {
            "date": "2015-09-17",
            "count": 1
          },
          {
            "date": "2015-10-05",
            "count": 1
          },
          {
            "date": "2015-10-06",
            "count": 1
          },
          {
            "date": "2015-10-15",
            "count": 1
          },
          {
            "date": "2015-10-26",
            "count": 1
          },
          {
            "date": "2015-10-29",
            "count": 1
          },
          {
            "date": "2015-11-08",
            "count": 1
          },
          {
            "date": "2015-11-17",
            "count": 1
          },
          {
            "date": "2015-11-18",
            "count": 2
          },
          {
            "date": "2015-11-19",
            "count": 1
          },
          {
            "date": "2015-11-20",
            "count": 3
          },
          {
            "date": "2015-11-27",
            "count": 1
          },
          {
            "date": "2015-12-11",
            "count": 2
          },
          {
            "date": "2015-12-13",
            "count": 1
          },
          {
            "date": "2015-12-21",
            "count": 1
          },
          {
            "date": "2015-12-28",
            "count": 2
          },
          {
            "date": "2015-12-29",
            "count": 1
          },
          {
            "date": "2016-01-03",
            "count": 1
          },
          {
            "date": "2016-01-04",
            "count": 1
          },
          {
            "date": "2016-01-11",
            "count": 1
          },
          {
            "date": "2016-01-12",
            "count": 1
          },
          {
            "date": "2016-01-14",
            "count": 1
          },
          {
            "date": "2016-01-29",
            "count": 1
          },
          {
            "date": "2016-02-08",
            "count": 1
          },
          {
            "date": "2016-02-10",
            "count": 2
          },
          {
            "date": "2016-02-18",
            "count": 2
          },
          {
            "date": "2016-02-28",
            "count": 1
          },
          {
            "date": "2016-03-02",
            "count": 1
          },
          {
            "date": "2016-03-03",
            "count": 1
          },
          {
            "date": "2016-03-04",
            "count": 1
          },
          {
            "date": "2016-03-18",
            "count": 1
          },
          {
            "date": "2016-03-22",
            "count": 1
          },
          {
            "date": "2016-03-31",
            "count": 1
          },
          {
            "date": "2016-04-01",
            "count": 2
          },
          {
            "date": "2016-04-09",
            "count": 1
          },
          {
            "date": "2016-04-13",
            "count": 1
          },
          {
            "date": "2016-04-14",
            "count": 1
          },
          {
            "date": "2016-04-15",
            "count": 1
          },
          {
            "date": "2016-04-17",
            "count": 1
          },
          {
            "date": "2016-04-18",
            "count": 1
          },
          {
            "date": "2016-04-22",
            "count": 1
          },
          {
            "date": "2016-04-26",
            "count": 1
          },
          {
            "date": "2016-05-01",
            "count": 1
          },
          {
            "date": "2016-05-02",
            "count": 1
          },
          {
            "date": "2016-05-03",
            "count": 2
          },
          {
            "date": "2016-05-04",
            "count": 2
          },
          {
            "date": "2016-05-11",
            "count": 1
          },
          {
            "date": "2016-05-12",
            "count": 1
          },
          {
            "date": "2016-05-18",
            "count": 1
          },
          {
            "date": "2016-05-23",
            "count": 1
          },
          {
            "date": "2016-05-24",
            "count": 1
          },
          {
            "date": "2016-06-01",
            "count": 1
          },
          {
            "date": "2016-06-02",
            "count": 1
          },
          {
            "date": "2016-06-04",
            "count": 1
          },
          {
            "date": "2016-06-07",
            "count": 1
          },
          {
            "date": "2016-06-14",
            "count": 1
          },
          {
            "date": "2016-06-16",
            "count": 1
          },
          {
            "date": "2016-06-20",
            "count": 1
          },
          {
            "date": "2016-06-22",
            "count": 1
          },
          {
            "date": "2016-06-29",
            "count": 1
          },
          {
            "date": "2016-07-04",
            "count": 1
          },
          {
            "date": "2016-07-05",
            "count": 1
          },
          {
            "date": "2016-07-10",
            "count": 1
          },
          {
            "date": "2016-07-13",
            "count": 1
          },
          {
            "date": "2016-07-25",
            "count": 1
          },
          {
            "date": "2016-07-27",
            "count": 1
          },
          {
            "date": "2016-08-03",
            "count": 1
          },
          {
            "date": "2016-08-04",
            "count": 1
          },
          {
            "date": "2016-08-07",
            "count": 1
          },
          {
            "date": "2016-08-15",
            "count": 2
          },
          {
            "date": "2016-08-18",
            "count": 1
          },
          {
            "date": "2016-08-23",
            "count": 1
          },
          {
            "date": "2016-08-25",
            "count": 1
          },
          {
            "date": "2016-08-26",
            "count": 1
          },
          {
            "date": "2016-08-30",
            "count": 1
          },
          {
            "date": "2016-09-09",
            "count": 1
          },
          {
            "date": "2016-09-14",
            "count": 1
          },
          {
            "date": "2016-09-16",
            "count": 1
          },
          {
            "date": "2016-09-19",
            "count": 1
          },
          {
            "date": "2016-09-20",
            "count": 1
          },
          {
            "date": "2016-09-22",
            "count": 2
          },
          {
            "date": "2016-09-25",
            "count": 1
          },
          {
            "date": "2016-09-29",
            "count": 1
          },
          {
            "date": "2016-10-05",
            "count": 1
          },
          {
            "date": "2016-10-11",
            "count": 1
          },
          {
            "date": "2016-10-13",
            "count": 1
          },
          {
            "date": "2016-10-18",
            "count": 1
          },
          {
            "date": "2016-10-19",
            "count": 1
          },
          {
            "date": "2016-10-26",
            "count": 1
          },
          {
            "date": "2016-11-03",
            "count": 1
          },
          {
            "date": "2016-11-11",
            "count": 1
          },
          {
            "date": "2016-11-18",
            "count": 1
          },
          {
            "date": "2016-11-22",
            "count": 2
          },
          {
            "date": "2016-11-25",
            "count": 1
          },
          {
            "date": "2016-11-29",
            "count": 2
          },
          {
            "date": "2016-12-01",
            "count": 1
          },
          {
            "date": "2016-12-08",
            "count": 1
          },
          {
            "date": "2016-12-10",
            "count": 2
          },
          {
            "date": "2016-12-13",
            "count": 1
          },
          {
            "date": "2016-12-16",
            "count": 1
          },
          {
            "date": "2016-12-19",
            "count": 1
          },
          {
            "date": "2016-12-20",
            "count": 1
          },
          {
            "date": "2016-12-21",
            "count": 2
          },
          {
            "date": "2016-12-22",
            "count": 1
          },
          {
            "date": "2016-12-23",
            "count": 2
          },
          {
            "date": "2016-12-24",
            "count": 1
          },
          {
            "date": "2017-01-04",
            "count": 1
          },
          {
            "date": "2017-01-09",
            "count": 2
          },
          {
            "date": "2017-01-11",
            "count": 1
          },
          {
            "date": "2017-01-12",
            "count": 1
          },
          {
            "date": "2017-01-20",
            "count": 1
          },
          {
            "date": "2017-01-23",
            "count": 1
          },
          {
            "date": "2017-01-26",
            "count": 1
          },
          {
            "date": "2017-01-31",
            "count": 1
          },
          {
            "date": "2017-02-01",
            "count": 1
          },
          {
            "date": "2017-02-02",
            "count": 1
          },
          {
            "date": "2017-02-08",
            "count": 2
          },
          {
            "date": "2017-02-13",
            "count": 1
          },
          {
            "date": "2017-02-15",
            "count": 1
          },
          {
            "date": "2017-02-21",
            "count": 1
          },
          {
            "date": "2017-02-28",
            "count": 1
          },
          {
            "date": "2017-03-01",
            "count": 2
          },
          {
            "date": "2017-03-03",
            "count": 1
          },
          {
            "date": "2017-03-06",
            "count": 1
          },
          {
            "date": "2017-03-08",
            "count": 1
          },
          {
            "date": "2017-03-11",
            "count": 1
          },
          {
            "date": "2017-03-15",
            "count": 1
          },
          {
            "date": "2017-03-23",
            "count": 1
          },
          {
            "date": "2017-03-24",
            "count": 1
          },
          {
            "date": "2017-03-29",
            "count": 2
          },
          {
            "date": "2017-04-05",
            "count": 1
          },
          {
            "date": "2017-04-15",
            "count": 1
          },
          {
            "date": "2017-04-18",
            "count": 1
          },
          {
            "date": "2017-04-20",
            "count": 1
          },
          {
            "date": "2017-04-21",
            "count": 1
          },
          {
            "date": "2017-04-23",
            "count": 1
          },
          {
            "date": "2017-04-24",
            "count": 1
          },
          {
            "date": "2017-04-25",
            "count": 1
          },
          {
            "date": "2017-04-26",
            "count": 1
          },
          {
            "date": "2017-05-02",
            "count": 1
          },
          {
            "date": "2017-05-03",
            "count": 2
          },
          {
            "date": "2017-05-05",
            "count": 1
          },
          {
            "date": "2017-05-09",
            "count": 1
          },
          {
            "date": "2017-05-12",
            "count": 1
          },
          {
            "date": "2017-05-18",
            "count": 1
          },
          {
            "date": "2017-05-24",
            "count": 1
          },
          {
            "date": "2017-05-28",
            "count": 1
          },
          {
            "date": "2017-05-30",
            "count": 1
          },
          {
            "date": "2017-06-07",
            "count": 1
          },
          {
            "date": "2017-06-21",
            "count": 1
          },
          {
            "date": "2017-06-23",
            "count": 1
          },
          {
            "date": "2017-07-02",
            "count": 1
          },
          {
            "date": "2017-07-03",
            "count": 1
          },
          {
            "date": "2017-07-04",
            "count": 1
          },
          {
            "date": "2017-07-07",
            "count": 1
          },
          {
            "date": "2017-07-15",
            "count": 1
          },
          {
            "date": "2017-07-17",
            "count": 1
          },
          {
            "date": "2017-07-21",
            "count": 1
          },
          {
            "date": "2017-07-25",
            "count": 2
          },
          {
            "date": "2017-07-26",
            "count": 1
          },
          {
            "date": "2017-07-27",
            "count": 1
          },
          {
            "date": "2017-07-30",
            "count": 1
          },
          {
            "date": "2017-08-02",
            "count": 1
          },
          {
            "date": "2017-08-08",
            "count": 1
          },
          {
            "date": "2017-08-09",
            "count": 1
          },
          {
            "date": "2017-08-11",
            "count": 1
          },
          {
            "date": "2017-08-14",
            "count": 1
          },
          {
            "date": "2017-08-16",
            "count": 1
          },
          {
            "date": "2017-08-18",
            "count": 1
          },
          {
            "date": "2017-08-22",
            "count": 1
          },
          {
            "date": "2017-08-25",
            "count": 1
          },
          {
            "date": "2017-08-28",
            "count": 1
          },
          {
            "date": "2017-08-29",
            "count": 1
          },
          {
            "date": "2017-08-30",
            "count": 2
          },
          {
            "date": "2017-09-02",
            "count": 1
          },
          {
            "date": "2017-09-05",
            "count": 1
          },
          {
            "date": "2017-09-11",
            "count": 1
          },
          {
            "date": "2017-09-12",
            "count": 1
          },
          {
            "date": "2017-09-19",
            "count": 1
          },
          {
            "date": "2017-09-20",
            "count": 1
          },
          {
            "date": "2017-09-22",
            "count": 1
          },
          {
            "date": "2017-09-26",
            "count": 1
          },
          {
            "date": "2017-09-27",
            "count": 1
          },
          {
            "date": "2017-10-01",
            "count": 1
          },
          {
            "date": "2017-10-02",
            "count": 1
          },
          {
            "date": "2017-10-03",
            "count": 1
          },
          {
            "date": "2017-10-08",
            "count": 1
          },
          {
            "date": "2017-10-10",
            "count": 1
          },
          {
            "date": "2017-10-13",
            "count": 1
          },
          {
            "date": "2017-10-17",
            "count": 1
          },
          {
            "date": "2017-10-19",
            "count": 1
          },
          {
            "date": "2017-10-25",
            "count": 1
          },
          {
            "date": "2017-11-01",
            "count": 2
          },
          {
            "date": "2017-11-08",
            "count": 1
          },
          {
            "date": "2017-11-09",
            "count": 2
          },
          {
            "date": "2017-11-10",
            "count": 1
          },
          {
            "date": "2017-11-21",
            "count": 1
          },
          {
            "date": "2017-11-22",
            "count": 1
          },
          {
            "date": "2017-11-27",
            "count": 1
          },
          {
            "date": "2017-11-30",
            "count": 1
          },
          {
            "date": "2017-12-05",
            "count": 1
          },
          {
            "date": "2017-12-11",
            "count": 1
          },
          {
            "date": "2017-12-13",
            "count": 2
          },
          {
            "date": "2017-12-15",
            "count": 1
          },
          {
            "date": "2017-12-20",
            "count": 1
          },
          {
            "date": "2017-12-23",
            "count": 1
          },
          {
            "date": "2018-01-02",
            "count": 1
          },
          {
            "date": "2018-01-03",
            "count": 1
          },
          {
            "date": "2018-01-04",
            "count": 2
          },
          {
            "date": "2018-01-11",
            "count": 2
          },
          {
            "date": "2018-01-12",
            "count": 1
          },
          {
            "date": "2018-01-16",
            "count": 1
          },
          {
            "date": "2018-01-17",
            "count": 1
          },
          {
            "date": "2018-01-20",
            "count": 1
          },
          {
            "date": "2018-01-24",
            "count": 1
          },
          {
            "date": "2018-01-25",
            "count": 1
          },
          {
            "date": "2018-01-29",
            "count": 3
          },
          {
            "date": "2018-01-31",
            "count": 2
          },
          {
            "date": "2018-02-01",
            "count": 1
          },
          {
            "date": "2018-02-05",
            "count": 1
          },
          {
            "date": "2018-02-08",
            "count": 1
          },
          {
            "date": "2018-02-12",
            "count": 2
          },
          {
            "date": "2018-02-16",
            "count": 1
          },
          {
            "date": "2018-02-18",
            "count": 1
          },
          {
            "date": "2018-02-21",
            "count": 1
          },
          {
            "date": "2018-02-22",
            "count": 1
          },
          {
            "date": "2018-03-05",
            "count": 1
          },
          {
            "date": "2018-03-07",
            "count": 1
          },
          {
            "date": "2018-03-09",
            "count": 1
          },
          {
            "date": "2018-03-11",
            "count": 1
          },
          {
            "date": "2018-03-15",
            "count": 1
          },
          {
            "date": "2018-03-18",
            "count": 1
          },
          {
            "date": "2018-03-20",
            "count": 1
          },
          {
            "date": "2018-03-27",
            "count": 1
          },
          {
            "date": "2018-03-28",
            "count": 1
          },
          {
            "date": "2018-03-29",
            "count": 3
          },
          {
            "date": "2018-03-31",
            "count": 1
          },
          {
            "date": "2018-04-01",
            "count": 2
          },
          {
            "date": "2018-04-08",
            "count": 1
          },
          {
            "date": "2018-04-10",
            "count": 1
          },
          {
            "date": "2018-04-12",
            "count": 2
          },
          {
            "date": "2018-04-18",
            "count": 1
          },
          {
            "date": "2018-04-19",
            "count": 1
          },
          {
            "date": "2018-04-20",
            "count": 1
          },
          {
            "date": "2018-04-23",
            "count": 1
          },
          {
            "date": "2018-04-24",
            "count": 1
          },
          {
            "date": "2018-04-26",
            "count": 1
          },
          {
            "date": "2018-04-27",
            "count": 1
          },
          {
            "date": "2018-04-29",
            "count": 1
          },
          {
            "date": "2018-05-02",
            "count": 1
          },
          {
            "date": "2018-05-03",
            "count": 1
          },
          {
            "date": "2018-05-04",
            "count": 1
          },
          {
            "date": "2018-05-09",
            "count": 2
          },
          {
            "date": "2018-05-10",
            "count": 1
          },
          {
            "date": "2018-05-15",
            "count": 1
          },
          {
            "date": "2018-05-16",
            "count": 2
          },
          {
            "date": "2018-05-17",
            "count": 2
          },
          {
            "date": "2018-05-18",
            "count": 1
          },
          {
            "date": "2018-05-19",
            "count": 1
          },
          {
            "date": "2018-05-20",
            "count": 1
          },
          {
            "date": "2018-05-24",
            "count": 1
          },
          {
            "date": "2018-05-25",
            "count": 2
          },
          {
            "date": "2018-05-30",
            "count": 3
          },
          {
            "date": "2018-06-04",
            "count": 1
          },
          {
            "date": "2018-06-08",
            "count": 2
          },
          {
            "date": "2018-06-12",
            "count": 1
          },
          {
            "date": "2018-06-15",
            "count": 1
          },
          {
            "date": "2018-06-18",
            "count": 2
          },
          {
            "date": "2018-06-19",
            "count": 1
          },
          {
            "date": "2018-06-20",
            "count": 3
          },
          {
            "date": "2018-06-22",
            "count": 1
          },
          {
            "date": "2018-07-03",
            "count": 2
          },
          {
            "date": "2018-07-04",
            "count": 1
          },
          {
            "date": "2018-07-06",
            "count": 1
          },
          {
            "date": "2018-07-10",
            "count": 1
          },
          {
            "date": "2018-07-19",
            "count": 1
          },
          {
            "date": "2018-07-20",
            "count": 1
          },
          {
            "date": "2018-07-31",
            "count": 1
          },
          {
            "date": "2018-08-08",
            "count": 1
          },
          {
            "date": "2018-08-21",
            "count": 1
          },
          {
            "date": "2018-08-22",
            "count": 2
          },
          {
            "date": "2018-08-24",
            "count": 2
          },
          {
            "date": "2018-08-25",
            "count": 1
          },
          {
            "date": "2018-08-30",
            "count": 1
          },
          {
            "date": "2018-09-10",
            "count": 1
          },
          {
            "date": "2018-09-11",
            "count": 1
          },
          {
            "date": "2018-09-13",
            "count": 1
          },
          {
            "date": "2018-09-21",
            "count": 1
          },
          {
            "date": "2018-10-03",
            "count": 2
          },
          {
            "date": "2018-10-05",
            "count": 1
          },
          {
            "date": "2018-10-12",
            "count": 1
          },
          {
            "date": "2018-10-23",
            "count": 2
          },
          {
            "date": "2018-10-26",
            "count": 1
          },
          {
            "date": "2018-10-27",
            "count": 1
          },
          {
            "date": "2018-10-29",
            "count": 1
          },
          {
            "date": "2018-11-05",
            "count": 1
          },
          {
            "date": "2018-11-09",
            "count": 1
          },
          {
            "date": "2018-11-13",
            "count": 1
          },
          {
            "date": "2018-11-15",
            "count": 2
          },
          {
            "date": "2018-11-25",
            "count": 1
          },
          {
            "date": "2018-11-26",
            "count": 1
          },
          {
            "date": "2018-11-29",
            "count": 1
          },
          {
            "date": "2018-11-30",
            "count": 2
          },
          {
            "date": "2018-12-03",
            "count": 1
          },
          {
            "date": "2018-12-10",
            "count": 1
          },
          {
            "date": "2018-12-23",
            "count": 1
          },
          {
            "date": "2019-01-08",
            "count": 1
          },
          {
            "date": "2019-01-15",
            "count": 1
          },
          {
            "date": "2019-01-17",
            "count": 1
          },
          {
            "date": "2019-01-21",
            "count": 1
          },
          {
            "date": "2019-01-24",
            "count": 1
          },
          {
            "date": "2019-01-30",
            "count": 1
          },
          {
            "date": "2019-02-01",
            "count": 1
          },
          {
            "date": "2019-02-12",
            "count": 1
          },
          {
            "date": "2019-02-13",
            "count": 1
          },
          {
            "date": "2019-02-14",
            "count": 1
          },
          {
            "date": "2019-02-18",
            "count": 1
          },
          {
            "date": "2019-02-19",
            "count": 2
          },
          {
            "date": "2019-02-23",
            "count": 1
          },
          {
            "date": "2019-02-25",
            "count": 1
          },
          {
            "date": "2019-03-10",
            "count": 2
          },
          {
            "date": "2019-03-14",
            "count": 2
          },
          {
            "date": "2019-03-17",
            "count": 1
          },
          {
            "date": "2019-04-01",
            "count": 1
          },
          {
            "date": "2019-04-08",
            "count": 1
          },
          {
            "date": "2019-04-11",
            "count": 2
          },
          {
            "date": "2019-04-17",
            "count": 2
          },
          {
            "date": "2019-04-18",
            "count": 1
          },
          {
            "date": "2019-04-20",
            "count": 1
          },
          {
            "date": "2019-04-21",
            "count": 1
          },
          {
            "date": "2019-04-23",
            "count": 2
          },
          {
            "date": "2019-04-26",
            "count": 1
          },
          {
            "date": "2019-05-02",
            "count": 3
          },
          {
            "date": "2019-05-08",
            "count": 1
          },
          {
            "date": "2019-05-10",
            "count": 1
          },
          {
            "date": "2019-05-13",
            "count": 1
          },
          {
            "date": "2019-05-14",
            "count": 1
          },
          {
            "date": "2019-05-20",
            "count": 1
          },
          {
            "date": "2019-05-26",
            "count": 1
          },
          {
            "date": "2019-05-30",
            "count": 2
          },
          {
            "date": "2019-06-02",
            "count": 1
          },
          {
            "date": "2019-06-03",
            "count": 1
          },
          {
            "date": "2019-06-10",
            "count": 1
          },
          {
            "date": "2019-06-13",
            "count": 2
          },
          {
            "date": "2019-06-18",
            "count": 1
          },
          {
            "date": "2019-06-19",
            "count": 2
          },
          {
            "date": "2019-06-24",
            "count": 1
          },
          {
            "date": "2019-06-26",
            "count": 2
          },
          {
            "date": "2019-06-27",
            "count": 1
          },
          {
            "date": "2019-07-02",
            "count": 1
          },
          {
            "date": "2019-07-07",
            "count": 1
          },
          {
            "date": "2019-07-08",
            "count": 1
          },
          {
            "date": "2019-07-09",
            "count": 1
          },
          {
            "date": "2019-07-10",
            "count": 1
          },
          {
            "date": "2019-07-14",
            "count": 1
          },
          {
            "date": "2019-07-15",
            "count": 1
          },
          {
            "date": "2019-07-16",
            "count": 1
          },
          {
            "date": "2019-07-17",
            "count": 1
          },
          {
            "date": "2019-07-19",
            "count": 2
          },
          {
            "date": "2019-07-24",
            "count": 1
          },
          {
            "date": "2019-07-25",
            "count": 1
          },
          {
            "date": "2019-07-29",
            "count": 1
          },
          {
            "date": "2019-07-30",
            "count": 1
          },
          {
            "date": "2019-08-03",
            "count": 1
          },
          {
            "date": "2019-08-06",
            "count": 1
          },
          {
            "date": "2019-08-11",
            "count": 2
          },
          {
            "date": "2019-08-13",
            "count": 1
          },
          {
            "date": "2019-08-15",
            "count": 2
          },
          {
            "date": "2019-08-28",
            "count": 1
          },
          {
            "date": "2019-09-02",
            "count": 1
          },
          {
            "date": "2019-09-05",
            "count": 1
          },
          {
            "date": "2019-09-06",
            "count": 1
          },
          {
            "date": "2019-09-10",
            "count": 1
          },
          {
            "date": "2019-09-14",
            "count": 1
          },
          {
            "date": "2019-09-23",
            "count": 1
          },
          {
            "date": "2019-09-30",
            "count": 2
          },
          {
            "date": "2019-10-07",
            "count": 1
          },
          {
            "date": "2019-10-10",
            "count": 1
          },
          {
            "date": "2019-10-12",
            "count": 1
          },
          {
            "date": "2019-10-14",
            "count": 1
          },
          {
            "date": "2019-10-24",
            "count": 1
          },
          {
            "date": "2019-10-25",
            "count": 1
          },
          {
            "date": "2019-10-29",
            "count": 1
          },
          {
            "date": "2019-11-12",
            "count": 2
          },
          {
            "date": "2019-11-20",
            "count": 2
          },
          {
            "date": "2019-11-21",
            "count": 3
          },
          {
            "date": "2019-11-25",
            "count": 1
          },
          {
            "date": "2019-12-10",
            "count": 1
          },
          {
            "date": "2019-12-19",
            "count": 1
          },
          {
            "date": "2019-12-21",
            "count": 1
          },
          {
            "date": "2019-12-25",
            "count": 1
          },
          {
            "date": "2020-01-06",
            "count": 1
          },
          {
            "date": "2020-01-09",
            "count": 1
          },
          {
            "date": "2020-01-10",
            "count": 1
          },
          {
            "date": "2020-01-27",
            "count": 1
          },
          {
            "date": "2020-01-31",
            "count": 1
          },
          {
            "date": "2020-02-04",
            "count": 1
          },
          {
            "date": "2020-02-06",
            "count": 1
          },
          {
            "date": "2020-02-11",
            "count": 1
          },
          {
            "date": "2020-02-12",
            "count": 1
          },
          {
            "date": "2020-02-13",
            "count": 1
          },
          {
            "date": "2020-02-19",
            "count": 1
          },
          {
            "date": "2020-02-28",
            "count": 1
          },
          {
            "date": "2020-03-07",
            "count": 1
          },
          {
            "date": "2020-03-12",
            "count": 2
          },
          {
            "date": "2020-03-13",
            "count": 1
          },
          {
            "date": "2020-03-20",
            "count": 1
          },
          {
            "date": "2020-03-27",
            "count": 1
          },
          {
            "date": "2020-04-01",
            "count": 1
          },
          {
            "date": "2020-04-03",
            "count": 1
          },
          {
            "date": "2020-04-04",
            "count": 2
          },
          {
            "date": "2020-04-16",
            "count": 1
          },
          {
            "date": "2020-04-18",
            "count": 1
          },
          {
            "date": "2020-04-21",
            "count": 1
          },
          {
            "date": "2020-04-22",
            "count": 1
          },
          {
            "date": "2020-04-23",
            "count": 2
          },
          {
            "date": "2020-04-24",
            "count": 1
          },
          {
            "date": "2020-04-25",
            "count": 1
          },
          {
            "date": "2020-05-02",
            "count": 1
          },
          {
            "date": "2020-05-05",
            "count": 1
          },
          {
            "date": "2020-05-12",
            "count": 2
          },
          {
            "date": "2020-05-13",
            "count": 1
          },
          {
            "date": "2020-05-14",
            "count": 1
          },
          {
            "date": "2020-05-23",
            "count": 1
          },
          {
            "date": "2020-05-24",
            "count": 1
          },
          {
            "date": "2020-06-03",
            "count": 1
          },
          {
            "date": "2020-06-09",
            "count": 1
          },
          {
            "date": "2020-06-21",
            "count": 1
          },
          {
            "date": "2020-07-09",
            "count": 1
          },
          {
            "date": "2020-07-14",
            "count": 1
          },
          {
            "date": "2020-07-28",
            "count": 1
          },
          {
            "date": "2020-07-31",
            "count": 1
          },
          {
            "date": "2020-08-02",
            "count": 1
          },
          {
            "date": "2020-08-04",
            "count": 1
          },
          {
            "date": "2020-08-12",
            "count": 1
          },
          {
            "date": "2020-08-20",
            "count": 1
          },
          {
            "date": "2020-08-25",
            "count": 1
          },
          {
            "date": "2020-09-06",
            "count": 1
          },
          {
            "date": "2020-09-13",
            "count": 1
          },
          {
            "date": "2020-09-16",
            "count": 1
          },
          {
            "date": "2020-09-22",
            "count": 1
          },
          {
            "date": "2020-09-23",
            "count": 1
          },
          {
            "date": "2020-09-28",
            "count": 1
          },
          {
            "date": "2020-10-09",
            "count": 1
          },
          {
            "date": "2020-10-13",
            "count": 1
          },
          {
            "date": "2020-10-15",
            "count": 1
          },
          {
            "date": "2020-10-20",
            "count": 1
          },
          {
            "date": "2020-10-21",
            "count": 1
          },
          {
            "date": "2020-10-27",
            "count": 1
          },
          {
            "date": "2020-10-28",
            "count": 1
          },
          {
            "date": "2020-10-30",
            "count": 1
          },
          {
            "date": "2020-11-03",
            "count": 1
          },
          {
            "date": "2020-11-12",
            "count": 1
          },
          {
            "date": "2020-11-27",
            "count": 1
          },
          {
            "date": "2020-12-04",
            "count": 1
          },
          {
            "date": "2020-12-08",
            "count": 1
          },
          {
            "date": "2020-12-15",
            "count": 1
          },
          {
            "date": "2020-12-22",
            "count": 1
          },
          {
            "date": "2020-12-29",
            "count": 1
          },
          {
            "date": "2020-12-30",
            "count": 1
          },
          {
            "date": "2021-01-08",
            "count": 1
          },
          {
            "date": "2021-01-11",
            "count": 1
          },
          {
            "date": "2021-01-22",
            "count": 1
          },
          {
            "date": "2021-01-24",
            "count": 1
          },
          {
            "date": "2021-01-29",
            "count": 1
          },
          {
            "date": "2021-02-10",
            "count": 1
          },
          {
            "date": "2021-02-23",
            "count": 1
          },
          {
            "date": "2021-03-24",
            "count": 1
          },
          {
            "date": "2021-03-31",
            "count": 1
          },
          {
            "date": "2021-04-03",
            "count": 1
          },
          {
            "date": "2021-04-04",
            "count": 1
          },
          {
            "date": "2021-04-05",
            "count": 1
          },
          {
            "date": "2021-04-13",
            "count": 1
          },
          {
            "date": "2021-04-14",
            "count": 1
          },
          {
            "date": "2021-04-15",
            "count": 3
          },
          {
            "date": "2021-04-16",
            "count": 1
          },
          {
            "date": "2021-04-20",
            "count": 1
          },
          {
            "date": "2021-04-22",
            "count": 2
          },
          {
            "date": "2021-05-04",
            "count": 1
          },
          {
            "date": "2021-05-05",
            "count": 1
          },
          {
            "date": "2021-05-10",
            "count": 1
          },
          {
            "date": "2021-05-13",
            "count": 1
          },
          {
            "date": "2021-05-17",
            "count": 2
          },
          {
            "date": "2021-05-20",
            "count": 2
          },
          {
            "date": "2021-05-27",
            "count": 1
          },
          {
            "date": "2021-07-01",
            "count": 1
          },
          {
            "date": "2021-07-07",
            "count": 1
          },
          {
            "date": "2021-07-08",
            "count": 1
          },
          {
            "date": "2021-07-14",
            "count": 2
          },
          {
            "date": "2021-07-16",
            "count": 1
          },
          {
            "date": "2021-07-18",
            "count": 1
          },
          {
            "date": "2021-07-19",
            "count": 1
          },
          {
            "date": "2021-07-20",
            "count": 1
          },
          {
            "date": "2021-07-28",
            "count": 1
          },
          {
            "date": "2021-07-29",
            "count": 1
          },
          {
            "date": "2021-08-16",
            "count": 1
          },
          {
            "date": "2021-08-19",
            "count": 2
          },
          {
            "date": "2021-09-20",
            "count": 1
          },
          {
            "date": "2021-09-22",
            "count": 1
          },
          {
            "date": "2021-10-04",
            "count": 1
          },
          {
            "date": "2021-10-11",
            "count": 1
          },
          {
            "date": "2021-10-13",
            "count": 2
          },
          {
            "date": "2021-10-25",
            "count": 1
          },
          {
            "date": "2021-11-04",
            "count": 1
          },
          {
            "date": "2021-11-13",
            "count": 1
          },
          {
            "date": "2021-11-17",
            "count": 1
          },
          {
            "date": "2021-11-20",
            "count": 1
          },
          {
            "date": "2021-12-10",
            "count": 1
          },
          {
            "date": "2021-12-13",
            "count": 1
          },
          {
            "date": "2021-12-16",
            "count": 1
          },
          {
            "date": "2021-12-20",
            "count": 1
          },
          {
            "date": "2021-12-22",
            "count": 1
          },
          {
            "date": "2022-01-05",
            "count": 1
          },
          {
            "date": "2022-01-20",
            "count": 2
          },
          {
            "date": "2022-01-25",
            "count": 1
          },
          {
            "date": "2022-02-23",
            "count": 2
          },
          {
            "date": "2022-02-28",
            "count": 1
          },
          {
            "date": "2022-03-03",
            "count": 1
          },
          {
            "date": "2022-03-04",
            "count": 1
          },
          {
            "date": "2022-03-08",
            "count": 1
          },
          {
            "date": "2022-03-16",
            "count": 2
          },
          {
            "date": "2022-03-17",
            "count": 1
          },
          {
            "date": "2022-03-21",
            "count": 4
          },
          {
            "date": "2022-03-22",
            "count": 1
          },
          {
            "date": "2022-03-23",
            "count": 1
          },
          {
            "date": "2022-03-31",
            "count": 1
          },
          {
            "date": "2022-04-04",
            "count": 1
          },
          {
            "date": "2022-04-15",
            "count": 1
          },
          {
            "date": "2022-04-19",
            "count": 1
          },
          {
            "date": "2022-04-28",
            "count": 1
          },
          {
            "date": "2022-05-02",
            "count": 1
          },
          {
            "date": "2022-05-09",
            "count": 1
          },
          {
            "date": "2022-05-17",
            "count": 2
          },
          {
            "date": "2022-05-19",
            "count": 1
          },
          {
            "date": "2022-05-20",
            "count": 2
          },
          {
            "date": "2022-05-31",
            "count": 1
          },
          {
            "date": "2022-06-09",
            "count": 1
          },
          {
            "date": "2022-06-12",
            "count": 1
          },
          {
            "date": "2022-06-14",
            "count": 1
          },
          {
            "date": "2022-06-16",
            "count": 1
          },
          {
            "date": "2022-07-01",
            "count": 1
          },
          {
            "date": "2022-07-19",
            "count": 1
          },
          {
            "date": "2022-07-26",
            "count": 1
          },
          {
            "date": "2022-08-05",
            "count": 1
          },
          {
            "date": "2022-08-11",
            "count": 1
          },
          {
            "date": "2022-08-12",
            "count": 1
          },
          {
            "date": "2022-09-09",
            "count": 1
          },
          {
            "date": "2022-09-14",
            "count": 1
          },
          {
            "date": "2022-10-05",
            "count": 1
          },
          {
            "date": "2022-10-17",
            "count": 1
          },
          {
            "date": "2022-10-20",
            "count": 2
          },
          {
            "date": "2022-10-27",
            "count": 1
          },
          {
            "date": "2022-10-30",
            "count": 1
          },
          {
            "date": "2022-10-31",
            "count": 1
          },
          {
            "date": "2022-11-01",
            "count": 1
          },
          {
            "date": "2022-11-12",
            "count": 1
          },
          {
            "date": "2022-12-01",
            "count": 1
          },
          {
            "date": "2022-12-02",
            "count": 1
          },
          {
            "date": "2022-12-26",
            "count": 1
          },
          {
            "date": "2022-12-31",
            "count": 1
          },
          {
            "date": "2023-01-06",
            "count": 1
          },
          {
            "date": "2023-01-12",
            "count": 2
          },
          {
            "date": "2023-01-18",
            "count": 1
          },
          {
            "date": "2023-02-02",
            "count": 1
          },
          {
            "date": "2023-02-06",
            "count": 1
          },
          {
            "date": "2023-02-14",
            "count": 1
          },
          {
            "date": "2023-02-16",
            "count": 1
          },
          {
            "date": "2023-02-18",
            "count": 1
          },
          {
            "date": "2023-03-09",
            "count": 1
          },
          {
            "date": "2023-03-23",
            "count": 1
          },
          {
            "date": "2023-03-24",
            "count": 1
          },
          {
            "date": "2023-04-05",
            "count": 1
          },
          {
            "date": "2023-04-06",
            "count": 1
          },
          {
            "date": "2023-04-24",
            "count": 1
          },
          {
            "date": "2023-05-02",
            "count": 1
          },
          {
            "date": "2023-05-04",
            "count": 1
          },
          {
            "date": "2023-05-17",
            "count": 1
          },
          {
            "date": "2023-06-04",
            "count": 1
          },
          {
            "date": "2023-06-08",
            "count": 1
          },
          {
            "date": "2023-07-03",
            "count": 1
          },
          {
            "date": "2023-07-27",
            "count": 1
          },
          {
            "date": "2023-08-03",
            "count": 1
          },
          {
            "date": "2023-08-09",
            "count": 1
          },
          {
            "date": "2023-08-15",
            "count": 1
          },
          {
            "date": "2023-08-16",
            "count": 1
          },
          {
            "date": "2023-08-17",
            "count": 1
          },
          {
            "date": "2023-09-04",
            "count": 1
          },
          {
            "date": "2023-09-26",
            "count": 1
          },
          {
            "date": "2023-09-27",
            "count": 1
          },
          {
            "date": "2023-10-06",
            "count": 1
          },
          {
            "date": "2023-10-18",
            "count": 1
          },
          {
            "date": "2023-10-28",
            "count": 1
          },
          {
            "date": "2023-10-30",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 1
          },
          {
            "date": "2023-11-10",
            "count": 1
          },
          {
            "date": "2023-11-15",
            "count": 1
          },
          {
            "date": "2023-12-16",
            "count": 1
          },
          {
            "date": "2023-12-22",
            "count": 1
          },
          {
            "date": "2023-12-27",
            "count": 1
          },
          {
            "date": "2024-01-05",
            "count": 1
          },
          {
            "date": "2024-01-25",
            "count": 1
          },
          {
            "date": "2024-02-16",
            "count": 1
          },
          {
            "date": "2024-03-27",
            "count": 1
          },
          {
            "date": "2024-04-05",
            "count": 2
          },
          {
            "date": "2024-07-23",
            "count": 1
          },
          {
            "date": "2024-07-25",
            "count": 1
          },
          {
            "date": "2024-09-05",
            "count": 1
          },
          {
            "date": "2024-09-10",
            "count": 1
          },
          {
            "date": "2024-10-21",
            "count": 1
          },
          {
            "date": "2024-11-06",
            "count": 1
          },
          {
            "date": "2024-11-10",
            "count": 1
          },
          {
            "date": "2024-12-12",
            "count": 1
          },
          {
            "date": "2024-12-16",
            "count": 1
          },
          {
            "date": "2025-01-17",
            "count": 1
          },
          {
            "date": "2025-03-15",
            "count": 1
          },
          {
            "date": "2025-03-19",
            "count": 1
          },
          {
            "date": "2025-03-20",
            "count": 1
          },
          {
            "date": "2025-04-15",
            "count": 1
          },
          {
            "date": "2025-05-14",
            "count": 1
          },
          {
            "date": "2025-06-26",
            "count": 1
          },
          {
            "date": "2025-07-05",
            "count": 1
          },
          {
            "date": "2025-08-14",
            "count": 1
          },
          {
            "date": "2025-08-27",
            "count": 1
          },
          {
            "date": "2025-09-05",
            "count": 1
          },
          {
            "date": "2025-09-17",
            "count": 1
          },
          {
            "date": "2025-10-03",
            "count": 1
          },
          {
            "date": "2025-11-07",
            "count": 1
          },
          {
            "date": "2025-11-21",
            "count": 1
          },
          {
            "date": "2025-11-30",
            "count": 1
          },
          {
            "date": "2025-12-14",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 1
          },
          {
            "date": "2026-01-26",
            "count": 1
          },
          {
            "date": "2026-02-23",
            "count": 1
          },
          {
            "date": "2026-04-22",
            "count": 1
          },
          {
            "date": "2026-05-07",
            "count": 1
          },
          {
            "date": "2026-05-31",
            "count": 1
          },
          {
            "date": "2026-07-19",
            "count": 3
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_forks": 1075
      },
      "star_history": {
        "days": [
          {
            "date": "2020-07-24",
            "count": 1
          },
          {
            "date": "2020-07-27",
            "count": 2
          },
          {
            "date": "2020-07-28",
            "count": 1
          },
          {
            "date": "2020-08-02",
            "count": 1
          },
          {
            "date": "2020-08-03",
            "count": 1
          },
          {
            "date": "2020-08-04",
            "count": 1
          },
          {
            "date": "2020-08-10",
            "count": 1
          },
          {
            "date": "2020-08-11",
            "count": 1
          },
          {
            "date": "2020-08-13",
            "count": 1
          },
          {
            "date": "2020-08-14",
            "count": 1
          },
          {
            "date": "2020-08-16",
            "count": 2
          },
          {
            "date": "2020-08-17",
            "count": 1
          },
          {
            "date": "2020-08-18",
            "count": 4
          },
          {
            "date": "2020-08-19",
            "count": 1
          },
          {
            "date": "2020-08-20",
            "count": 5
          },
          {
            "date": "2020-08-21",
            "count": 1
          },
          {
            "date": "2020-08-22",
            "count": 1
          },
          {
            "date": "2020-08-23",
            "count": 1
          },
          {
            "date": "2020-08-24",
            "count": 2
          },
          {
            "date": "2020-08-25",
            "count": 1
          },
          {
            "date": "2020-08-27",
            "count": 2
          },
          {
            "date": "2020-08-30",
            "count": 2
          },
          {
            "date": "2020-08-31",
            "count": 2
          },
          {
            "date": "2020-09-01",
            "count": 1
          },
          {
            "date": "2020-09-07",
            "count": 1
          },
          {
            "date": "2020-09-09",
            "count": 1
          },
          {
            "date": "2020-09-13",
            "count": 2
          },
          {
            "date": "2020-09-16",
            "count": 2
          },
          {
            "date": "2020-09-18",
            "count": 1
          },
          {
            "date": "2020-09-19",
            "count": 1
          },
          {
            "date": "2020-09-23",
            "count": 1
          },
          {
            "date": "2020-09-26",
            "count": 1
          },
          {
            "date": "2020-09-28",
            "count": 1
          },
          {
            "date": "2020-09-29",
            "count": 1
          },
          {
            "date": "2020-09-30",
            "count": 1
          },
          {
            "date": "2020-10-01",
            "count": 1
          },
          {
            "date": "2020-10-06",
            "count": 1
          },
          {
            "date": "2020-10-07",
            "count": 1
          },
          {
            "date": "2020-10-09",
            "count": 1
          },
          {
            "date": "2020-10-10",
            "count": 3
          },
          {
            "date": "2020-10-14",
            "count": 1
          },
          {
            "date": "2020-10-16",
            "count": 2
          },
          {
            "date": "2020-10-17",
            "count": 2
          },
          {
            "date": "2020-10-18",
            "count": 1
          },
          {
            "date": "2020-10-19",
            "count": 1
          },
          {
            "date": "2020-10-21",
            "count": 2
          },
          {
            "date": "2020-10-27",
            "count": 1
          },
          {
            "date": "2020-10-30",
            "count": 2
          },
          {
            "date": "2020-11-02",
            "count": 3
          },
          {
            "date": "2020-11-03",
            "count": 2
          },
          {
            "date": "2020-11-06",
            "count": 1
          },
          {
            "date": "2020-11-07",
            "count": 1
          },
          {
            "date": "2020-11-11",
            "count": 2
          },
          {
            "date": "2020-11-16",
            "count": 1
          },
          {
            "date": "2020-11-18",
            "count": 1
          },
          {
            "date": "2020-11-19",
            "count": 1
          },
          {
            "date": "2020-11-24",
            "count": 2
          },
          {
            "date": "2020-11-25",
            "count": 1
          },
          {
            "date": "2020-11-26",
            "count": 2
          },
          {
            "date": "2020-11-27",
            "count": 2
          },
          {
            "date": "2020-12-04",
            "count": 2
          },
          {
            "date": "2020-12-05",
            "count": 1
          },
          {
            "date": "2020-12-06",
            "count": 1
          },
          {
            "date": "2020-12-09",
            "count": 2
          },
          {
            "date": "2020-12-10",
            "count": 2
          },
          {
            "date": "2020-12-11",
            "count": 1
          },
          {
            "date": "2020-12-13",
            "count": 1
          },
          {
            "date": "2020-12-16",
            "count": 1
          },
          {
            "date": "2020-12-19",
            "count": 1
          },
          {
            "date": "2020-12-21",
            "count": 5
          },
          {
            "date": "2020-12-24",
            "count": 1
          },
          {
            "date": "2020-12-27",
            "count": 1
          },
          {
            "date": "2020-12-28",
            "count": 1
          },
          {
            "date": "2020-12-29",
            "count": 1
          },
          {
            "date": "2020-12-30",
            "count": 1
          },
          {
            "date": "2021-01-02",
            "count": 1
          },
          {
            "date": "2021-01-05",
            "count": 1
          },
          {
            "date": "2021-01-07",
            "count": 1
          },
          {
            "date": "2021-01-11",
            "count": 1
          },
          {
            "date": "2021-01-14",
            "count": 1
          },
          {
            "date": "2021-01-18",
            "count": 1
          },
          {
            "date": "2021-01-20",
            "count": 1
          },
          {
            "date": "2021-01-24",
            "count": 1
          },
          {
            "date": "2021-01-27",
            "count": 1
          },
          {
            "date": "2021-01-28",
            "count": 1
          },
          {
            "date": "2021-02-01",
            "count": 1
          },
          {
            "date": "2021-02-04",
            "count": 1
          },
          {
            "date": "2021-02-08",
            "count": 1
          },
          {
            "date": "2021-02-09",
            "count": 1
          },
          {
            "date": "2021-02-10",
            "count": 1
          },
          {
            "date": "2021-02-11",
            "count": 1
          },
          {
            "date": "2021-02-18",
            "count": 1
          },
          {
            "date": "2021-02-20",
            "count": 1
          },
          {
            "date": "2021-02-23",
            "count": 1
          },
          {
            "date": "2021-02-26",
            "count": 1
          },
          {
            "date": "2021-03-01",
            "count": 2
          },
          {
            "date": "2021-03-02",
            "count": 3
          },
          {
            "date": "2021-03-04",
            "count": 1
          },
          {
            "date": "2021-03-07",
            "count": 1
          },
          {
            "date": "2021-03-09",
            "count": 1
          },
          {
            "date": "2021-03-11",
            "count": 4
          },
          {
            "date": "2021-03-14",
            "count": 1
          },
          {
            "date": "2021-03-15",
            "count": 1
          },
          {
            "date": "2021-03-16",
            "count": 2
          },
          {
            "date": "2021-03-24",
            "count": 1
          },
          {
            "date": "2021-03-26",
            "count": 1
          },
          {
            "date": "2021-03-27",
            "count": 1
          },
          {
            "date": "2021-03-28",
            "count": 2
          },
          {
            "date": "2021-03-29",
            "count": 1
          },
          {
            "date": "2021-03-30",
            "count": 1
          },
          {
            "date": "2021-03-31",
            "count": 1
          },
          {
            "date": "2021-04-01",
            "count": 1
          },
          {
            "date": "2021-04-03",
            "count": 1
          },
          {
            "date": "2021-04-05",
            "count": 2
          },
          {
            "date": "2021-04-07",
            "count": 1
          },
          {
            "date": "2021-04-08",
            "count": 4
          },
          {
            "date": "2021-04-09",
            "count": 2
          },
          {
            "date": "2021-04-12",
            "count": 2
          },
          {
            "date": "2021-04-16",
            "count": 1
          },
          {
            "date": "2021-04-19",
            "count": 2
          },
          {
            "date": "2021-04-21",
            "count": 1
          },
          {
            "date": "2021-04-22",
            "count": 1
          },
          {
            "date": "2021-04-23",
            "count": 1
          },
          {
            "date": "2021-04-25",
            "count": 1
          },
          {
            "date": "2021-04-26",
            "count": 2
          },
          {
            "date": "2021-05-05",
            "count": 1
          },
          {
            "date": "2021-05-07",
            "count": 1
          },
          {
            "date": "2021-05-09",
            "count": 2
          },
          {
            "date": "2021-05-10",
            "count": 1
          },
          {
            "date": "2021-05-11",
            "count": 1
          },
          {
            "date": "2021-05-15",
            "count": 1
          },
          {
            "date": "2021-05-17",
            "count": 1
          },
          {
            "date": "2021-05-18",
            "count": 2
          },
          {
            "date": "2021-05-24",
            "count": 2
          },
          {
            "date": "2021-05-25",
            "count": 1
          },
          {
            "date": "2021-05-26",
            "count": 1
          },
          {
            "date": "2021-05-27",
            "count": 2
          },
          {
            "date": "2021-05-28",
            "count": 1
          },
          {
            "date": "2021-05-30",
            "count": 1
          },
          {
            "date": "2021-05-31",
            "count": 1
          },
          {
            "date": "2021-06-02",
            "count": 2
          },
          {
            "date": "2021-06-05",
            "count": 1
          },
          {
            "date": "2021-06-06",
            "count": 1
          },
          {
            "date": "2021-06-08",
            "count": 4
          },
          {
            "date": "2021-06-16",
            "count": 1
          },
          {
            "date": "2021-06-20",
            "count": 1
          },
          {
            "date": "2021-06-21",
            "count": 1
          },
          {
            "date": "2021-06-27",
            "count": 2
          },
          {
            "date": "2021-06-28",
            "count": 2
          },
          {
            "date": "2021-06-29",
            "count": 2
          },
          {
            "date": "2021-06-30",
            "count": 1
          },
          {
            "date": "2021-07-02",
            "count": 3
          },
          {
            "date": "2021-07-05",
            "count": 3
          },
          {
            "date": "2021-07-06",
            "count": 2
          },
          {
            "date": "2021-07-07",
            "count": 2
          },
          {
            "date": "2021-07-08",
            "count": 1
          },
          {
            "date": "2021-07-09",
            "count": 1
          },
          {
            "date": "2021-07-13",
            "count": 1
          },
          {
            "date": "2021-07-15",
            "count": 1
          },
          {
            "date": "2021-07-16",
            "count": 2
          },
          {
            "date": "2021-07-20",
            "count": 2
          },
          {
            "date": "2021-07-22",
            "count": 1
          },
          {
            "date": "2021-07-25",
            "count": 1
          },
          {
            "date": "2021-07-27",
            "count": 1
          },
          {
            "date": "2021-07-28",
            "count": 1
          },
          {
            "date": "2021-08-01",
            "count": 2
          },
          {
            "date": "2021-08-02",
            "count": 1
          },
          {
            "date": "2021-08-05",
            "count": 1
          },
          {
            "date": "2021-08-07",
            "count": 1
          },
          {
            "date": "2021-08-09",
            "count": 1
          },
          {
            "date": "2021-08-10",
            "count": 1
          },
          {
            "date": "2021-08-16",
            "count": 2
          },
          {
            "date": "2021-08-23",
            "count": 1
          },
          {
            "date": "2021-08-24",
            "count": 2
          },
          {
            "date": "2021-08-25",
            "count": 1
          },
          {
            "date": "2021-08-26",
            "count": 1
          },
          {
            "date": "2021-08-30",
            "count": 1
          },
          {
            "date": "2021-09-02",
            "count": 2
          },
          {
            "date": "2021-09-03",
            "count": 1
          },
          {
            "date": "2021-09-04",
            "count": 2
          },
          {
            "date": "2021-09-05",
            "count": 2
          },
          {
            "date": "2021-09-06",
            "count": 1
          },
          {
            "date": "2021-09-07",
            "count": 1
          },
          {
            "date": "2021-09-08",
            "count": 1
          },
          {
            "date": "2021-09-11",
            "count": 1
          },
          {
            "date": "2021-09-13",
            "count": 1
          },
          {
            "date": "2021-09-15",
            "count": 2
          },
          {
            "date": "2021-09-17",
            "count": 3
          },
          {
            "date": "2021-09-19",
            "count": 1
          },
          {
            "date": "2021-09-25",
            "count": 2
          },
          {
            "date": "2021-10-02",
            "count": 1
          },
          {
            "date": "2021-10-03",
            "count": 1
          },
          {
            "date": "2021-10-06",
            "count": 1
          },
          {
            "date": "2021-10-08",
            "count": 2
          },
          {
            "date": "2021-10-13",
            "count": 1
          },
          {
            "date": "2021-10-14",
            "count": 2
          },
          {
            "date": "2021-10-16",
            "count": 2
          },
          {
            "date": "2021-10-19",
            "count": 2
          },
          {
            "date": "2021-10-21",
            "count": 1
          },
          {
            "date": "2021-10-27",
            "count": 2
          },
          {
            "date": "2021-10-28",
            "count": 1
          },
          {
            "date": "2021-10-30",
            "count": 1
          },
          {
            "date": "2021-10-31",
            "count": 1
          },
          {
            "date": "2021-11-07",
            "count": 1
          },
          {
            "date": "2021-11-13",
            "count": 1
          },
          {
            "date": "2021-11-15",
            "count": 1
          },
          {
            "date": "2021-11-16",
            "count": 1
          },
          {
            "date": "2021-11-17",
            "count": 1
          },
          {
            "date": "2021-11-20",
            "count": 1
          },
          {
            "date": "2021-11-21",
            "count": 1
          },
          {
            "date": "2021-11-22",
            "count": 2
          },
          {
            "date": "2021-11-23",
            "count": 1
          },
          {
            "date": "2021-11-24",
            "count": 1
          },
          {
            "date": "2021-11-26",
            "count": 1
          },
          {
            "date": "2021-11-29",
            "count": 1
          },
          {
            "date": "2021-11-30",
            "count": 1
          },
          {
            "date": "2021-12-01",
            "count": 1
          },
          {
            "date": "2021-12-03",
            "count": 1
          },
          {
            "date": "2021-12-05",
            "count": 1
          },
          {
            "date": "2021-12-07",
            "count": 1
          },
          {
            "date": "2021-12-11",
            "count": 1
          },
          {
            "date": "2021-12-13",
            "count": 2
          },
          {
            "date": "2021-12-16",
            "count": 1
          },
          {
            "date": "2021-12-18",
            "count": 1
          },
          {
            "date": "2021-12-19",
            "count": 1
          },
          {
            "date": "2021-12-21",
            "count": 1
          },
          {
            "date": "2021-12-23",
            "count": 3
          },
          {
            "date": "2021-12-25",
            "count": 1
          },
          {
            "date": "2021-12-26",
            "count": 1
          },
          {
            "date": "2022-01-02",
            "count": 1
          },
          {
            "date": "2022-01-03",
            "count": 1
          },
          {
            "date": "2022-01-05",
            "count": 1
          },
          {
            "date": "2022-01-07",
            "count": 1
          },
          {
            "date": "2022-01-08",
            "count": 3
          },
          {
            "date": "2022-01-10",
            "count": 3
          },
          {
            "date": "2022-01-11",
            "count": 3
          },
          {
            "date": "2022-01-14",
            "count": 3
          },
          {
            "date": "2022-01-18",
            "count": 1
          },
          {
            "date": "2022-01-20",
            "count": 1
          },
          {
            "date": "2022-01-22",
            "count": 1
          },
          {
            "date": "2022-01-23",
            "count": 1
          },
          {
            "date": "2022-01-25",
            "count": 1
          },
          {
            "date": "2022-01-29",
            "count": 1
          },
          {
            "date": "2022-01-30",
            "count": 1
          },
          {
            "date": "2022-01-31",
            "count": 1
          },
          {
            "date": "2022-02-01",
            "count": 1
          },
          {
            "date": "2022-02-04",
            "count": 1
          },
          {
            "date": "2022-02-08",
            "count": 1
          },
          {
            "date": "2022-02-10",
            "count": 1
          },
          {
            "date": "2022-02-13",
            "count": 1
          },
          {
            "date": "2022-02-14",
            "count": 1
          },
          {
            "date": "2022-02-16",
            "count": 1
          },
          {
            "date": "2022-02-17",
            "count": 1
          },
          {
            "date": "2022-02-21",
            "count": 4
          },
          {
            "date": "2022-02-23",
            "count": 2
          },
          {
            "date": "2022-03-01",
            "count": 1
          },
          {
            "date": "2022-03-02",
            "count": 1
          },
          {
            "date": "2022-03-09",
            "count": 1
          },
          {
            "date": "2022-03-11",
            "count": 1
          },
          {
            "date": "2022-03-12",
            "count": 1
          },
          {
            "date": "2022-03-13",
            "count": 2
          },
          {
            "date": "2022-03-15",
            "count": 2
          },
          {
            "date": "2022-03-16",
            "count": 3
          },
          {
            "date": "2022-03-18",
            "count": 1
          },
          {
            "date": "2022-03-21",
            "count": 2
          },
          {
            "date": "2022-03-23",
            "count": 1
          },
          {
            "date": "2022-03-24",
            "count": 2
          },
          {
            "date": "2022-03-25",
            "count": 2
          },
          {
            "date": "2022-03-27",
            "count": 1
          },
          {
            "date": "2022-03-28",
            "count": 1
          },
          {
            "date": "2022-03-30",
            "count": 1
          },
          {
            "date": "2022-04-02",
            "count": 1
          },
          {
            "date": "2022-04-07",
            "count": 1
          },
          {
            "date": "2022-04-09",
            "count": 1
          },
          {
            "date": "2022-04-12",
            "count": 1
          },
          {
            "date": "2022-04-13",
            "count": 1
          },
          {
            "date": "2022-04-14",
            "count": 1
          },
          {
            "date": "2022-04-15",
            "count": 1
          },
          {
            "date": "2022-04-16",
            "count": 1
          },
          {
            "date": "2022-04-17",
            "count": 1
          },
          {
            "date": "2022-04-20",
            "count": 1
          },
          {
            "date": "2022-04-21",
            "count": 1
          },
          {
            "date": "2022-04-25",
            "count": 1
          },
          {
            "date": "2022-04-28",
            "count": 1
          },
          {
            "date": "2022-04-29",
            "count": 1
          },
          {
            "date": "2022-05-01",
            "count": 1
          },
          {
            "date": "2022-05-03",
            "count": 1
          },
          {
            "date": "2022-05-04",
            "count": 1
          },
          {
            "date": "2022-05-05",
            "count": 2
          },
          {
            "date": "2022-05-06",
            "count": 1
          },
          {
            "date": "2022-05-07",
            "count": 2
          },
          {
            "date": "2022-05-12",
            "count": 2
          },
          {
            "date": "2022-05-16",
            "count": 1
          },
          {
            "date": "2022-05-27",
            "count": 1
          },
          {
            "date": "2022-05-29",
            "count": 1
          },
          {
            "date": "2022-06-02",
            "count": 1
          },
          {
            "date": "2022-06-03",
            "count": 1
          },
          {
            "date": "2022-06-06",
            "count": 1
          },
          {
            "date": "2022-06-10",
            "count": 1
          },
          {
            "date": "2022-06-14",
            "count": 1
          },
          {
            "date": "2022-06-16",
            "count": 1
          },
          {
            "date": "2022-06-22",
            "count": 1
          },
          {
            "date": "2022-06-23",
            "count": 1
          },
          {
            "date": "2022-06-25",
            "count": 1
          },
          {
            "date": "2022-06-30",
            "count": 1
          },
          {
            "date": "2022-07-01",
            "count": 1
          },
          {
            "date": "2022-07-04",
            "count": 1
          },
          {
            "date": "2022-07-05",
            "count": 1
          },
          {
            "date": "2022-07-07",
            "count": 2
          },
          {
            "date": "2022-07-08",
            "count": 2
          },
          {
            "date": "2022-07-09",
            "count": 1
          },
          {
            "date": "2022-07-10",
            "count": 1
          },
          {
            "date": "2022-07-13",
            "count": 1
          },
          {
            "date": "2022-07-16",
            "count": 1
          },
          {
            "date": "2022-07-21",
            "count": 1
          },
          {
            "date": "2022-07-22",
            "count": 2
          },
          {
            "date": "2022-07-28",
            "count": 2
          },
          {
            "date": "2022-07-29",
            "count": 2
          },
          {
            "date": "2022-07-30",
            "count": 1
          },
          {
            "date": "2022-08-01",
            "count": 1
          },
          {
            "date": "2022-08-05",
            "count": 2
          },
          {
            "date": "2022-08-08",
            "count": 1
          },
          {
            "date": "2022-08-09",
            "count": 2
          },
          {
            "date": "2022-08-10",
            "count": 1
          },
          {
            "date": "2022-08-17",
            "count": 2
          },
          {
            "date": "2022-08-18",
            "count": 1
          },
          {
            "date": "2022-08-20",
            "count": 1
          },
          {
            "date": "2022-08-23",
            "count": 2
          },
          {
            "date": "2022-08-24",
            "count": 1
          },
          {
            "date": "2022-08-25",
            "count": 1
          },
          {
            "date": "2022-08-28",
            "count": 1
          },
          {
            "date": "2022-08-29",
            "count": 3
          },
          {
            "date": "2022-08-31",
            "count": 1
          },
          {
            "date": "2022-09-01",
            "count": 1
          },
          {
            "date": "2022-09-07",
            "count": 1
          },
          {
            "date": "2022-09-13",
            "count": 2
          },
          {
            "date": "2022-09-15",
            "count": 2
          },
          {
            "date": "2022-09-18",
            "count": 1
          },
          {
            "date": "2022-09-22",
            "count": 2
          },
          {
            "date": "2022-09-28",
            "count": 1
          },
          {
            "date": "2022-10-04",
            "count": 1
          },
          {
            "date": "2022-10-05",
            "count": 1
          },
          {
            "date": "2022-10-10",
            "count": 1
          },
          {
            "date": "2022-10-13",
            "count": 1
          },
          {
            "date": "2022-10-14",
            "count": 2
          },
          {
            "date": "2022-10-16",
            "count": 1
          },
          {
            "date": "2022-10-18",
            "count": 2
          },
          {
            "date": "2022-10-23",
            "count": 1
          },
          {
            "date": "2022-10-24",
            "count": 1
          },
          {
            "date": "2022-10-25",
            "count": 1
          },
          {
            "date": "2022-10-26",
            "count": 1
          },
          {
            "date": "2022-11-03",
            "count": 1
          },
          {
            "date": "2022-11-04",
            "count": 1
          },
          {
            "date": "2022-11-06",
            "count": 3
          },
          {
            "date": "2022-11-07",
            "count": 1
          },
          {
            "date": "2022-11-08",
            "count": 1
          },
          {
            "date": "2022-11-09",
            "count": 1
          },
          {
            "date": "2022-11-10",
            "count": 3
          },
          {
            "date": "2022-11-13",
            "count": 2
          },
          {
            "date": "2022-11-15",
            "count": 2
          },
          {
            "date": "2022-11-16",
            "count": 1
          },
          {
            "date": "2022-11-17",
            "count": 1
          },
          {
            "date": "2022-11-18",
            "count": 2
          },
          {
            "date": "2022-11-20",
            "count": 1
          },
          {
            "date": "2022-11-24",
            "count": 1
          },
          {
            "date": "2022-11-25",
            "count": 2
          },
          {
            "date": "2022-11-30",
            "count": 1
          },
          {
            "date": "2022-12-01",
            "count": 1
          },
          {
            "date": "2022-12-07",
            "count": 1
          },
          {
            "date": "2022-12-08",
            "count": 1
          },
          {
            "date": "2022-12-09",
            "count": 1
          },
          {
            "date": "2022-12-10",
            "count": 1
          },
          {
            "date": "2022-12-12",
            "count": 1
          },
          {
            "date": "2022-12-14",
            "count": 1
          },
          {
            "date": "2022-12-15",
            "count": 1
          },
          {
            "date": "2022-12-16",
            "count": 1
          },
          {
            "date": "2022-12-17",
            "count": 1
          },
          {
            "date": "2022-12-18",
            "count": 1
          },
          {
            "date": "2022-12-23",
            "count": 1
          },
          {
            "date": "2022-12-31",
            "count": 1
          },
          {
            "date": "2023-01-01",
            "count": 2
          },
          {
            "date": "2023-01-02",
            "count": 1
          },
          {
            "date": "2023-01-03",
            "count": 1
          },
          {
            "date": "2023-01-06",
            "count": 1
          },
          {
            "date": "2023-01-08",
            "count": 1
          },
          {
            "date": "2023-01-13",
            "count": 1
          },
          {
            "date": "2023-01-20",
            "count": 1
          },
          {
            "date": "2023-01-22",
            "count": 1
          },
          {
            "date": "2023-01-28",
            "count": 1
          },
          {
            "date": "2023-01-31",
            "count": 2
          },
          {
            "date": "2023-02-01",
            "count": 1
          },
          {
            "date": "2023-02-02",
            "count": 4
          },
          {
            "date": "2023-02-03",
            "count": 1
          },
          {
            "date": "2023-02-10",
            "count": 1
          },
          {
            "date": "2023-02-11",
            "count": 1
          },
          {
            "date": "2023-02-13",
            "count": 2
          },
          {
            "date": "2023-02-14",
            "count": 1
          },
          {
            "date": "2023-02-17",
            "count": 2
          },
          {
            "date": "2023-02-18",
            "count": 2
          },
          {
            "date": "2023-02-22",
            "count": 3
          },
          {
            "date": "2023-02-23",
            "count": 1
          },
          {
            "date": "2023-02-28",
            "count": 1
          },
          {
            "date": "2023-03-01",
            "count": 2
          },
          {
            "date": "2023-03-03",
            "count": 1
          },
          {
            "date": "2023-03-06",
            "count": 1
          },
          {
            "date": "2023-03-07",
            "count": 2
          },
          {
            "date": "2023-03-08",
            "count": 1
          },
          {
            "date": "2023-03-10",
            "count": 2
          },
          {
            "date": "2023-03-12",
            "count": 1
          },
          {
            "date": "2023-03-13",
            "count": 1
          },
          {
            "date": "2023-03-15",
            "count": 1
          },
          {
            "date": "2023-03-20",
            "count": 1
          },
          {
            "date": "2023-03-21",
            "count": 1
          },
          {
            "date": "2023-03-28",
            "count": 1
          },
          {
            "date": "2023-03-30",
            "count": 1
          },
          {
            "date": "2023-04-01",
            "count": 1
          },
          {
            "date": "2023-04-02",
            "count": 1
          },
          {
            "date": "2023-04-06",
            "count": 1
          },
          {
            "date": "2023-04-07",
            "count": 1
          },
          {
            "date": "2023-04-11",
            "count": 1
          },
          {
            "date": "2023-04-12",
            "count": 2
          },
          {
            "date": "2023-04-13",
            "count": 1
          },
          {
            "date": "2023-04-19",
            "count": 1
          },
          {
            "date": "2023-05-06",
            "count": 1
          },
          {
            "date": "2023-05-07",
            "count": 1
          },
          {
            "date": "2023-05-09",
            "count": 1
          },
          {
            "date": "2023-05-10",
            "count": 1
          },
          {
            "date": "2023-05-13",
            "count": 1
          },
          {
            "date": "2023-05-21",
            "count": 1
          },
          {
            "date": "2023-05-22",
            "count": 1
          },
          {
            "date": "2023-05-23",
            "count": 2
          },
          {
            "date": "2023-05-25",
            "count": 1
          },
          {
            "date": "2023-05-26",
            "count": 3
          },
          {
            "date": "2023-06-01",
            "count": 2
          },
          {
            "date": "2023-06-04",
            "count": 1
          },
          {
            "date": "2023-06-06",
            "count": 1
          },
          {
            "date": "2023-06-07",
            "count": 3
          },
          {
            "date": "2023-06-09",
            "count": 1
          },
          {
            "date": "2023-06-11",
            "count": 2
          },
          {
            "date": "2023-06-12",
            "count": 1
          },
          {
            "date": "2023-06-16",
            "count": 1
          },
          {
            "date": "2023-06-17",
            "count": 1
          },
          {
            "date": "2023-06-18",
            "count": 1
          },
          {
            "date": "2023-06-19",
            "count": 1
          },
          {
            "date": "2023-06-21",
            "count": 1
          },
          {
            "date": "2023-06-27",
            "count": 1
          },
          {
            "date": "2023-06-29",
            "count": 1
          },
          {
            "date": "2023-07-02",
            "count": 2
          },
          {
            "date": "2023-07-03",
            "count": 1
          },
          {
            "date": "2023-07-05",
            "count": 1
          },
          {
            "date": "2023-07-06",
            "count": 1
          },
          {
            "date": "2023-07-08",
            "count": 1
          },
          {
            "date": "2023-07-09",
            "count": 1
          },
          {
            "date": "2023-07-10",
            "count": 3
          },
          {
            "date": "2023-07-11",
            "count": 1
          },
          {
            "date": "2023-07-14",
            "count": 1
          },
          {
            "date": "2023-07-15",
            "count": 1
          },
          {
            "date": "2023-07-16",
            "count": 1
          },
          {
            "date": "2023-07-18",
            "count": 1
          },
          {
            "date": "2023-07-19",
            "count": 1
          },
          {
            "date": "2023-07-20",
            "count": 1
          },
          {
            "date": "2023-07-25",
            "count": 1
          },
          {
            "date": "2023-07-29",
            "count": 1
          },
          {
            "date": "2023-07-31",
            "count": 2
          },
          {
            "date": "2023-08-04",
            "count": 1
          },
          {
            "date": "2023-08-05",
            "count": 1
          },
          {
            "date": "2023-08-13",
            "count": 1
          },
          {
            "date": "2023-08-15",
            "count": 1
          },
          {
            "date": "2023-08-16",
            "count": 1
          },
          {
            "date": "2023-08-21",
            "count": 2
          },
          {
            "date": "2023-08-23",
            "count": 1
          },
          {
            "date": "2023-08-25",
            "count": 1
          },
          {
            "date": "2023-08-29",
            "count": 1
          },
          {
            "date": "2023-08-30",
            "count": 1
          },
          {
            "date": "2023-09-04",
            "count": 2
          },
          {
            "date": "2023-09-06",
            "count": 1
          },
          {
            "date": "2023-09-07",
            "count": 1
          },
          {
            "date": "2023-09-14",
            "count": 1
          },
          {
            "date": "2023-09-15",
            "count": 1
          },
          {
            "date": "2023-09-16",
            "count": 1
          },
          {
            "date": "2023-09-19",
            "count": 1
          },
          {
            "date": "2023-09-20",
            "count": 1
          },
          {
            "date": "2023-09-21",
            "count": 1
          },
          {
            "date": "2023-09-23",
            "count": 1
          },
          {
            "date": "2023-09-24",
            "count": 1
          },
          {
            "date": "2023-09-25",
            "count": 1
          },
          {
            "date": "2023-09-26",
            "count": 1
          },
          {
            "date": "2023-09-27",
            "count": 1
          },
          {
            "date": "2023-09-28",
            "count": 1
          },
          {
            "date": "2023-09-29",
            "count": 1
          },
          {
            "date": "2023-10-02",
            "count": 1
          },
          {
            "date": "2023-10-03",
            "count": 1
          },
          {
            "date": "2023-10-05",
            "count": 1
          },
          {
            "date": "2023-10-08",
            "count": 1
          },
          {
            "date": "2023-10-12",
            "count": 1
          },
          {
            "date": "2023-10-13",
            "count": 1
          },
          {
            "date": "2023-10-14",
            "count": 1
          },
          {
            "date": "2023-10-16",
            "count": 1
          },
          {
            "date": "2023-10-18",
            "count": 2
          },
          {
            "date": "2023-10-20",
            "count": 2
          },
          {
            "date": "2023-10-21",
            "count": 1
          },
          {
            "date": "2023-10-23",
            "count": 1
          },
          {
            "date": "2023-10-24",
            "count": 3
          },
          {
            "date": "2023-10-28",
            "count": 1
          },
          {
            "date": "2023-10-29",
            "count": 1
          },
          {
            "date": "2023-11-06",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 1
          },
          {
            "date": "2023-11-09",
            "count": 1
          },
          {
            "date": "2023-11-15",
            "count": 1
          },
          {
            "date": "2023-11-17",
            "count": 1
          },
          {
            "date": "2023-11-21",
            "count": 1
          },
          {
            "date": "2023-11-23",
            "count": 1
          },
          {
            "date": "2023-11-26",
            "count": 1
          },
          {
            "date": "2023-11-30",
            "count": 1
          },
          {
            "date": "2023-12-03",
            "count": 1
          },
          {
            "date": "2023-12-04",
            "count": 1
          },
          {
            "date": "2023-12-05",
            "count": 1
          },
          {
            "date": "2023-12-09",
            "count": 1
          },
          {
            "date": "2023-12-10",
            "count": 1
          },
          {
            "date": "2023-12-12",
            "count": 1
          },
          {
            "date": "2023-12-18",
            "count": 1
          },
          {
            "date": "2023-12-21",
            "count": 1
          },
          {
            "date": "2023-12-22",
            "count": 1
          },
          {
            "date": "2023-12-23",
            "count": 1
          },
          {
            "date": "2023-12-27",
            "count": 1
          },
          {
            "date": "2023-12-28",
            "count": 1
          },
          {
            "date": "2023-12-29",
            "count": 1
          },
          {
            "date": "2024-01-02",
            "count": 2
          },
          {
            "date": "2024-01-08",
            "count": 1
          },
          {
            "date": "2024-01-17",
            "count": 1
          },
          {
            "date": "2024-01-19",
            "count": 2
          },
          {
            "date": "2024-01-23",
            "count": 1
          },
          {
            "date": "2024-01-27",
            "count": 1
          },
          {
            "date": "2024-01-30",
            "count": 2
          },
          {
            "date": "2024-01-31",
            "count": 1
          },
          {
            "date": "2024-02-11",
            "count": 2
          },
          {
            "date": "2024-02-14",
            "count": 1
          },
          {
            "date": "2024-02-18",
            "count": 1
          },
          {
            "date": "2024-02-24",
            "count": 1
          },
          {
            "date": "2024-02-27",
            "count": 1
          },
          {
            "date": "2024-02-28",
            "count": 1
          },
          {
            "date": "2024-03-01",
            "count": 1
          },
          {
            "date": "2024-03-02",
            "count": 1
          },
          {
            "date": "2024-03-04",
            "count": 1
          },
          {
            "date": "2024-03-06",
            "count": 1
          },
          {
            "date": "2024-03-07",
            "count": 2
          },
          {
            "date": "2024-03-11",
            "count": 1
          },
          {
            "date": "2024-03-13",
            "count": 1
          },
          {
            "date": "2024-03-14",
            "count": 1
          },
          {
            "date": "2024-03-27",
            "count": 1
          },
          {
            "date": "2024-03-31",
            "count": 1
          },
          {
            "date": "2024-04-02",
            "count": 1
          },
          {
            "date": "2024-04-05",
            "count": 2
          },
          {
            "date": "2024-04-06",
            "count": 1
          },
          {
            "date": "2024-04-07",
            "count": 2
          },
          {
            "date": "2024-04-08",
            "count": 1
          },
          {
            "date": "2024-04-10",
            "count": 1
          },
          {
            "date": "2024-04-11",
            "count": 1
          },
          {
            "date": "2024-04-18",
            "count": 1
          },
          {
            "date": "2024-04-20",
            "count": 1
          },
          {
            "date": "2024-04-23",
            "count": 3
          },
          {
            "date": "2024-04-24",
            "count": 1
          },
          {
            "date": "2024-04-30",
            "count": 1
          },
          {
            "date": "2024-05-03",
            "count": 3
          },
          {
            "date": "2024-05-07",
            "count": 1
          },
          {
            "date": "2024-05-08",
            "count": 1
          },
          {
            "date": "2024-05-13",
            "count": 1
          },
          {
            "date": "2024-05-15",
            "count": 2
          },
          {
            "date": "2024-05-16",
            "count": 1
          },
          {
            "date": "2024-05-18",
            "count": 1
          },
          {
            "date": "2024-05-21",
            "count": 1
          },
          {
            "date": "2024-05-22",
            "count": 1
          },
          {
            "date": "2024-05-24",
            "count": 1
          },
          {
            "date": "2024-05-30",
            "count": 2
          },
          {
            "date": "2024-06-01",
            "count": 3
          },
          {
            "date": "2024-06-03",
            "count": 1
          },
          {
            "date": "2024-06-10",
            "count": 1
          },
          {
            "date": "2024-06-12",
            "count": 1
          },
          {
            "date": "2024-06-14",
            "count": 2
          },
          {
            "date": "2024-06-24",
            "count": 1
          },
          {
            "date": "2024-06-27",
            "count": 2
          },
          {
            "date": "2024-07-03",
            "count": 1
          },
          {
            "date": "2024-07-04",
            "count": 3
          },
          {
            "date": "2024-07-06",
            "count": 1
          },
          {
            "date": "2024-07-08",
            "count": 1
          },
          {
            "date": "2024-07-10",
            "count": 1
          },
          {
            "date": "2024-07-11",
            "count": 1
          },
          {
            "date": "2024-07-20",
            "count": 1
          },
          {
            "date": "2024-07-21",
            "count": 1
          },
          {
            "date": "2024-07-26",
            "count": 1
          },
          {
            "date": "2024-07-31",
            "count": 1
          },
          {
            "date": "2024-08-05",
            "count": 1
          },
          {
            "date": "2024-08-07",
            "count": 1
          },
          {
            "date": "2024-08-11",
            "count": 1
          },
          {
            "date": "2024-08-14",
            "count": 1
          },
          {
            "date": "2024-08-19",
            "count": 1
          },
          {
            "date": "2024-08-20",
            "count": 1
          },
          {
            "date": "2024-08-22",
            "count": 1
          },
          {
            "date": "2024-08-25",
            "count": 1
          },
          {
            "date": "2024-09-02",
            "count": 1
          },
          {
            "date": "2024-09-03",
            "count": 1
          },
          {
            "date": "2024-09-04",
            "count": 1
          },
          {
            "date": "2024-09-05",
            "count": 24
          },
          {
            "date": "2024-09-06",
            "count": 3
          },
          {
            "date": "2024-09-07",
            "count": 1
          },
          {
            "date": "2024-09-09",
            "count": 1
          },
          {
            "date": "2024-09-10",
            "count": 1
          },
          {
            "date": "2024-09-15",
            "count": 1
          },
          {
            "date": "2024-09-19",
            "count": 2
          },
          {
            "date": "2024-09-21",
            "count": 2
          },
          {
            "date": "2024-09-26",
            "count": 1
          },
          {
            "date": "2024-10-02",
            "count": 2
          },
          {
            "date": "2024-10-04",
            "count": 1
          },
          {
            "date": "2024-10-07",
            "count": 1
          },
          {
            "date": "2024-10-10",
            "count": 1
          },
          {
            "date": "2024-10-15",
            "count": 2
          },
          {
            "date": "2024-10-29",
            "count": 2
          },
          {
            "date": "2024-10-30",
            "count": 2
          },
          {
            "date": "2024-11-02",
            "count": 1
          },
          {
            "date": "2024-11-06",
            "count": 1
          },
          {
            "date": "2024-11-07",
            "count": 1
          },
          {
            "date": "2024-11-11",
            "count": 1
          },
          {
            "date": "2024-11-14",
            "count": 1
          },
          {
            "date": "2024-11-19",
            "count": 1
          },
          {
            "date": "2024-11-20",
            "count": 1
          },
          {
            "date": "2024-11-28",
            "count": 1
          },
          {
            "date": "2024-12-02",
            "count": 2
          },
          {
            "date": "2024-12-06",
            "count": 1
          },
          {
            "date": "2024-12-11",
            "count": 1
          },
          {
            "date": "2024-12-12",
            "count": 2
          },
          {
            "date": "2024-12-14",
            "count": 1
          },
          {
            "date": "2024-12-18",
            "count": 1
          },
          {
            "date": "2024-12-19",
            "count": 1
          },
          {
            "date": "2024-12-28",
            "count": 2
          },
          {
            "date": "2024-12-29",
            "count": 1
          },
          {
            "date": "2024-12-30",
            "count": 1
          },
          {
            "date": "2025-01-03",
            "count": 1
          },
          {
            "date": "2025-01-04",
            "count": 1
          },
          {
            "date": "2025-01-07",
            "count": 1
          },
          {
            "date": "2025-01-14",
            "count": 1
          },
          {
            "date": "2025-01-17",
            "count": 1
          },
          {
            "date": "2025-01-18",
            "count": 1
          },
          {
            "date": "2025-01-31",
            "count": 1
          },
          {
            "date": "2025-02-08",
            "count": 1
          },
          {
            "date": "2025-02-10",
            "count": 1
          },
          {
            "date": "2025-02-15",
            "count": 1
          },
          {
            "date": "2025-02-16",
            "count": 2
          },
          {
            "date": "2025-02-20",
            "count": 1
          },
          {
            "date": "2025-02-22",
            "count": 1
          },
          {
            "date": "2025-02-24",
            "count": 1
          },
          {
            "date": "2025-02-28",
            "count": 1
          },
          {
            "date": "2025-03-03",
            "count": 1
          },
          {
            "date": "2025-03-04",
            "count": 1
          },
          {
            "date": "2025-03-10",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 2
          },
          {
            "date": "2025-03-15",
            "count": 1
          },
          {
            "date": "2025-03-17",
            "count": 1
          },
          {
            "date": "2025-03-23",
            "count": 1
          },
          {
            "date": "2025-04-03",
            "count": 1
          },
          {
            "date": "2025-04-08",
            "count": 1
          },
          {
            "date": "2025-04-09",
            "count": 1
          },
          {
            "date": "2025-04-18",
            "count": 1
          },
          {
            "date": "2025-04-19",
            "count": 1
          },
          {
            "date": "2025-04-21",
            "count": 1
          },
          {
            "date": "2025-04-29",
            "count": 2
          },
          {
            "date": "2025-05-07",
            "count": 1
          },
          {
            "date": "2025-05-08",
            "count": 1
          },
          {
            "date": "2025-05-09",
            "count": 1
          },
          {
            "date": "2025-05-10",
            "count": 1
          },
          {
            "date": "2025-05-14",
            "count": 1
          },
          {
            "date": "2025-05-16",
            "count": 1
          },
          {
            "date": "2025-06-15",
            "count": 1
          },
          {
            "date": "2025-06-29",
            "count": 2
          },
          {
            "date": "2025-07-02",
            "count": 1
          },
          {
            "date": "2025-07-03",
            "count": 1
          },
          {
            "date": "2025-07-08",
            "count": 1
          },
          {
            "date": "2025-07-14",
            "count": 1
          },
          {
            "date": "2025-07-17",
            "count": 1
          },
          {
            "date": "2025-07-18",
            "count": 1
          },
          {
            "date": "2025-07-19",
            "count": 1
          },
          {
            "date": "2025-07-23",
            "count": 2
          },
          {
            "date": "2025-07-24",
            "count": 1
          },
          {
            "date": "2025-07-27",
            "count": 1
          },
          {
            "date": "2025-07-28",
            "count": 2
          },
          {
            "date": "2025-08-03",
            "count": 1
          },
          {
            "date": "2025-08-05",
            "count": 1
          },
          {
            "date": "2025-08-11",
            "count": 1
          },
          {
            "date": "2025-08-15",
            "count": 1
          },
          {
            "date": "2025-08-18",
            "count": 1
          },
          {
            "date": "2025-08-23",
            "count": 1
          },
          {
            "date": "2025-08-26",
            "count": 1
          },
          {
            "date": "2025-08-27",
            "count": 2
          },
          {
            "date": "2025-08-28",
            "count": 1
          },
          {
            "date": "2025-08-30",
            "count": 1
          },
          {
            "date": "2025-09-03",
            "count": 1
          },
          {
            "date": "2025-09-04",
            "count": 1
          },
          {
            "date": "2025-09-08",
            "count": 1
          },
          {
            "date": "2025-09-12",
            "count": 2
          },
          {
            "date": "2025-09-13",
            "count": 1
          },
          {
            "date": "2025-09-16",
            "count": 1
          },
          {
            "date": "2025-09-18",
            "count": 1
          },
          {
            "date": "2025-09-19",
            "count": 1
          },
          {
            "date": "2025-09-23",
            "count": 1
          },
          {
            "date": "2025-09-24",
            "count": 1
          },
          {
            "date": "2025-10-02",
            "count": 4
          },
          {
            "date": "2025-10-03",
            "count": 2
          },
          {
            "date": "2025-10-05",
            "count": 1
          },
          {
            "date": "2025-10-06",
            "count": 2
          },
          {
            "date": "2025-10-08",
            "count": 2
          },
          {
            "date": "2025-10-10",
            "count": 1
          },
          {
            "date": "2025-10-19",
            "count": 1
          },
          {
            "date": "2025-10-21",
            "count": 1
          },
          {
            "date": "2025-10-23",
            "count": 1
          },
          {
            "date": "2025-10-28",
            "count": 1
          },
          {
            "date": "2025-11-03",
            "count": 1
          },
          {
            "date": "2025-11-05",
            "count": 1
          },
          {
            "date": "2025-11-07",
            "count": 1
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-11-18",
            "count": 2
          },
          {
            "date": "2025-11-19",
            "count": 3
          },
          {
            "date": "2025-11-27",
            "count": 1
          },
          {
            "date": "2025-12-01",
            "count": 1
          },
          {
            "date": "2025-12-04",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 1
          },
          {
            "date": "2025-12-22",
            "count": 1
          },
          {
            "date": "2025-12-28",
            "count": 1
          },
          {
            "date": "2025-12-30",
            "count": 1
          },
          {
            "date": "2026-01-01",
            "count": 1
          },
          {
            "date": "2026-01-02",
            "count": 1
          },
          {
            "date": "2026-01-09",
            "count": 1
          },
          {
            "date": "2026-01-14",
            "count": 1
          },
          {
            "date": "2026-01-24",
            "count": 1
          },
          {
            "date": "2026-02-15",
            "count": 1
          },
          {
            "date": "2026-02-20",
            "count": 1
          },
          {
            "date": "2026-02-22",
            "count": 1
          },
          {
            "date": "2026-02-26",
            "count": 1
          },
          {
            "date": "2026-02-28",
            "count": 1
          },
          {
            "date": "2026-03-05",
            "count": 1
          },
          {
            "date": "2026-03-08",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 1
          },
          {
            "date": "2026-03-10",
            "count": 1
          },
          {
            "date": "2026-03-16",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 1
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-03-22",
            "count": 1
          },
          {
            "date": "2026-03-24",
            "count": 1
          },
          {
            "date": "2026-04-06",
            "count": 1
          },
          {
            "date": "2026-04-10",
            "count": 1
          },
          {
            "date": "2026-04-17",
            "count": 1
          },
          {
            "date": "2026-04-21",
            "count": 1
          },
          {
            "date": "2026-04-24",
            "count": 1
          },
          {
            "date": "2026-04-25",
            "count": 1
          },
          {
            "date": "2026-04-27",
            "count": 1
          },
          {
            "date": "2026-05-02",
            "count": 1
          },
          {
            "date": "2026-05-08",
            "count": 1
          },
          {
            "date": "2026-05-10",
            "count": 1
          },
          {
            "date": "2026-05-19",
            "count": 1
          },
          {
            "date": "2026-06-01",
            "count": 1
          },
          {
            "date": "2026-06-10",
            "count": 1
          },
          {
            "date": "2026-06-11",
            "count": 1
          },
          {
            "date": "2026-06-21",
            "count": 1
          },
          {
            "date": "2026-06-24",
            "count": 1
          },
          {
            "date": "2026-07-09",
            "count": 1
          },
          {
            "date": "2026-07-12",
            "count": 1
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_stars": 5087
      },
      "open_issues_and_prs": 0
    },
    "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": 311412,
      "source_files_sampled": 625,
      "oversized_source_files": 17,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "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": 7,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "activemodel",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "bigdecimal",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest-global_expectations",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest-hooks",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "nokogiri",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "tzinfo",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 7,
        "direct_count": 0,
        "indirect_count": 7
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 472,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 1227,
        "closed_unmerged_prs": 295
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "jeremyevans",
          "commits": 6963,
          "avatar_url": "https://avatars.githubusercontent.com/u/3846?v=4"
        },
        {
          "type": "User",
          "login": "noteflakes",
          "commits": 633,
          "avatar_url": "https://avatars.githubusercontent.com/u/291?v=4"
        },
        {
          "type": "User",
          "login": "janko",
          "commits": 36,
          "avatar_url": "https://avatars.githubusercontent.com/u/795488?v=4"
        },
        {
          "type": "User",
          "login": "wayneeseguin",
          "commits": 36,
          "avatar_url": "https://avatars.githubusercontent.com/u/18?v=4"
        },
        {
          "type": "User",
          "login": "chanks",
          "commits": 34,
          "avatar_url": "https://avatars.githubusercontent.com/u/300058?v=4"
        },
        {
          "type": "User",
          "login": "tmm1",
          "commits": 30,
          "avatar_url": "https://avatars.githubusercontent.com/u/2567?v=4"
        },
        {
          "type": "User",
          "login": "lancecarlson",
          "commits": 29,
          "avatar_url": "https://avatars.githubusercontent.com/u/107?v=4"
        },
        {
          "type": "User",
          "login": "celsworth",
          "commits": 27,
          "avatar_url": "https://avatars.githubusercontent.com/u/2658891?v=4"
        },
        {
          "type": "User",
          "login": "wishdev",
          "commits": 21,
          "avatar_url": "https://avatars.githubusercontent.com/u/1860?v=4"
        },
        {
          "type": "User",
          "login": "roylez",
          "commits": 15,
          "avatar_url": "https://avatars.githubusercontent.com/u/62289?v=4"
        }
      ],
      "contributors_sampled": 100,
      "top_contributor_share": 0.85
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml"
      ],
      "has_docs_dir": true,
      "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": 8,
            "reason": "4 out of 5 merged PRs checked by a CI test -- score normalized to 8",
            "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 5/29 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 48 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": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "25 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "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": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "bdb03b6d7f3076c9c0c4880975afb6d159a2e717",
        "ran_at": "2026-07-21T23:26:33Z",
        "aggregate_score": 5.6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-19T17:02:53Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-08T21:02:58Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/jeremyevans/sequel",
    "host": "github.com",
    "name": "sequel",
    "owner": "jeremyevans"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 75,
      "inputs": {
        "security": 56,
        "vitality": 90,
        "community": 88,
        "governance": 67,
        "engineering": 70
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 90,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "commits_last_year": 164,
              "human_commit_share": 1,
              "days_since_last_push": 2,
              "active_weeks_last_year": 41
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "41/52 weeks with commits",
                "points": 28.4,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 41
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "164 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 164
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "25 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 88,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "5.106.0",
              "releases_from_tags": true,
              "days_since_latest_release": 20,
              "mean_days_between_releases": 30.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 20 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 20
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~30.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 30.3
                    }
                  }
                ],
                "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": 2,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 2 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "excellent",
        "name": "Community & Adoption",
        "value": 88,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 96,
            "inputs": {
              "forks": 1075,
              "stars": 5087,
              "watchers": 106,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "5,087 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 5087
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1,075 forks",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1075
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "106 watchers",
                "points": 11.2,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 106
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "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": [
                "sequel"
              ],
              "dependents": null,
              "ecosystems": "rubygems",
              "total_downloads": 72208559,
              "monthly_downloads": null
            },
            "components": [
              {
                "key": "total_downloads",
                "name": "Total downloads",
                "detail": "72,208,559 downloads all-time across rubygems",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_total",
                    "params": {
                      "count": 72208559,
                      "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": 67,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 36,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 100,
              "top_contributor_share": 0.85
            },
            "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 85% of commits",
                "points": 3.4,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 85
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "100 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 48 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 72,
            "inputs": {
              "merged_prs": 472,
              "open_issues": 0,
              "closed_issues": 1227,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 295
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "472/767 decided PRs merged",
                "points": 23.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 472,
                      "decided": 767
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 5/29 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "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": 73,
            "inputs": {
              "followers": 1742,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "jeremyevans",
              "public_repos": 239,
              "account_age_days": 6691
            },
            "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": "1,742 followers of jeremyevans",
                "points": 23.3,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1742,
                      "login": "jeremyevans"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "239 public repos, account ~18 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 239
                    }
                  },
                  {
                    "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": [
                "sequel"
              ],
              "ecosystems": "rubygems",
              "any_deprecated": false,
              "min_days_since_publish": 20
            },
            "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 20 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 20
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "307 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 307
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 70,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 64,
            "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": "1 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "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": "4 out of 5 merged PRs checked by a CI test -- score normalized to 8",
                "points": 16,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": "http://sequel.jeremyevans.net",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "http://sequel.jeremyevans.net",
                "points": 15,
                "status": "met",
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 56,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 56,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 5.6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "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": "4 out of 5 merged PRs checked by a CI test -- score normalized to 8",
                "points": 2,
                "status": "partial",
                "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 5/29 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 48 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": "no update tool detected",
                "points": 0,
                "status": "missed",
                "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": "25 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "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": 21
            },
            "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": 32,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 33,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.62,
              "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": "62 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 33.1,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 62,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "critical",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 22,
            "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
            },
            "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": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "primary_language": "Ruby",
              "largest_source_bytes": 311412,
              "source_files_sampled": 625,
              "oversized_source_files": 17
            },
            "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": "17/625 source files over 60KB",
                "points": 53.5,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 625,
                      "oversized": 17
                    }
                  }
                ],
                "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:26:51.678699Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/j/jeremyevans/sequel.svg",
  "full_name": "jeremyevans/sequel",
  "license_state": "standard",
  "license_spdx": "MIT"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v1.13.0、模式 v0.26.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计RubyGems.