Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 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 р.Переглянути на GitHub ↗

jeremyevans/sequel має індекс здоров’я 75 зі 100, що відповідає смузі «Добрий». Найвищий показник — Vitality (90/100), найнижчий — AI Readiness (32/100). Останнє оновлення було 2 дні тому. Більшість нещодавньої роботи виконує один учасник.

75
загалом / 100
Добрий

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

75
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

Jeremy EvansОсобистий обліковий запис
1 742 підписники239 публічних репозиторіївз бер. 2008 р.Ubicloud, Inc.

Цей репозиторій належить особистому обліковому запису. Проєкт з єдиним власником несе більший ризик безперервності, ніж підтримуваний організацією.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікація
RubyGemssequel5.106.0-30720 днів тому

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

90Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 2 дн. тому
28.4/36Ритм комітів — 41/52 тижнів із комітами
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
Як обчислюється оцінка
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
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
18/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні
Як обчислюється оцінка
80/80Сумарні завантаження — 72 208 559 завантажень за весь час у rubygems
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Вирішення issue — закрито 100% issue
23.5/38.3Прийняття PR — злито 472/767 вирішених PR
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Охоплення власника — 1 742 підписників у jeremyevans
25/25Послужний список — 239 публічних репозиторіїв, вік облікового запису ~18 р.
Використані вхідні дані
followers1 742
owner_typeUser
is_verified
owner_loginjeremyevans
public_repos239
account_age_days6 691
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у rubygems
35/35Свіжість публікацій — остання публікація 20 дн. тому
20/20Історія версій — 307 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagessequel
ecosystemsrubygems
any_deprecatedні
min_days_since_publish20

Інженерна якість

Чи наявні базові інженерні практики та документація?

70Добрий · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 1 процес(ів) CI
24/24Наявні тести
0/16Конфігурація лінтера
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ні
Як обчислюється оцінка
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. Залишкові ваги перенормовано.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

32У зоні ризику · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
33.1/40Читабельна історія комітів — намір зазначено у 62 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,62
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
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Керовані розміри файлів — 17/625 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageRuby
largest_source_bytes311 412
source_files_sampled625
oversized_source_files17

Ключові факти

5 087зірок GitHub
100контриб'юторів
164комітів за останні 12 місяців
2днів від останнього пушу
100релізів
1бас-фактор
0відкритих issue
пакетних екосистем

Попередження щодо збору даних

  • No resolved dependencies carried a version and a supported ecosystem

Докладніше

Історія зірок і форків 5 087 ★ / 1 075 ⇿
5 087Зірки
1 075Форки
100Релізи

Коли додано кожну зірку й форк — зібрано з 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 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
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.