Öffentliches Register
Software-GesundheitsberichtSchema 0.26.0 · Metriken 1.13.0 · 2026-07-22 00:01 UTC

DatabaseCleaner / database_cleaner

Strategies for cleaning databases in Ruby. Can be used to ensure a clean state for testing.

RubyMIT★ 2.962 Sterne⑂ 485 Forksseit März 2009Auf GitHub ansehen ↗

DatabaseCleaner/database_cleaner erreicht einen Gesundheitsindex von 56 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Community & Adoption (77/100) ab, am schwächsten bei Vitality (29/100). Zuletzt vor 50 Tagen aktualisiert. 3 Mitwirkende tragen den Großteil der jüngsten Arbeit.

56
gesamt / 100
Mittel

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

56
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

DatabaseCleanerOrganisation
4 Follower14 öffentliche Reposseit Juni 2014

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlicht
RubyGemsdatabase_cleaner2.1.0-58vor 634 Tagen
RubyGemsdatabase_cleaner-core2.1.0-5vor 50 Tagen

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

29Kritisch · 22 % des Gesamtindex
Wie die Bewertung erfolgt
18/36Push-Aktualität — letzter Push vor 50 Tagen
0.7/36Commit-Rhythmus — 1/52 Wochen mit Commits
2.7/18Commit-Volumen — 1 Commits im letzten Jahr
1/10OpenSSF Scorecard: Maintained — 1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1
Verwendete Eingangsdaten
commits_last_year1
human_commit_share1
days_since_last_push50
active_weeks_last_year1

Release-Disziplin

40Gefährdet
Wie die Bewertung erfolgt
16.2/27Liefert Releases aus — 47 Versions-Tags (keine GitHub-Releases)
7.2/36Release-Aktualität — letztes Release vor 634 Tagen
12.6/27Release-Rhythmus — ein Release etwa alle 192,1 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count47
latest_release_tagv2.1.0
releases_from_tagsja
days_since_latest_release634
mean_days_between_releases192,1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

77Gut · 18 % des Gesamtindex
Wie die Bewertung erfolgt
56.3/60Stars — 2.962 Stars
22.4/25Forks — 485 Forks
8.4/15Watcher — 33 Watcher
Verwendete Eingangsdaten
forks485
stars2.962
watchers33
growth_stateorganic
growth_factor_pct100
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
80/80Downloads gesamt — 337.797.438 Downloads insgesamt über rubygems
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagesdatabase_cleaner, database_cleaner-core
dependents
ecosystemsrubygems
total_downloads337.797.438
monthly_downloads
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

77Gut · 24 % des Gesamtindex
Wie die Bewertung erfolgt
36/54Bus-Faktor — 3 Beitragende decken die Hälfte aller Commits ab
16.2/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 28 % der Commits
13.5/13.5Breite der Beitragenden — 100 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 52 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor3
contributors_sampled100
top_contributor_share0,281
Wie die Bewertung erfolgt
42.4/46.8Issue-Lösungsquote — 91 % der Issues geschlossen
28.8/38.3PR-Annahme — 273/362 entschiedene PRs gemergt
9/15OpenSSF Scorecard: Code-Review — Found 15/23 approved changesets -- score normalized to 6
Verwendete Eingangsdaten
merged_prs273
open_issues28
closed_issues276
issue_closed_ratio0,908
closed_unmerged_prs89
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
5/25Reichweite des Inhabers — 4 Follower von DatabaseCleaner
20.6/25Kontohistorie — 14 öffentliche Repos, Kontoalter ca. 12 Jahre
Verwendete Eingangsdaten
followers4
owner_typeOrganization
is_verified
owner_loginDatabaseCleaner
public_repos14
account_age_days4.416

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 2 Paket(e) auf rubygems
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 50 Tagen
20/20Versionshistorie — 58 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesdatabase_cleaner, database_cleaner-core
ecosystemsrubygems
any_deprecatednein
min_days_since_publish50

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

56Mittel · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 1 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
2/20OpenSSF Scorecard: CI-Tests — 2 out of 16 merged PRs checked by a CI test -- score normalized to 1
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_confignein
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://www.rubydoc.info/github/DatabaseCleaner/database_cleaner
10/10Repository-Beschreibung
10/10Topics — 4 Topics
0/10Wiki
Verwendete Eingangsdaten
topicstesting, ruby, database-cleaner, testing-tools
has_wikinein
homepagehttps://www.rubydoc.info/github/DatabaseCleaner/database_cleaner
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

38Gefährdet · 16 % des Gesamtindex

Sicherheitslage

38Gefährdet
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0.2/2.5CI-Tests — 2 out of 16 merged PRs checked by a CI test -- score normalized to 1
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
4.5/7.5Code-Review — Found 15/23 approved changesets -- score normalized to 6
2.5/2.5Contributors — project has 52 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.5Lizenz — license file detected
0.8/7.5Maintained — 1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1
0/5Packaging — keine Daten
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 — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,8
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): packaging, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

31Gefährdet · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
12.8/40Lesbare Commit-Historie — 24 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,24
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
0/11Statische Typprüfung
10/10Reproduzierbare Umgebung — Dockerfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 100
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfiles
has_dockerfileja
typed_languagenein
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
0/45Typprüfbarer Code — Ruby ohne Typprüfungs-Konfiguration
55/55Handhabbare Dateigrößen — 0/31 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageRuby
largest_source_bytes7.389
source_files_sampled31
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

2.962GitHub-Sterne
100Mitwirkende
1Commits, letzte 12 Monate
50Tage seit letztem Push
47Releases
3Bus-Faktor
28offene Issues
RubyGemsPaket-Ökosysteme

Warnungen zur Datenerhebung

  • No resolved dependencies carried a version and a supported ecosystem

Weitere Details

Stern- und Fork-Verlauf 2.962 ★ / 485 ⇿
2.962Sterne
485Forks
47Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

Es wird nur die jüngste Historie angezeigt — dieses Repository überschreitet das Erfassungsfenster, sodass die früheste Historie nicht erfasst wird.

05001.0001.5002.0002.5003.0002.962463222009-032017-112026-07
Major 2Minor 16Patch 29

Jeder Punkt umfasst 16 Tage.

OpenSSF Scorecard 3.8 / 10
3.8Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-22 00:01 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
1CI-Tests2 out of 16 merged PRs checked by a CI test -- score normalized to 1
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
6Code-ReviewFound 15/23 approved changesets -- score normalized to 6
10Contributorsproject has 52 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
1Maintained1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1
k. A.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
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 3
RegistryPaketVersionsvorgabeManifest
RubyGemsbyebugGemfile
RubyGemsdatabase_cleaner-active_recordGemfile
RubyGemsdatabase_cleaner-redisGemfile
Alle Abhängigkeiten 13

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 3 direkte und 10 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

RegistryPaketVersionBeziehung
RubyGemsbyebugdirekt
RubyGemsdatabase_cleaner-active_recorddirekt
RubyGemsdatabase_cleaner-redisdirekt
RubyGemsactivesupportindirekt
RubyGemsbundlerindirekt
RubyGemscodecovindirekt
RubyGemscucumberindirekt
RubyGemsguard-rspecindirekt
RubyGemslistenindirekt
RubyGemsrakeindirekt
RubyGemsrspecindirekt
RubyGemssimplecovindirekt
RubyGemssqlite3indirekt
Abhängigkeits-Advisories nicht bewertet

Der Advisory-Abgleich konnte für diesen Bericht nicht ausgeführt werden: No resolved dependencies carried a version and a supported ecosystem

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "testing",
        "ruby",
        "database-cleaner",
        "testing-tools"
      ],
      "is_fork": false,
      "size_kb": 1393,
      "has_wiki": false,
      "homepage": "https://www.rubydoc.info/github/DatabaseCleaner/database_cleaner",
      "languages": {
        "Ruby": 43295,
        "Shell": 148,
        "Gherkin": 2076
      },
      "pushed_at": "2026-06-01T18:01:14Z",
      "created_at": "2009-03-05T06:08:15Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-16T05:17:23Z",
      "description": "Strategies for cleaning databases in Ruby.  Can be used to ensure a clean state for testing.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Ruby",
      "significant_languages": [
        "Ruby"
      ]
    },
    "owner": {
      "blog": null,
      "name": "DatabaseCleaner",
      "type": "Organization",
      "login": "DatabaseCleaner",
      "company": null,
      "location": null,
      "followers": 4,
      "avatar_url": "https://avatars.githubusercontent.com/u/7924760?v=4",
      "created_at": "2014-06-18T15:28:46Z",
      "is_verified": null,
      "public_repos": 14,
      "account_age_days": 4416
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2024-10-25T01:49:15Z"
        },
        {
          "tag": "v2.0.2",
          "kind": "patch",
          "published_at": "2023-03-10T19:00:20Z"
        },
        {
          "tag": "v2.0.1",
          "kind": "patch",
          "published_at": "2021-02-04T16:41:52Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2021-01-31T23:17:22Z"
        },
        {
          "tag": "v1.99.0",
          "kind": "minor",
          "published_at": "2021-01-31T23:12:15Z"
        },
        {
          "tag": "v1.8.5",
          "kind": "patch",
          "published_at": "2020-05-04T19:32:19Z"
        },
        {
          "tag": "v1.8.4",
          "kind": "patch",
          "published_at": "2020-04-04T15:17:09Z"
        },
        {
          "tag": "v1.8.3",
          "kind": "patch",
          "published_at": "2020-02-18T18:26:03Z"
        },
        {
          "tag": "v1.8.2",
          "kind": "patch",
          "published_at": "2020-02-01T21:22:21Z"
        },
        {
          "tag": "v1.8.1",
          "kind": "patch",
          "published_at": "2020-01-31T01:58:00Z"
        },
        {
          "tag": "v1.8.0",
          "kind": "minor",
          "published_at": "2020-01-30T00:32:28Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2018-04-19T20:23:35Z"
        },
        {
          "tag": "v1.6.2",
          "kind": "patch",
          "published_at": "2017-10-30T01:53:57Z"
        },
        {
          "tag": "v1.6.1",
          "kind": "patch",
          "published_at": "2017-05-09T14:31:23Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2017-05-04T18:52:43Z"
        },
        {
          "tag": "v1.5.3",
          "kind": "patch",
          "published_at": "2016-04-22T14:32:55Z"
        },
        {
          "tag": "v1.5.2",
          "kind": "patch",
          "published_at": "2016-04-18T02:31:32Z"
        },
        {
          "tag": "v1.5.1",
          "kind": "patch",
          "published_at": "2015-09-04T21:08:27Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2015-09-01T19:23:57Z"
        },
        {
          "tag": "v1.4.1",
          "kind": "patch",
          "published_at": "2015-03-09T16:19:16Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2015-01-02T19:41:57Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2014-05-24T02:39:42Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2013-10-09T15:36:14Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2013-08-01T16:47:46Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2013-08-01T16:09:23Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2013-05-14T03:22:49Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2013-05-13T22:10:14Z"
        },
        {
          "tag": "v0.9.1",
          "kind": "patch",
          "published_at": "2012-10-11T16:22:21Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2012-10-11T15:58:11Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2012-06-03T04:48:43Z"
        },
        {
          "tag": "v0.7.2",
          "kind": "patch",
          "published_at": "2012-03-21T15:32:40Z"
        },
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2012-01-15T19:29:44Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2011-11-13T01:26:36Z"
        },
        {
          "tag": "v0.6.7",
          "kind": "patch",
          "published_at": "2011-04-22T03:39:41Z"
        },
        {
          "tag": "v0.6.6",
          "kind": "patch",
          "published_at": "2011-03-17T03:57:24Z"
        },
        {
          "tag": "v0.6.5",
          "kind": "patch",
          "published_at": "2011-03-09T02:23:48Z"
        },
        {
          "tag": "v0.6.4",
          "kind": "patch",
          "published_at": "2011-02-21T16:35:52Z"
        },
        {
          "tag": "v0.6.3",
          "kind": "patch",
          "published_at": "2011-02-09T16:58:33Z"
        },
        {
          "tag": "v0.6.2",
          "kind": "patch",
          "published_at": "2011-02-04T16:30:48Z"
        },
        {
          "tag": "v0.6.1",
          "kind": "patch",
          "published_at": "2011-01-27T17:42:09Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2010-10-25T17:49:58Z"
        },
        {
          "tag": "v0.5.2",
          "kind": "patch",
          "published_at": "2010-04-16T04:28:30Z"
        },
        {
          "tag": "v0.5.1",
          "kind": "patch",
          "published_at": "2010-04-13T15:59:12Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2010-02-22T19:32:45Z"
        },
        {
          "tag": "v0.4.3",
          "kind": "patch",
          "published_at": "2010-01-17T19:57:53Z"
        },
        {
          "tag": "v0.4.2",
          "kind": "patch",
          "published_at": "2010-01-12T16:53:09Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2009-12-21T05:19:25Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "09b47d03cce420c915b10eb595936ef4397b55ac",
          "body": null,
          "is_bot": false,
          "headline": "Minor clean up of extra `given?` method (#726)",
          "author_name": "Anatoli Babenia",
          "author_login": "abitrolly",
          "committed_at": "2026-06-01T18:01:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f50ccb2f9c60392a0fe418427c1deb0d71c70101",
          "body": "* [DX] Improve CONTRIBUTE.md instructions\n\n* Update History.rdoc",
          "is_bot": false,
          "headline": "[DX] Improve CONTRIBUTE.md instructions (#721)",
          "author_name": "Ariel Juodziukynas",
          "author_login": "arielj",
          "committed_at": "2025-07-07T18:56:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4780bcc119d666a75001261f3eae5423a00a530",
          "body": "As best I can tell, there's been a change to the output of Ruby's stack traces in `caller` - they now start with a 'normal' single quote, instead of a backtick.\r\n\r\nThis pattern now handles both, to ensure backwards compatibility.",
          "is_bot": false,
          "headline": "3.4 quoted locations start with single quotes (#719)",
          "author_name": "Pat Allan",
          "author_login": "pat",
          "committed_at": "2025-03-10T15:18:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f5946a042231c693a8e5c303d38bb464835a699",
          "body": "* Update changelog URL in gemspec\r\n\r\n* Update coverage badge in readme to use main branch",
          "is_bot": false,
          "headline": "Update main branch references (#718)",
          "author_name": "Arne Hartherz",
          "author_login": "foobear",
          "committed_at": "2024-11-18T18:16:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "23fb7a71531791b38996b4107fd8741df9962ac2",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 2.1.0",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2024-10-25T01:49:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "892dd1bc609cf5d92196070429c337aa9123f618",
          "body": null,
          "is_bot": false,
          "headline": "Add details about v2.1.0",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2024-10-25T01:48:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cbc840837cd2a7e18c965945b73bd05b5688fe32",
          "body": "Update Safeguard::RemoteDatabaseUrl to skip URLs like \"sqlite://path/to/file.sqlite”, which is now the conventional format for URLs to SQLite databases when using libraries like Sequel.",
          "is_bot": false,
          "headline": "Skip conventional sqlite:// URLs from safeguards (#715)",
          "author_name": "Tim Riley",
          "author_login": "timriley",
          "committed_at": "2024-07-12T04:22:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f458536ac6bb09cf93f4f4b53b9fce3741b6c0c8",
          "body": null,
          "is_bot": false,
          "headline": "Update for trilogy (#707)",
          "author_name": "Peter Goldstein",
          "author_login": "petergoldstein",
          "committed_at": "2024-01-02T14:49:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b38eec7656e4f45790c164fa63f2d1d0c75a9c44",
          "body": null,
          "is_bot": false,
          "headline": "Add Ruby 3.3 to CI matrix (#710)",
          "author_name": "Masato Nakamura",
          "author_login": "m-nakamura145",
          "committed_at": "2024-01-02T14:48:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0bb7cd0ce6b99611d6ae994464ded256b4761b7d",
          "body": null,
          "is_bot": false,
          "headline": "Point CI badge to GitHub Actions (#706)",
          "author_name": "Peter Goldstein",
          "author_login": "petergoldstein",
          "committed_at": "2023-10-23T14:53:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64e2ef7ba048f119ec181055ba97272ae6d73678",
          "body": "Feature/relax dependency",
          "is_bot": false,
          "headline": "Merge pull request #699 from DatabaseCleaner/feature/relax-dependency",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2023-03-10T19:00:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7edc507100d769543c5b3c3791cf78915c7f7e2f",
          "body": "Also, bump version to 2.0.2",
          "is_bot": false,
          "headline": "Relax dependency on database_cleaner-active_record",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2023-03-10T18:01:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5c62ee3062c94e85ddd193f0c5685f3596455e9",
          "body": null,
          "is_bot": false,
          "headline": "Document version 2.0.2",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2023-03-10T17:55:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ff5d014f5b36f63d8bb430cd36fd1bda2fbb6c9",
          "body": "Add Ruby 3.2 to the CI matrix",
          "is_bot": false,
          "headline": "Merge pull request #697 from petergoldstein/feature/add_ruby_3_2_to_ci",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2023-01-26T17:02:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1434d2b9d0034470f6aee68c9b24168442099ac",
          "body": null,
          "is_bot": false,
          "headline": "Tweak safeguard so that empty strings are handled correctly",
          "author_name": "Peter Goldstein",
          "author_login": "petergoldstein",
          "committed_at": "2022-12-27T01:51:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ead2f5aa5c0928e8b3e8719136b3bab6c6ae1aa3",
          "body": null,
          "is_bot": false,
          "headline": "Add explicit hashes to avoid ambiguity with keyword arguments",
          "author_name": "Peter Goldstein",
          "author_login": "petergoldstein",
          "committed_at": "2022-12-27T01:32:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e7c43f0148904246523a12bb3710ae8d9162266",
          "body": null,
          "is_bot": false,
          "headline": "Add Ruby 3.2 to the CI matrix.  Also update checkout action version.",
          "author_name": "Peter Goldstein",
          "author_login": "petergoldstein",
          "committed_at": "2022-12-25T15:09:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c57ab08b003db4bd46a585edad82db8bd7c77914",
          "body": "We are no longer using https://databasecleaner.github.io for release documentation",
          "is_bot": false,
          "headline": "Added a CHANGELOG section to the README",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2022-01-16T03:19:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20cfceac23171685ea7f2662d4611585f5ce8e89",
          "body": "…actions\n\nSwitch to GitHub Actions",
          "is_bot": false,
          "headline": "Merge pull request #689 from petergoldstein/feature/switch_to_github_…",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2022-01-16T02:52:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1f150fbcb489288068b4b20d1025ed27e481173",
          "body": null,
          "is_bot": false,
          "headline": "Switch to GitHub Actions",
          "author_name": "Peter Goldstein",
          "author_login": "petergoldstein",
          "committed_at": "2022-01-14T07:54:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22b87c882fe3dfff621e4602fcbbb9d666441ce3",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'rlue-strategy-getter'",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2021-10-19T02:14:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c60ce4d2c9a30369a611b425b5fc05b885430b37",
          "body": null,
          "is_bot": false,
          "headline": "Change expectation for the #strategy method in the Cleaners class",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2021-10-19T02:13:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8d2c031ea890ce2a4126c9d9eaa9f4e6b1728c9",
          "body": null,
          "is_bot": false,
          "headline": "Change strategy method implementation to return a Hash.",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2021-10-19T02:13:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "933df38680353ddf428959ccd3d949af28642e4a",
          "body": "…eaner into rlue-strategy-getter",
          "is_bot": false,
          "headline": "Merge branch 'strategy-getter' of https://github.com/rlue/database_cl…",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2021-10-19T02:04:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1e1116ea081e1b7da3178f0bcd7ca707c19d588",
          "body": "Issue #511 proposes the addition of a ::strategy getter\non the DatabaseCleaner module to aid new users with debugging.\nThis commit introduces that method.\n\nLike the ::strategy= setter method, ::strategy is actually defined\nas an instance method on DatabaseCleaner::Cleaners,\nand is made available to \n[…]\nxt included a single example testing the #orm= method,\nwhich was removed in the aforementioned commit.\nNow, a modified version of the same context is used\nto test the #strategy method introduced here.",
          "is_bot": false,
          "headline": "Add DatabaseCleaner::strategy getter method",
          "author_name": "Ryan Lue",
          "author_login": "rlue",
          "committed_at": "2021-07-30T02:05:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9046980bd612e0d0a4e24e6a45a0fee20d5e5251",
          "body": null,
          "is_bot": false,
          "headline": "ensure both strategy options syntaxes work.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2021-05-08T19:42:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85cd6d097f6e3676be168c48301b2f37f69574b2",
          "body": null,
          "is_bot": false,
          "headline": "Fix docs about usage of only and except options",
          "author_name": "Diego Algorta",
          "author_login": "oboxodo",
          "committed_at": "2021-05-08T19:41:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8cfc85ab27c95c00971dccea8667a7908b2b577",
          "body": null,
          "is_bot": false,
          "headline": "Fixed strategy class lookup (#680)",
          "author_name": "Alexander Senko",
          "author_login": "Alexander-Senko",
          "committed_at": "2021-03-16T14:55:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a34c4c3d94d7397878e3510987093f17603f81cf",
          "body": null,
          "is_bot": false,
          "headline": "Start testing database_cleaner-core with Ruby 3.0",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2021-03-13T18:28:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "068656a246fcb56ab1385e7370b2740f5ebef5db",
          "body": null,
          "is_bot": false,
          "headline": "Fixed readme",
          "author_name": "Vital",
          "author_login": "vitalinfo",
          "committed_at": "2021-02-11T16:00:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e90ac9966752191d85f9fba1c4799fa32b081d6",
          "body": null,
          "is_bot": false,
          "headline": "Update README.markdown",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2021-02-08T17:00:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c889b94a6debf2c0103215ca905eafd04eead1d5",
          "body": null,
          "is_bot": false,
          "headline": "release v2.0.1.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2021-02-04T16:41:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc74d7d12b5767abff3c2acff5d82e5a7f74330d",
          "body": null,
          "is_bot": false,
          "headline": "changelog for v2.0.1.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2021-02-04T16:41:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8b7e052e6c39980ce063affbcffc8e765e27b07",
          "body": "…ows for time to configure safeguards.",
          "is_bot": false,
          "headline": "delay running safeguards until right before cleaning begins. this all…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2021-02-04T16:38:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44bbfe5386cfad0a4d57dcadf2020e78f03a6977",
          "body": "…ture.",
          "is_bot": false,
          "headline": "remove notice now that master should be stable for the foreseeable fu…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2021-01-31T23:33:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51fb215707068f604f26401765dab58ef182996f",
          "body": null,
          "is_bot": false,
          "headline": "release v2.0.0.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2021-01-31T23:17:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "77f89a0aac686391840e59cc2302a779bb1b4ec0",
          "body": null,
          "is_bot": false,
          "headline": "Remove whitespace markdown header.",
          "author_name": "expeehaa",
          "author_login": "expeehaa",
          "committed_at": "2021-01-21T19:27:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d5ca132fbfb4ac045d0e2223a89d1cb1f0b97e1",
          "body": null,
          "is_bot": false,
          "headline": "Remove indentation on empty lines for consistency.",
          "author_name": "expeehaa",
          "author_login": "expeehaa",
          "committed_at": "2021-01-21T19:27:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6a401dd5f83f1f2f73cce5d4abc5322d24303e7",
          "body": null,
          "is_bot": false,
          "headline": "Remove trailing whitespaces.",
          "author_name": "expeehaa",
          "author_login": "expeehaa",
          "committed_at": "2021-01-21T19:27:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7b9246e6801cb5c609b64ba871c3ee8c99350c5",
          "body": "Support regular expressions in allowlist",
          "is_bot": false,
          "headline": "Merge pull request #660 from bpo/allowlist-regex",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2020-10-09T17:34:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4a1fe76838f2e63055e660a0d68e422b112dbd0",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'master' into allowlist-regex",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2020-10-09T15:42:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "661fe7ef3021c5002de8f98542760c38b9c9505c",
          "body": "Add APP_ENV",
          "is_bot": false,
          "headline": "Merge pull request #662 from joelvh/feature/app_env",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2020-10-09T15:41:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4ace20cd09fa366363832fa811b4e74ff9afd02",
          "body": "Fix Ruby 2.7 deprecation warnings",
          "is_bot": false,
          "headline": "Merge pull request #667 from ngan/fix-ruby-2.7-deprecations",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2020-10-09T15:38:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "303ccadd283e4494db254f687ad674cb474ffba6",
          "body": "README update: update `additional options` link",
          "is_bot": false,
          "headline": "Merge pull request #666 from prostko/patch-1",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2020-10-09T15:37:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b18230d1afd362d221296de2b0b8203877895b4",
          "body": null,
          "is_bot": false,
          "headline": "Update HISTORY",
          "author_name": "Ngan Pham",
          "author_login": "ngan",
          "committed_at": "2020-10-09T15:09:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "573bd780264d323dc1f1ea2f1d804e4c145e45a1",
          "body": null,
          "is_bot": false,
          "headline": "Fix Ruby 2.7 deprecation warnings",
          "author_name": "Ngan Pham",
          "author_login": "ngan",
          "committed_at": "2020-10-09T15:07:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6bb730fbcc1e8f6c3aa2eeb8506c0a22bc41faf",
          "body": "README has a broken link to additional config options for :truncation\r\n\r\nChange to point at the active-record library repo",
          "is_bot": false,
          "headline": "README update: update `additional options` link",
          "author_name": "Eric Prostko",
          "author_login": null,
          "committed_at": "2020-10-09T14:59:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9bc66d6c7e442b8481d63301d420ae4057627c50",
          "body": null,
          "is_bot": false,
          "headline": "Add APP_ENV",
          "author_name": "Joel Van Horn",
          "author_login": "joelvh",
          "committed_at": "2020-07-09T17:47:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "12c904161a55a481f44881e92b4b3dee88abe5d4",
          "body": null,
          "is_bot": false,
          "headline": "Add APP_ENV",
          "author_name": "Joel Van Horn",
          "author_login": "joelvh",
          "committed_at": "2020-07-09T17:47:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f3259bc4272bc43d8cbbfc6af7edf9049922802",
          "body": null,
          "is_bot": false,
          "headline": "Add APP_ENV",
          "author_name": "Joel Van Horn",
          "author_login": "joelvh",
          "committed_at": "2020-07-09T17:45:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "089f8dc619368f9cded275b5cd324c02a852fdd4",
          "body": null,
          "is_bot": false,
          "headline": "Add docs and another allowlist example",
          "author_name": "Brian P O'Rourke",
          "author_login": "bpo",
          "committed_at": "2020-07-01T17:02:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a25ae50bc1062baf0729f5926d2dd74e117c8bd8",
          "body": null,
          "is_bot": false,
          "headline": "Docs and spec cleanup",
          "author_name": "Brian P O'Rourke",
          "author_login": "bpo",
          "committed_at": "2020-06-30T19:15:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3078d14de1c06390caac86d52d4b9bf8039b8fb",
          "body": null,
          "is_bot": false,
          "headline": "Support regular expressions in allowlist",
          "author_name": "Brian P O'Rourke",
          "author_login": "bpo",
          "committed_at": "2020-06-30T18:56:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "855abc968d6ec1bf86b5c2a90687c53151794a0d",
          "body": null,
          "is_bot": false,
          "headline": "Update development history with changes from #658",
          "author_name": "Brian P O'Rourke",
          "author_login": "bpo",
          "committed_at": "2020-06-18T18:01:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52514b3c8ab8333d278bc3b71e5611f0f289c906",
          "body": "This runs s/url_whitelist/url_allowlist/ and adds backwards-compatible\naliases for the terminology which can be easily deprecated or dropped\nin the future, should that be desired.",
          "is_bot": false,
          "headline": "Add more descriptive \"allowlist\" terminology",
          "author_name": "Brian P O'Rourke",
          "author_login": "bpo",
          "committed_at": "2020-06-18T18:01:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4da67e2d51d42bc8c7cbe70afd6af45e7fa46829",
          "body": null,
          "is_bot": false,
          "headline": "lock cucumber down to v3 for now.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-06-18T17:31:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b012a34972b95fc690e8d5e7505a8f4b349a255f",
          "body": "…cleaner-core.",
          "is_bot": false,
          "headline": "release v2.0.0.beta of database_cleaner and v2.0.0.beta2 of database_…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-30T18:04:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9baf7e3725c9bf821a8d6897eeec6a7b4cdb3989",
          "body": null,
          "is_bot": false,
          "headline": "update changelog.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-30T18:04:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "781a4a096d4940991e6d16b03be833e2cd611c2f",
          "body": "…cation is no longer a safe default for all adapters.",
          "is_bot": false,
          "headline": "fix acceptance tests to actually use default strategy, now that :trun…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-30T16:10:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d087c1d2a6c5cc33d115ecf32c756637fde9c0ef",
          "body": "…rade to bionic to fix.",
          "is_bot": false,
          "headline": "encountering ssl errors on travis due to AddTrust CA root expiry. upg…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-30T15:56:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7656f1da8a9bb3facbef8e50a8148bbb7969a7b9",
          "body": "…he rest of database_cleaner.",
          "is_bot": false,
          "headline": "rename :connection configuration option to :db for consistency with t…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-30T15:36:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33304de07fd479801c6a32997fcf6d1d2e20ad28",
          "body": null,
          "is_bot": false,
          "headline": "refactor to make it easier to reproduce inner cucumber failures.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-18T17:59:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "53a83ec02db5cae86b39f7b6b11dcb8183522c88",
          "body": null,
          "is_bot": false,
          "headline": "demote neo4j adapter to discontinued list.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-16T14:05:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7da7a810fd062459ce85035f59477c7c5803336e",
          "body": null,
          "is_bot": false,
          "headline": "update History.rdoc with v1.8.5 release changes.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-16T14:00:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d98807d3dafad01b00e8cd1812cc764d4b94d24",
          "body": null,
          "is_bot": false,
          "headline": "Update README.markdown",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-15T22:40:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96417bc938057396a749c8f6542048b71b34260c",
          "body": null,
          "is_bot": false,
          "headline": "specify auto increment for each different db in db test helper.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-09T20:04:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64c0424f40c1625c0a7e6b70be4597c981329b98",
          "body": null,
          "is_bot": false,
          "headline": "get code coverage to 100%!",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-09T17:46:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "903eabc1e4399d8216d7717122c2b7b7ce433d99",
          "body": null,
          "is_bot": false,
          "headline": "remove unused method.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-09T17:39:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5f970344678565bb303e24edcd654128149fdc7",
          "body": "… output.",
          "is_bot": false,
          "headline": "ensure subsequent cucumber runs don't stomp on each others' simplecov…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-09T17:30:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c72e387c0a368c7a016156fb80095ded3c0e4002",
          "body": null,
          "is_bot": false,
          "headline": "don't need these anymore.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-09T17:16:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fb036b6a9c52a3a1a07d02e0ba5fd5606fea01fd",
          "body": "…operly.",
          "is_bot": false,
          "headline": "run inner cucumber tests in base working dir so that results merge pr…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-05-09T17:14:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2840cb6c622b5399c9462ea1c76fd9ffd84605d2",
          "body": null,
          "is_bot": false,
          "headline": "we aren't using this deprecator at the moment.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-26T23:46:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f98a95a38bb481a95b4aa891dd5e2664592fc9a",
          "body": null,
          "is_bot": false,
          "headline": "have second level of cucumber tests phone codecov.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-26T23:32:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "281d591cc8c0ff05aa496ea016c1716cfc2d75d4",
          "body": null,
          "is_bot": false,
          "headline": "add codecov to cucumber test runs, too.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-24T19:50:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44715f76d579f3a27556e9a44390fb8d05deb8c8",
          "body": "…overed.",
          "is_bot": false,
          "headline": "require library after we load coverage tools so that it is actually c…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-24T19:10:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28ba1de2af02ecdfd9f76fcc1c501faceb8c1f88",
          "body": null,
          "is_bot": false,
          "headline": "fix mistake in ADAPTERS.md instructions.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-24T19:05:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d7e0b9267752a36daac9e72f2a8418734c2cfe4",
          "body": "…r test so that travis is green for the PR.\"\n\nThis reverts commit e92acfbfee49482c85ab5e8739868dd7d1bbed07.",
          "is_bot": false,
          "headline": "Revert \"temporarily point at new_adapter_api branch for adapters unde…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-20T00:00:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "511fffcb898ae84042e3c366efdbe3f944d9ac98",
          "body": null,
          "is_bot": false,
          "headline": "simplify Strategy base class.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-20T00:00:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f536f174f87a2504bae86e2b377e5f73941ee5d5",
          "body": null,
          "is_bot": false,
          "headline": "require strategies to inherit from DatabaseCleaner::Strategy.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-20T00:00:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f88d22ca13055245eaaaf39c890425967afad3a",
          "body": "… and narrow the ORM Adapter API further.",
          "is_bot": false,
          "headline": "autodetect available strategies so we don't need to repeat ourselves,…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-20T00:00:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6faab63ee8ae94fc610fb28f77b51d16586e2fa7",
          "body": "…o that travis is green for the PR.",
          "is_bot": false,
          "headline": "temporarily point at new_adapter_api branch for adapters under test s…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-20T00:00:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70bad425c0560722149579ab15a373b5d9a55a7f",
          "body": null,
          "is_bot": false,
          "headline": "remove unused .default_strategy ORM adapter method.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-20T00:00:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "130133ffe5250a283b26a223aa29e9a3a8825030",
          "body": null,
          "is_bot": false,
          "headline": "Update ADAPTERS.md.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-20T00:00:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02a35cb4f636602912ffab3cc9a06d5ce6a6fda3",
          "body": "…class.",
          "is_bot": false,
          "headline": "fold all three DC::Generic:: modules into a single DC::Strategy base …",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-20T00:00:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "992e693ba92cc1665ab30b656dea0e9d84f43da3",
          "body": null,
          "is_bot": false,
          "headline": "more updates to ADAPTERS.md.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-10T16:31:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d331f6bf61258cdbe9ba695e2580c0d48009971",
          "body": null,
          "is_bot": false,
          "headline": "small updates to ADAPTERS.md.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-09T23:39:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "60a9e30577667284eea79c9dc59f879b3aae4245",
          "body": "….0 is released.",
          "is_bot": false,
          "headline": "split adapter writing instructions off into their own file until v2.0…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-09T23:24:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f214a196985644b7dca234e065acf7210fc7e60",
          "body": null,
          "is_bot": false,
          "headline": "Add doc for creating new adapters",
          "author_name": " TheSmartnik",
          "author_login": "TheSmartnik",
          "committed_at": "2020-04-09T23:20:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c542fee62a1c97766ee979920a398eabfaeb3a77",
          "body": null,
          "is_bot": false,
          "headline": "Cleaner#orm is readonly after creation.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-08T16:54:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb59319c5f18401697b807dbe4150287e7a66f05",
          "body": null,
          "is_bot": false,
          "headline": "rename Base to Cleaner.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-07T21:52:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3fcc6eeaed50fc5dd5f36cea4b9a502bf43e19f0",
          "body": null,
          "is_bot": false,
          "headline": "Update README.markdown",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-07T04:02:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d11ee6f067491aacd6d6480038a206f2993fe28",
          "body": "Make sure we load `simplecov` and `codecov` when we find the right environment variables are present",
          "is_bot": false,
          "headline": "Add require for code coverage libraries",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2020-04-07T04:01:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3638c93b7d24454be256eba5f3defcfb138389fb",
          "body": null,
          "is_bot": false,
          "headline": "Add codecov badge to README",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2020-04-07T04:01:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1651e4cf20b4c502661652c25d0244d6036bc83",
          "body": "We want to use this tools to track code coverage and display it in our README",
          "is_bot": false,
          "headline": "Add `simplecov` and `codecov` as dev dependencies",
          "author_name": "Ernesto Tagwerker",
          "author_login": "etagwerker",
          "committed_at": "2020-04-07T04:01:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "12abeae48bd559486ba91633acd573793c3c699e",
          "body": "…r gems, and reenable to validate the end-to-end UX.",
          "is_bot": false,
          "headline": "strip down cucumber scenarios to just use the two most popular adapte…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-06T21:42:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "592f2e23ef7f5bb3e7d0b041679f8c72b4f8211a",
          "body": "For a nice “Changelog” link in the https://rubygems.org/gems/database_cleaner sidebar.",
          "is_bot": false,
          "headline": "Add changelog to gemspec",
          "author_name": "Rafael Masson",
          "author_login": "rafbm",
          "committed_at": "2020-04-06T20:46:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "12fe7e86c1fd850b78afe7e2a753f977acdd8605",
          "body": null,
          "is_bot": false,
          "headline": "rename files to match.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-06T15:31:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6105b5f6475d8d3f9936b0444e0b5bdea58ae336",
          "body": "… now.",
          "is_bot": false,
          "headline": "replace Configuration with Cleaners, as the former is just a wrapper,…",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-06T15:31:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9055df104f6288b7644cb773737492a9b80827fc",
          "body": null,
          "is_bot": false,
          "headline": "change configuration test to test cleaners directly.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-06T15:31:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b194419fcd7909454052f0692b6956c11294df73",
          "body": null,
          "is_bot": false,
          "headline": "make Cleaners instantiation less awkward.",
          "author_name": "Micah Geisel",
          "author_login": "botandrose",
          "committed_at": "2020-04-06T15:31:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 47,
      "commits_last_year": 1,
      "latest_release_at": "2024-10-25T01:49:15Z",
      "latest_release_tag": "v2.1.0",
      "releases_from_tags": true,
      "days_since_last_push": 50,
      "active_weeks_last_year": 1,
      "days_since_latest_release": 634,
      "mean_days_between_releases": 192.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 37,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "database_cleaner",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "rubygems",
          "matches_repo": true,
          "registry_url": "https://rubygems.org/gems/database_cleaner",
          "is_deprecated": false,
          "latest_version": "2.1.0",
          "repository_url": "https://github.com/DatabaseCleaner/database_cleaner",
          "versions_count": 58,
          "total_downloads": 214236712,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2009-10-09T07:53:47.035000Z",
          "latest_published_at": "2024-10-25T01:50:05.847000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 634
        },
        {
          "name": "database_cleaner-core",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "rubygems",
          "matches_repo": true,
          "registry_url": "https://rubygems.org/gems/database_cleaner-core",
          "is_deprecated": false,
          "latest_version": "2.1.0",
          "repository_url": "https://github.com/DatabaseCleaner/database_cleaner",
          "versions_count": 5,
          "total_downloads": 123560726,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2020-04-05T21:12:31.657000Z",
          "latest_published_at": "2026-06-01T17:44:29.463000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 50
        }
      ]
    },
    "popularity": {
      "forks": 485,
      "stars": 2962,
      "watchers": 33,
      "fork_history": {
        "days": [
          {
            "date": "2009-03-05",
            "count": 1
          },
          {
            "date": "2009-03-11",
            "count": 1
          },
          {
            "date": "2009-08-18",
            "count": 1
          },
          {
            "date": "2009-08-26",
            "count": 1
          },
          {
            "date": "2009-10-01",
            "count": 1
          },
          {
            "date": "2010-02-03",
            "count": 1
          },
          {
            "date": "2010-03-04",
            "count": 1
          },
          {
            "date": "2010-03-29",
            "count": 1
          },
          {
            "date": "2010-04-01",
            "count": 1
          },
          {
            "date": "2010-04-13",
            "count": 1
          },
          {
            "date": "2010-05-03",
            "count": 1
          },
          {
            "date": "2010-05-22",
            "count": 1
          },
          {
            "date": "2010-05-26",
            "count": 1
          },
          {
            "date": "2010-06-10",
            "count": 1
          },
          {
            "date": "2010-06-21",
            "count": 1
          },
          {
            "date": "2010-07-01",
            "count": 1
          },
          {
            "date": "2010-07-08",
            "count": 1
          },
          {
            "date": "2010-07-17",
            "count": 1
          },
          {
            "date": "2010-09-16",
            "count": 1
          },
          {
            "date": "2010-10-22",
            "count": 2
          },
          {
            "date": "2010-11-10",
            "count": 1
          },
          {
            "date": "2010-12-03",
            "count": 1
          },
          {
            "date": "2010-12-10",
            "count": 1
          },
          {
            "date": "2010-12-22",
            "count": 1
          },
          {
            "date": "2011-01-16",
            "count": 1
          },
          {
            "date": "2011-01-31",
            "count": 1
          },
          {
            "date": "2011-02-07",
            "count": 1
          },
          {
            "date": "2011-02-11",
            "count": 1
          },
          {
            "date": "2011-03-15",
            "count": 1
          },
          {
            "date": "2011-03-19",
            "count": 1
          },
          {
            "date": "2011-03-31",
            "count": 1
          },
          {
            "date": "2011-05-26",
            "count": 1
          },
          {
            "date": "2011-05-29",
            "count": 1
          },
          {
            "date": "2011-06-13",
            "count": 1
          },
          {
            "date": "2011-06-14",
            "count": 1
          },
          {
            "date": "2011-06-18",
            "count": 1
          },
          {
            "date": "2011-06-20",
            "count": 1
          },
          {
            "date": "2011-06-21",
            "count": 2
          },
          {
            "date": "2011-06-29",
            "count": 1
          },
          {
            "date": "2011-07-11",
            "count": 1
          },
          {
            "date": "2011-07-23",
            "count": 1
          },
          {
            "date": "2011-08-06",
            "count": 1
          },
          {
            "date": "2011-08-20",
            "count": 1
          },
          {
            "date": "2011-09-01",
            "count": 1
          },
          {
            "date": "2011-11-13",
            "count": 1
          },
          {
            "date": "2011-11-22",
            "count": 1
          },
          {
            "date": "2011-11-25",
            "count": 1
          },
          {
            "date": "2011-11-29",
            "count": 1
          },
          {
            "date": "2011-12-02",
            "count": 1
          },
          {
            "date": "2011-12-05",
            "count": 1
          },
          {
            "date": "2011-12-15",
            "count": 1
          },
          {
            "date": "2011-12-17",
            "count": 1
          },
          {
            "date": "2011-12-20",
            "count": 1
          },
          {
            "date": "2011-12-22",
            "count": 1
          },
          {
            "date": "2011-12-25",
            "count": 1
          },
          {
            "date": "2012-01-24",
            "count": 1
          },
          {
            "date": "2012-01-27",
            "count": 3
          },
          {
            "date": "2012-01-28",
            "count": 1
          },
          {
            "date": "2012-02-03",
            "count": 1
          },
          {
            "date": "2012-02-04",
            "count": 1
          },
          {
            "date": "2012-02-20",
            "count": 1
          },
          {
            "date": "2012-02-21",
            "count": 1
          },
          {
            "date": "2012-02-24",
            "count": 1
          },
          {
            "date": "2012-03-01",
            "count": 1
          },
          {
            "date": "2012-03-07",
            "count": 1
          },
          {
            "date": "2012-03-08",
            "count": 1
          },
          {
            "date": "2012-04-01",
            "count": 1
          },
          {
            "date": "2012-04-12",
            "count": 1
          },
          {
            "date": "2012-04-16",
            "count": 1
          },
          {
            "date": "2012-04-23",
            "count": 1
          },
          {
            "date": "2012-04-25",
            "count": 1
          },
          {
            "date": "2012-05-14",
            "count": 1
          },
          {
            "date": "2012-05-15",
            "count": 1
          },
          {
            "date": "2012-06-02",
            "count": 1
          },
          {
            "date": "2012-06-09",
            "count": 1
          },
          {
            "date": "2012-06-15",
            "count": 2
          },
          {
            "date": "2012-06-27",
            "count": 1
          },
          {
            "date": "2012-07-03",
            "count": 1
          },
          {
            "date": "2012-07-14",
            "count": 1
          },
          {
            "date": "2012-07-25",
            "count": 1
          },
          {
            "date": "2012-07-26",
            "count": 2
          },
          {
            "date": "2012-07-27",
            "count": 1
          },
          {
            "date": "2012-07-31",
            "count": 1
          },
          {
            "date": "2012-08-01",
            "count": 1
          },
          {
            "date": "2012-08-07",
            "count": 1
          },
          {
            "date": "2012-08-13",
            "count": 1
          },
          {
            "date": "2012-08-16",
            "count": 1
          },
          {
            "date": "2012-09-04",
            "count": 2
          },
          {
            "date": "2012-09-10",
            "count": 1
          },
          {
            "date": "2012-09-26",
            "count": 1
          },
          {
            "date": "2012-10-04",
            "count": 1
          },
          {
            "date": "2012-10-07",
            "count": 1
          },
          {
            "date": "2012-10-16",
            "count": 1
          },
          {
            "date": "2012-10-18",
            "count": 1
          },
          {
            "date": "2012-10-23",
            "count": 1
          },
          {
            "date": "2012-11-02",
            "count": 1
          },
          {
            "date": "2012-11-07",
            "count": 2
          },
          {
            "date": "2012-11-10",
            "count": 1
          },
          {
            "date": "2012-11-13",
            "count": 1
          },
          {
            "date": "2012-11-22",
            "count": 1
          },
          {
            "date": "2012-12-05",
            "count": 1
          },
          {
            "date": "2012-12-21",
            "count": 1
          },
          {
            "date": "2013-01-05",
            "count": 1
          },
          {
            "date": "2013-01-08",
            "count": 1
          },
          {
            "date": "2013-01-10",
            "count": 1
          },
          {
            "date": "2013-01-11",
            "count": 1
          },
          {
            "date": "2013-01-18",
            "count": 1
          },
          {
            "date": "2013-02-02",
            "count": 1
          },
          {
            "date": "2013-02-08",
            "count": 1
          },
          {
            "date": "2013-02-27",
            "count": 1
          },
          {
            "date": "2013-03-03",
            "count": 1
          },
          {
            "date": "2013-03-09",
            "count": 1
          },
          {
            "date": "2013-03-11",
            "count": 1
          },
          {
            "date": "2013-03-12",
            "count": 1
          },
          {
            "date": "2013-03-18",
            "count": 1
          },
          {
            "date": "2013-03-19",
            "count": 2
          },
          {
            "date": "2013-03-20",
            "count": 1
          },
          {
            "date": "2013-03-28",
            "count": 1
          },
          {
            "date": "2013-03-30",
            "count": 1
          },
          {
            "date": "2013-04-01",
            "count": 1
          },
          {
            "date": "2013-04-08",
            "count": 1
          },
          {
            "date": "2013-04-18",
            "count": 1
          },
          {
            "date": "2013-04-19",
            "count": 1
          },
          {
            "date": "2013-05-11",
            "count": 1
          },
          {
            "date": "2013-05-14",
            "count": 2
          },
          {
            "date": "2013-05-15",
            "count": 1
          },
          {
            "date": "2013-05-21",
            "count": 1
          },
          {
            "date": "2013-05-22",
            "count": 1
          },
          {
            "date": "2013-06-08",
            "count": 1
          },
          {
            "date": "2013-06-19",
            "count": 1
          },
          {
            "date": "2013-06-20",
            "count": 1
          },
          {
            "date": "2013-06-25",
            "count": 1
          },
          {
            "date": "2013-06-27",
            "count": 1
          },
          {
            "date": "2013-07-12",
            "count": 1
          },
          {
            "date": "2013-07-13",
            "count": 1
          },
          {
            "date": "2013-07-30",
            "count": 1
          },
          {
            "date": "2013-08-01",
            "count": 1
          },
          {
            "date": "2013-08-02",
            "count": 1
          },
          {
            "date": "2013-08-03",
            "count": 1
          },
          {
            "date": "2013-08-14",
            "count": 1
          },
          {
            "date": "2013-08-16",
            "count": 1
          },
          {
            "date": "2013-08-21",
            "count": 1
          },
          {
            "date": "2013-09-05",
            "count": 1
          },
          {
            "date": "2013-09-20",
            "count": 1
          },
          {
            "date": "2013-09-26",
            "count": 1
          },
          {
            "date": "2013-09-29",
            "count": 1
          },
          {
            "date": "2013-10-02",
            "count": 1
          },
          {
            "date": "2013-10-09",
            "count": 1
          },
          {
            "date": "2013-11-11",
            "count": 1
          },
          {
            "date": "2013-11-19",
            "count": 1
          },
          {
            "date": "2013-11-22",
            "count": 1
          },
          {
            "date": "2013-12-20",
            "count": 1
          },
          {
            "date": "2014-01-13",
            "count": 1
          },
          {
            "date": "2014-01-23",
            "count": 1
          },
          {
            "date": "2014-01-31",
            "count": 1
          },
          {
            "date": "2014-02-04",
            "count": 1
          },
          {
            "date": "2014-02-09",
            "count": 1
          },
          {
            "date": "2014-02-12",
            "count": 1
          },
          {
            "date": "2014-02-19",
            "count": 1
          },
          {
            "date": "2014-02-26",
            "count": 1
          },
          {
            "date": "2014-03-04",
            "count": 1
          },
          {
            "date": "2014-03-17",
            "count": 1
          },
          {
            "date": "2014-03-21",
            "count": 1
          },
          {
            "date": "2014-03-24",
            "count": 1
          },
          {
            "date": "2014-04-09",
            "count": 1
          },
          {
            "date": "2014-05-12",
            "count": 1
          },
          {
            "date": "2014-05-13",
            "count": 1
          },
          {
            "date": "2014-06-14",
            "count": 1
          },
          {
            "date": "2014-06-20",
            "count": 1
          },
          {
            "date": "2014-06-23",
            "count": 1
          },
          {
            "date": "2014-06-24",
            "count": 1
          },
          {
            "date": "2014-07-01",
            "count": 1
          },
          {
            "date": "2014-07-06",
            "count": 1
          },
          {
            "date": "2014-07-22",
            "count": 1
          },
          {
            "date": "2014-07-29",
            "count": 1
          },
          {
            "date": "2014-07-30",
            "count": 1
          },
          {
            "date": "2014-08-27",
            "count": 1
          },
          {
            "date": "2014-09-26",
            "count": 1
          },
          {
            "date": "2014-10-10",
            "count": 1
          },
          {
            "date": "2014-10-31",
            "count": 2
          },
          {
            "date": "2014-11-21",
            "count": 1
          },
          {
            "date": "2014-11-25",
            "count": 1
          },
          {
            "date": "2014-11-28",
            "count": 1
          },
          {
            "date": "2014-12-01",
            "count": 1
          },
          {
            "date": "2014-12-10",
            "count": 1
          },
          {
            "date": "2014-12-12",
            "count": 1
          },
          {
            "date": "2015-01-05",
            "count": 1
          },
          {
            "date": "2015-01-07",
            "count": 1
          },
          {
            "date": "2015-01-10",
            "count": 1
          },
          {
            "date": "2015-01-11",
            "count": 1
          },
          {
            "date": "2015-01-12",
            "count": 2
          },
          {
            "date": "2015-01-13",
            "count": 1
          },
          {
            "date": "2015-01-14",
            "count": 1
          },
          {
            "date": "2015-01-18",
            "count": 1
          },
          {
            "date": "2015-01-21",
            "count": 1
          },
          {
            "date": "2015-01-22",
            "count": 1
          },
          {
            "date": "2015-01-26",
            "count": 1
          },
          {
            "date": "2015-02-07",
            "count": 1
          },
          {
            "date": "2015-02-10",
            "count": 1
          },
          {
            "date": "2015-02-15",
            "count": 1
          },
          {
            "date": "2015-02-16",
            "count": 1
          },
          {
            "date": "2015-02-20",
            "count": 2
          },
          {
            "date": "2015-02-26",
            "count": 1
          },
          {
            "date": "2015-03-06",
            "count": 1
          },
          {
            "date": "2015-03-11",
            "count": 2
          },
          {
            "date": "2015-03-17",
            "count": 2
          },
          {
            "date": "2015-03-25",
            "count": 1
          },
          {
            "date": "2015-04-07",
            "count": 1
          },
          {
            "date": "2015-04-15",
            "count": 1
          },
          {
            "date": "2015-04-20",
            "count": 1
          },
          {
            "date": "2015-05-06",
            "count": 1
          },
          {
            "date": "2015-05-09",
            "count": 1
          },
          {
            "date": "2015-05-12",
            "count": 1
          },
          {
            "date": "2015-05-14",
            "count": 1
          },
          {
            "date": "2015-06-05",
            "count": 2
          },
          {
            "date": "2015-06-08",
            "count": 1
          },
          {
            "date": "2015-06-23",
            "count": 1
          },
          {
            "date": "2015-07-01",
            "count": 1
          },
          {
            "date": "2015-07-06",
            "count": 1
          },
          {
            "date": "2015-07-11",
            "count": 1
          },
          {
            "date": "2015-07-14",
            "count": 1
          },
          {
            "date": "2015-07-29",
            "count": 1
          },
          {
            "date": "2015-08-04",
            "count": 1
          },
          {
            "date": "2015-08-07",
            "count": 1
          },
          {
            "date": "2015-08-19",
            "count": 1
          },
          {
            "date": "2015-08-24",
            "count": 1
          },
          {
            "date": "2015-08-31",
            "count": 1
          },
          {
            "date": "2015-09-01",
            "count": 1
          },
          {
            "date": "2015-09-03",
            "count": 1
          },
          {
            "date": "2015-09-09",
            "count": 2
          },
          {
            "date": "2015-09-11",
            "count": 1
          },
          {
            "date": "2015-09-23",
            "count": 1
          },
          {
            "date": "2015-10-17",
            "count": 1
          },
          {
            "date": "2015-12-04",
            "count": 1
          },
          {
            "date": "2015-12-08",
            "count": 1
          },
          {
            "date": "2015-12-09",
            "count": 1
          },
          {
            "date": "2015-12-10",
            "count": 1
          },
          {
            "date": "2015-12-16",
            "count": 1
          },
          {
            "date": "2015-12-20",
            "count": 1
          },
          {
            "date": "2015-12-22",
            "count": 2
          },
          {
            "date": "2015-12-23",
            "count": 1
          },
          {
            "date": "2016-01-01",
            "count": 1
          },
          {
            "date": "2016-01-07",
            "count": 1
          },
          {
            "date": "2016-01-12",
            "count": 1
          },
          {
            "date": "2016-02-01",
            "count": 1
          },
          {
            "date": "2016-02-03",
            "count": 1
          },
          {
            "date": "2016-02-10",
            "count": 1
          },
          {
            "date": "2016-02-11",
            "count": 1
          },
          {
            "date": "2016-02-17",
            "count": 1
          },
          {
            "date": "2016-02-22",
            "count": 2
          },
          {
            "date": "2016-03-03",
            "count": 1
          },
          {
            "date": "2016-03-06",
            "count": 1
          },
          {
            "date": "2016-03-09",
            "count": 1
          },
          {
            "date": "2016-03-15",
            "count": 1
          },
          {
            "date": "2016-03-30",
            "count": 1
          },
          {
            "date": "2016-04-04",
            "count": 1
          },
          {
            "date": "2016-04-11",
            "count": 1
          },
          {
            "date": "2016-04-13",
            "count": 1
          },
          {
            "date": "2016-04-14",
            "count": 1
          },
          {
            "date": "2016-04-18",
            "count": 1
          },
          {
            "date": "2016-04-19",
            "count": 1
          },
          {
            "date": "2016-04-22",
            "count": 1
          },
          {
            "date": "2016-04-23",
            "count": 1
          },
          {
            "date": "2016-05-02",
            "count": 1
          },
          {
            "date": "2016-05-12",
            "count": 1
          },
          {
            "date": "2016-05-13",
            "count": 1
          },
          {
            "date": "2016-05-23",
            "count": 1
          },
          {
            "date": "2016-05-24",
            "count": 1
          },
          {
            "date": "2016-05-27",
            "count": 1
          },
          {
            "date": "2016-06-03",
            "count": 1
          },
          {
            "date": "2016-06-20",
            "count": 1
          },
          {
            "date": "2016-06-27",
            "count": 1
          },
          {
            "date": "2016-07-04",
            "count": 1
          },
          {
            "date": "2016-08-08",
            "count": 1
          },
          {
            "date": "2016-08-10",
            "count": 1
          },
          {
            "date": "2016-08-22",
            "count": 1
          },
          {
            "date": "2016-09-03",
            "count": 1
          },
          {
            "date": "2016-09-04",
            "count": 1
          },
          {
            "date": "2016-09-08",
            "count": 2
          },
          {
            "date": "2016-09-24",
            "count": 1
          },
          {
            "date": "2016-10-01",
            "count": 1
          },
          {
            "date": "2016-10-04",
            "count": 1
          },
          {
            "date": "2016-11-10",
            "count": 1
          },
          {
            "date": "2016-12-08",
            "count": 1
          },
          {
            "date": "2016-12-17",
            "count": 1
          },
          {
            "date": "2016-12-20",
            "count": 1
          },
          {
            "date": "2016-12-22",
            "count": 1
          },
          {
            "date": "2016-12-26",
            "count": 1
          },
          {
            "date": "2016-12-29",
            "count": 1
          },
          {
            "date": "2016-12-30",
            "count": 1
          },
          {
            "date": "2017-01-19",
            "count": 1
          },
          {
            "date": "2017-01-21",
            "count": 1
          },
          {
            "date": "2017-01-31",
            "count": 1
          },
          {
            "date": "2017-02-06",
            "count": 1
          },
          {
            "date": "2017-02-20",
            "count": 1
          },
          {
            "date": "2017-03-05",
            "count": 1
          },
          {
            "date": "2017-03-09",
            "count": 1
          },
          {
            "date": "2017-03-10",
            "count": 1
          },
          {
            "date": "2017-03-16",
            "count": 1
          },
          {
            "date": "2017-03-21",
            "count": 1
          },
          {
            "date": "2017-04-11",
            "count": 1
          },
          {
            "date": "2017-04-21",
            "count": 1
          },
          {
            "date": "2017-05-02",
            "count": 1
          },
          {
            "date": "2017-05-03",
            "count": 1
          },
          {
            "date": "2017-05-08",
            "count": 1
          },
          {
            "date": "2017-05-19",
            "count": 1
          },
          {
            "date": "2017-06-01",
            "count": 1
          },
          {
            "date": "2017-06-04",
            "count": 1
          },
          {
            "date": "2017-06-06",
            "count": 1
          },
          {
            "date": "2017-06-20",
            "count": 1
          },
          {
            "date": "2017-07-24",
            "count": 1
          },
          {
            "date": "2017-07-26",
            "count": 1
          },
          {
            "date": "2017-08-03",
            "count": 2
          },
          {
            "date": "2017-08-05",
            "count": 1
          },
          {
            "date": "2017-08-23",
            "count": 1
          },
          {
            "date": "2017-08-31",
            "count": 1
          },
          {
            "date": "2017-09-14",
            "count": 1
          },
          {
            "date": "2017-10-04",
            "count": 1
          },
          {
            "date": "2017-10-08",
            "count": 1
          },
          {
            "date": "2017-10-09",
            "count": 1
          },
          {
            "date": "2017-10-10",
            "count": 1
          },
          {
            "date": "2017-10-20",
            "count": 1
          },
          {
            "date": "2017-10-30",
            "count": 1
          },
          {
            "date": "2017-11-03",
            "count": 1
          },
          {
            "date": "2017-12-05",
            "count": 1
          },
          {
            "date": "2018-01-19",
            "count": 1
          },
          {
            "date": "2018-01-22",
            "count": 1
          },
          {
            "date": "2018-01-26",
            "count": 1
          },
          {
            "date": "2018-01-30",
            "count": 1
          },
          {
            "date": "2018-01-31",
            "count": 1
          },
          {
            "date": "2018-03-07",
            "count": 1
          },
          {
            "date": "2018-03-11",
            "count": 1
          },
          {
            "date": "2018-03-17",
            "count": 1
          },
          {
            "date": "2018-04-03",
            "count": 1
          },
          {
            "date": "2018-04-10",
            "count": 2
          },
          {
            "date": "2018-04-17",
            "count": 1
          },
          {
            "date": "2018-04-20",
            "count": 1
          },
          {
            "date": "2018-04-22",
            "count": 1
          },
          {
            "date": "2018-04-23",
            "count": 1
          },
          {
            "date": "2018-04-27",
            "count": 1
          },
          {
            "date": "2018-05-03",
            "count": 1
          },
          {
            "date": "2018-05-09",
            "count": 1
          },
          {
            "date": "2018-09-27",
            "count": 1
          },
          {
            "date": "2018-11-05",
            "count": 1
          },
          {
            "date": "2018-11-06",
            "count": 1
          },
          {
            "date": "2019-01-04",
            "count": 1
          },
          {
            "date": "2019-02-15",
            "count": 1
          },
          {
            "date": "2019-03-07",
            "count": 1
          },
          {
            "date": "2019-03-11",
            "count": 1
          },
          {
            "date": "2019-04-04",
            "count": 2
          },
          {
            "date": "2019-04-09",
            "count": 2
          },
          {
            "date": "2019-04-17",
            "count": 1
          },
          {
            "date": "2019-04-25",
            "count": 1
          },
          {
            "date": "2019-05-06",
            "count": 1
          },
          {
            "date": "2019-07-08",
            "count": 1
          },
          {
            "date": "2019-07-19",
            "count": 1
          },
          {
            "date": "2019-08-26",
            "count": 1
          },
          {
            "date": "2019-08-30",
            "count": 1
          },
          {
            "date": "2019-09-10",
            "count": 2
          },
          {
            "date": "2019-10-11",
            "count": 1
          },
          {
            "date": "2019-11-29",
            "count": 1
          },
          {
            "date": "2019-12-02",
            "count": 1
          },
          {
            "date": "2019-12-04",
            "count": 1
          },
          {
            "date": "2019-12-20",
            "count": 1
          },
          {
            "date": "2019-12-24",
            "count": 1
          },
          {
            "date": "2020-01-10",
            "count": 1
          },
          {
            "date": "2020-01-15",
            "count": 1
          },
          {
            "date": "2020-01-17",
            "count": 1
          },
          {
            "date": "2020-02-07",
            "count": 1
          },
          {
            "date": "2020-02-10",
            "count": 1
          },
          {
            "date": "2020-02-15",
            "count": 1
          },
          {
            "date": "2020-03-05",
            "count": 1
          },
          {
            "date": "2020-03-15",
            "count": 1
          },
          {
            "date": "2020-03-18",
            "count": 1
          },
          {
            "date": "2020-03-21",
            "count": 1
          },
          {
            "date": "2020-04-06",
            "count": 1
          },
          {
            "date": "2020-05-04",
            "count": 1
          },
          {
            "date": "2020-05-29",
            "count": 1
          },
          {
            "date": "2020-05-30",
            "count": 3
          },
          {
            "date": "2020-06-18",
            "count": 2
          },
          {
            "date": "2020-07-09",
            "count": 1
          },
          {
            "date": "2020-07-28",
            "count": 1
          },
          {
            "date": "2020-10-09",
            "count": 1
          },
          {
            "date": "2020-11-05",
            "count": 1
          },
          {
            "date": "2020-11-30",
            "count": 1
          },
          {
            "date": "2021-01-27",
            "count": 2
          },
          {
            "date": "2021-02-11",
            "count": 1
          },
          {
            "date": "2021-03-02",
            "count": 1
          },
          {
            "date": "2021-03-24",
            "count": 1
          },
          {
            "date": "2021-03-31",
            "count": 1
          },
          {
            "date": "2021-06-04",
            "count": 1
          },
          {
            "date": "2021-06-21",
            "count": 1
          },
          {
            "date": "2021-08-01",
            "count": 1
          },
          {
            "date": "2021-10-04",
            "count": 1
          },
          {
            "date": "2021-10-13",
            "count": 1
          },
          {
            "date": "2021-11-21",
            "count": 1
          },
          {
            "date": "2021-12-31",
            "count": 1
          },
          {
            "date": "2022-01-25",
            "count": 1
          },
          {
            "date": "2022-01-31",
            "count": 1
          },
          {
            "date": "2022-02-09",
            "count": 1
          },
          {
            "date": "2022-02-16",
            "count": 1
          },
          {
            "date": "2022-03-04",
            "count": 1
          },
          {
            "date": "2022-03-15",
            "count": 1
          },
          {
            "date": "2022-04-04",
            "count": 1
          },
          {
            "date": "2022-05-02",
            "count": 1
          },
          {
            "date": "2022-05-11",
            "count": 1
          },
          {
            "date": "2022-05-17",
            "count": 1
          },
          {
            "date": "2022-09-11",
            "count": 1
          },
          {
            "date": "2022-10-20",
            "count": 1
          },
          {
            "date": "2022-11-24",
            "count": 1
          },
          {
            "date": "2023-01-26",
            "count": 1
          },
          {
            "date": "2023-01-29",
            "count": 1
          },
          {
            "date": "2023-04-09",
            "count": 1
          },
          {
            "date": "2023-07-03",
            "count": 1
          },
          {
            "date": "2023-08-11",
            "count": 1
          },
          {
            "date": "2023-10-13",
            "count": 1
          },
          {
            "date": "2023-10-20",
            "count": 1
          },
          {
            "date": "2023-10-25",
            "count": 1
          },
          {
            "date": "2024-01-02",
            "count": 1
          },
          {
            "date": "2024-04-04",
            "count": 1
          },
          {
            "date": "2024-04-05",
            "count": 1
          },
          {
            "date": "2024-06-11",
            "count": 1
          },
          {
            "date": "2024-08-16",
            "count": 1
          },
          {
            "date": "2024-09-16",
            "count": 1
          },
          {
            "date": "2024-10-29",
            "count": 1
          },
          {
            "date": "2024-11-11",
            "count": 1
          },
          {
            "date": "2025-01-06",
            "count": 1
          },
          {
            "date": "2025-05-07",
            "count": 1
          },
          {
            "date": "2025-06-05",
            "count": 1
          },
          {
            "date": "2025-07-07",
            "count": 1
          },
          {
            "date": "2025-11-03",
            "count": 1
          },
          {
            "date": "2026-02-12",
            "count": 1
          },
          {
            "date": "2026-04-16",
            "count": 1
          },
          {
            "date": "2026-05-07",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 463,
        "total_forks": 485
      },
      "star_history": {
        "days": [
          {
            "date": "2017-07-08",
            "count": 1
          },
          {
            "date": "2017-07-11",
            "count": 3
          },
          {
            "date": "2017-07-12",
            "count": 1
          },
          {
            "date": "2017-07-13",
            "count": 1
          },
          {
            "date": "2017-07-14",
            "count": 1
          },
          {
            "date": "2017-07-15",
            "count": 1
          },
          {
            "date": "2017-07-17",
            "count": 2
          },
          {
            "date": "2017-07-18",
            "count": 2
          },
          {
            "date": "2017-07-21",
            "count": 1
          },
          {
            "date": "2017-07-22",
            "count": 1
          },
          {
            "date": "2017-07-25",
            "count": 1
          },
          {
            "date": "2017-07-26",
            "count": 1
          },
          {
            "date": "2017-07-28",
            "count": 1
          },
          {
            "date": "2017-07-31",
            "count": 1
          },
          {
            "date": "2017-08-03",
            "count": 2
          },
          {
            "date": "2017-08-07",
            "count": 1
          },
          {
            "date": "2017-08-11",
            "count": 1
          },
          {
            "date": "2017-08-14",
            "count": 1
          },
          {
            "date": "2017-08-15",
            "count": 2
          },
          {
            "date": "2017-08-17",
            "count": 1
          },
          {
            "date": "2017-08-21",
            "count": 2
          },
          {
            "date": "2017-08-22",
            "count": 1
          },
          {
            "date": "2017-08-23",
            "count": 3
          },
          {
            "date": "2017-08-28",
            "count": 1
          },
          {
            "date": "2017-08-29",
            "count": 1
          },
          {
            "date": "2017-08-31",
            "count": 2
          },
          {
            "date": "2017-09-01",
            "count": 1
          },
          {
            "date": "2017-09-02",
            "count": 1
          },
          {
            "date": "2017-09-03",
            "count": 1
          },
          {
            "date": "2017-09-05",
            "count": 1
          },
          {
            "date": "2017-09-06",
            "count": 1
          },
          {
            "date": "2017-09-08",
            "count": 1
          },
          {
            "date": "2017-09-12",
            "count": 1
          },
          {
            "date": "2017-09-13",
            "count": 1
          },
          {
            "date": "2017-09-18",
            "count": 1
          },
          {
            "date": "2017-09-22",
            "count": 1
          },
          {
            "date": "2017-09-25",
            "count": 1
          },
          {
            "date": "2017-09-26",
            "count": 1
          },
          {
            "date": "2017-09-28",
            "count": 1
          },
          {
            "date": "2017-09-29",
            "count": 1
          },
          {
            "date": "2017-09-30",
            "count": 1
          },
          {
            "date": "2017-10-01",
            "count": 1
          },
          {
            "date": "2017-10-02",
            "count": 1
          },
          {
            "date": "2017-10-03",
            "count": 1
          },
          {
            "date": "2017-10-06",
            "count": 1
          },
          {
            "date": "2017-10-07",
            "count": 2
          },
          {
            "date": "2017-10-08",
            "count": 2
          },
          {
            "date": "2017-10-10",
            "count": 1
          },
          {
            "date": "2017-10-16",
            "count": 2
          },
          {
            "date": "2017-10-17",
            "count": 1
          },
          {
            "date": "2017-10-20",
            "count": 2
          },
          {
            "date": "2017-10-23",
            "count": 1
          },
          {
            "date": "2017-10-24",
            "count": 2
          },
          {
            "date": "2017-10-25",
            "count": 1
          },
          {
            "date": "2017-10-26",
            "count": 1
          },
          {
            "date": "2017-10-27",
            "count": 3
          },
          {
            "date": "2017-10-30",
            "count": 1
          },
          {
            "date": "2017-11-04",
            "count": 1
          },
          {
            "date": "2017-11-05",
            "count": 1
          },
          {
            "date": "2017-11-06",
            "count": 2
          },
          {
            "date": "2017-11-07",
            "count": 2
          },
          {
            "date": "2017-11-09",
            "count": 1
          },
          {
            "date": "2017-11-10",
            "count": 2
          },
          {
            "date": "2017-11-15",
            "count": 1
          },
          {
            "date": "2017-11-16",
            "count": 3
          },
          {
            "date": "2017-11-17",
            "count": 1
          },
          {
            "date": "2017-11-19",
            "count": 1
          },
          {
            "date": "2017-11-22",
            "count": 1
          },
          {
            "date": "2017-11-24",
            "count": 1
          },
          {
            "date": "2017-11-25",
            "count": 1
          },
          {
            "date": "2017-11-26",
            "count": 2
          },
          {
            "date": "2017-11-27",
            "count": 1
          },
          {
            "date": "2017-11-29",
            "count": 3
          },
          {
            "date": "2017-11-30",
            "count": 1
          },
          {
            "date": "2017-12-01",
            "count": 1
          },
          {
            "date": "2017-12-03",
            "count": 1
          },
          {
            "date": "2017-12-04",
            "count": 2
          },
          {
            "date": "2017-12-05",
            "count": 1
          },
          {
            "date": "2017-12-10",
            "count": 1
          },
          {
            "date": "2017-12-15",
            "count": 2
          },
          {
            "date": "2017-12-17",
            "count": 1
          },
          {
            "date": "2017-12-18",
            "count": 1
          },
          {
            "date": "2017-12-20",
            "count": 1
          },
          {
            "date": "2017-12-26",
            "count": 2
          },
          {
            "date": "2017-12-29",
            "count": 1
          },
          {
            "date": "2018-01-02",
            "count": 1
          },
          {
            "date": "2018-01-04",
            "count": 1
          },
          {
            "date": "2018-01-05",
            "count": 1
          },
          {
            "date": "2018-01-06",
            "count": 1
          },
          {
            "date": "2018-01-10",
            "count": 1
          },
          {
            "date": "2018-01-12",
            "count": 1
          },
          {
            "date": "2018-01-15",
            "count": 2
          },
          {
            "date": "2018-01-16",
            "count": 1
          },
          {
            "date": "2018-01-17",
            "count": 1
          },
          {
            "date": "2018-01-18",
            "count": 1
          },
          {
            "date": "2018-01-19",
            "count": 1
          },
          {
            "date": "2018-01-22",
            "count": 1
          },
          {
            "date": "2018-01-23",
            "count": 4
          },
          {
            "date": "2018-01-25",
            "count": 1
          },
          {
            "date": "2018-01-26",
            "count": 1
          },
          {
            "date": "2018-01-27",
            "count": 1
          },
          {
            "date": "2018-01-28",
            "count": 2
          },
          {
            "date": "2018-02-01",
            "count": 1
          },
          {
            "date": "2018-02-02",
            "count": 1
          },
          {
            "date": "2018-02-03",
            "count": 1
          },
          {
            "date": "2018-02-04",
            "count": 2
          },
          {
            "date": "2018-02-05",
            "count": 2
          },
          {
            "date": "2018-02-09",
            "count": 1
          },
          {
            "date": "2018-02-10",
            "count": 1
          },
          {
            "date": "2018-02-12",
            "count": 1
          },
          {
            "date": "2018-02-19",
            "count": 2
          },
          {
            "date": "2018-02-20",
            "count": 1
          },
          {
            "date": "2018-02-22",
            "count": 1
          },
          {
            "date": "2018-02-23",
            "count": 1
          },
          {
            "date": "2018-02-26",
            "count": 3
          },
          {
            "date": "2018-03-05",
            "count": 1
          },
          {
            "date": "2018-03-06",
            "count": 2
          },
          {
            "date": "2018-03-07",
            "count": 1
          },
          {
            "date": "2018-03-08",
            "count": 1
          },
          {
            "date": "2018-03-09",
            "count": 1
          },
          {
            "date": "2018-03-12",
            "count": 3
          },
          {
            "date": "2018-03-13",
            "count": 1
          },
          {
            "date": "2018-03-15",
            "count": 2
          },
          {
            "date": "2018-03-16",
            "count": 4
          },
          {
            "date": "2018-03-19",
            "count": 1
          },
          {
            "date": "2018-03-21",
            "count": 1
          },
          {
            "date": "2018-03-23",
            "count": 1
          },
          {
            "date": "2018-03-25",
            "count": 1
          },
          {
            "date": "2018-03-27",
            "count": 1
          },
          {
            "date": "2018-03-29",
            "count": 1
          },
          {
            "date": "2018-03-30",
            "count": 1
          },
          {
            "date": "2018-03-31",
            "count": 1
          },
          {
            "date": "2018-04-02",
            "count": 2
          },
          {
            "date": "2018-04-04",
            "count": 1
          },
          {
            "date": "2018-04-09",
            "count": 10
          },
          {
            "date": "2018-04-10",
            "count": 2
          },
          {
            "date": "2018-04-11",
            "count": 1
          },
          {
            "date": "2018-04-12",
            "count": 1
          },
          {
            "date": "2018-04-14",
            "count": 1
          },
          {
            "date": "2018-04-17",
            "count": 2
          },
          {
            "date": "2018-04-19",
            "count": 1
          },
          {
            "date": "2018-04-20",
            "count": 2
          },
          {
            "date": "2018-04-21",
            "count": 1
          },
          {
            "date": "2018-04-23",
            "count": 1
          },
          {
            "date": "2018-04-25",
            "count": 1
          },
          {
            "date": "2018-04-26",
            "count": 10
          },
          {
            "date": "2018-04-27",
            "count": 2
          },
          {
            "date": "2018-04-28",
            "count": 1
          },
          {
            "date": "2018-04-29",
            "count": 1
          },
          {
            "date": "2018-05-01",
            "count": 1
          },
          {
            "date": "2018-05-02",
            "count": 2
          },
          {
            "date": "2018-05-16",
            "count": 1
          },
          {
            "date": "2018-05-24",
            "count": 2
          },
          {
            "date": "2018-05-26",
            "count": 1
          },
          {
            "date": "2018-05-29",
            "count": 1
          },
          {
            "date": "2018-05-30",
            "count": 1
          },
          {
            "date": "2018-06-01",
            "count": 1
          },
          {
            "date": "2018-06-03",
            "count": 1
          },
          {
            "date": "2018-06-06",
            "count": 1
          },
          {
            "date": "2018-06-07",
            "count": 1
          },
          {
            "date": "2018-06-08",
            "count": 1
          },
          {
            "date": "2018-06-11",
            "count": 1
          },
          {
            "date": "2018-06-12",
            "count": 1
          },
          {
            "date": "2018-06-18",
            "count": 2
          },
          {
            "date": "2018-06-21",
            "count": 2
          },
          {
            "date": "2018-06-22",
            "count": 1
          },
          {
            "date": "2018-06-23",
            "count": 1
          },
          {
            "date": "2018-06-30",
            "count": 1
          },
          {
            "date": "2018-07-02",
            "count": 1
          },
          {
            "date": "2018-07-05",
            "count": 1
          },
          {
            "date": "2018-07-10",
            "count": 1
          },
          {
            "date": "2018-07-11",
            "count": 1
          },
          {
            "date": "2018-07-15",
            "count": 1
          },
          {
            "date": "2018-07-17",
            "count": 1
          },
          {
            "date": "2018-07-20",
            "count": 1
          },
          {
            "date": "2018-07-23",
            "count": 1
          },
          {
            "date": "2018-07-24",
            "count": 2
          },
          {
            "date": "2018-07-25",
            "count": 1
          },
          {
            "date": "2018-07-26",
            "count": 1
          },
          {
            "date": "2018-07-28",
            "count": 1
          },
          {
            "date": "2018-07-30",
            "count": 2
          },
          {
            "date": "2018-07-31",
            "count": 1
          },
          {
            "date": "2018-08-02",
            "count": 1
          },
          {
            "date": "2018-08-06",
            "count": 1
          },
          {
            "date": "2018-08-08",
            "count": 2
          },
          {
            "date": "2018-08-13",
            "count": 1
          },
          {
            "date": "2018-08-14",
            "count": 1
          },
          {
            "date": "2018-08-16",
            "count": 1
          },
          {
            "date": "2018-08-17",
            "count": 2
          },
          {
            "date": "2018-08-19",
            "count": 2
          },
          {
            "date": "2018-08-21",
            "count": 1
          },
          {
            "date": "2018-08-22",
            "count": 1
          },
          {
            "date": "2018-08-23",
            "count": 2
          },
          {
            "date": "2018-08-24",
            "count": 1
          },
          {
            "date": "2018-08-27",
            "count": 1
          },
          {
            "date": "2018-08-29",
            "count": 1
          },
          {
            "date": "2018-08-31",
            "count": 2
          },
          {
            "date": "2018-09-08",
            "count": 1
          },
          {
            "date": "2018-09-11",
            "count": 1
          },
          {
            "date": "2018-09-13",
            "count": 1
          },
          {
            "date": "2018-09-14",
            "count": 2
          },
          {
            "date": "2018-09-19",
            "count": 1
          },
          {
            "date": "2018-09-21",
            "count": 1
          },
          {
            "date": "2018-09-25",
            "count": 1
          },
          {
            "date": "2018-09-26",
            "count": 1
          },
          {
            "date": "2018-09-27",
            "count": 1
          },
          {
            "date": "2018-10-01",
            "count": 1
          },
          {
            "date": "2018-10-03",
            "count": 1
          },
          {
            "date": "2018-10-04",
            "count": 1
          },
          {
            "date": "2018-10-05",
            "count": 1
          },
          {
            "date": "2018-10-09",
            "count": 2
          },
          {
            "date": "2018-10-10",
            "count": 1
          },
          {
            "date": "2018-10-12",
            "count": 1
          },
          {
            "date": "2018-10-15",
            "count": 1
          },
          {
            "date": "2018-10-20",
            "count": 1
          },
          {
            "date": "2018-10-21",
            "count": 1
          },
          {
            "date": "2018-10-23",
            "count": 1
          },
          {
            "date": "2018-10-26",
            "count": 1
          },
          {
            "date": "2018-10-30",
            "count": 3
          },
          {
            "date": "2018-10-31",
            "count": 3
          },
          {
            "date": "2018-11-03",
            "count": 1
          },
          {
            "date": "2018-11-04",
            "count": 2
          },
          {
            "date": "2018-11-07",
            "count": 1
          },
          {
            "date": "2018-11-08",
            "count": 1
          },
          {
            "date": "2018-11-10",
            "count": 1
          },
          {
            "date": "2018-11-12",
            "count": 1
          },
          {
            "date": "2018-11-13",
            "count": 1
          },
          {
            "date": "2018-11-16",
            "count": 1
          },
          {
            "date": "2018-11-17",
            "count": 1
          },
          {
            "date": "2018-11-20",
            "count": 1
          },
          {
            "date": "2018-11-23",
            "count": 1
          },
          {
            "date": "2018-11-25",
            "count": 1
          },
          {
            "date": "2018-11-28",
            "count": 1
          },
          {
            "date": "2018-11-29",
            "count": 1
          },
          {
            "date": "2018-11-30",
            "count": 1
          },
          {
            "date": "2018-12-02",
            "count": 1
          },
          {
            "date": "2018-12-05",
            "count": 1
          },
          {
            "date": "2018-12-16",
            "count": 1
          },
          {
            "date": "2018-12-20",
            "count": 1
          },
          {
            "date": "2018-12-23",
            "count": 1
          },
          {
            "date": "2018-12-26",
            "count": 1
          },
          {
            "date": "2018-12-27",
            "count": 1
          },
          {
            "date": "2019-01-04",
            "count": 1
          },
          {
            "date": "2019-01-09",
            "count": 1
          },
          {
            "date": "2019-01-11",
            "count": 1
          },
          {
            "date": "2019-01-18",
            "count": 1
          },
          {
            "date": "2019-01-27",
            "count": 1
          },
          {
            "date": "2019-02-01",
            "count": 1
          },
          {
            "date": "2019-02-03",
            "count": 2
          },
          {
            "date": "2019-02-04",
            "count": 2
          },
          {
            "date": "2019-02-05",
            "count": 2
          },
          {
            "date": "2019-02-06",
            "count": 2
          },
          {
            "date": "2019-02-07",
            "count": 1
          },
          {
            "date": "2019-02-08",
            "count": 2
          },
          {
            "date": "2019-02-11",
            "count": 1
          },
          {
            "date": "2019-02-13",
            "count": 1
          },
          {
            "date": "2019-02-14",
            "count": 2
          },
          {
            "date": "2019-02-20",
            "count": 1
          },
          {
            "date": "2019-02-21",
            "count": 3
          },
          {
            "date": "2019-02-26",
            "count": 1
          },
          {
            "date": "2019-02-27",
            "count": 2
          },
          {
            "date": "2019-02-28",
            "count": 1
          },
          {
            "date": "2019-03-04",
            "count": 1
          },
          {
            "date": "2019-03-05",
            "count": 1
          },
          {
            "date": "2019-03-06",
            "count": 2
          },
          {
            "date": "2019-03-08",
            "count": 2
          },
          {
            "date": "2019-03-11",
            "count": 1
          },
          {
            "date": "2019-03-13",
            "count": 1
          },
          {
            "date": "2019-03-14",
            "count": 2
          },
          {
            "date": "2019-03-19",
            "count": 1
          },
          {
            "date": "2019-03-20",
            "count": 1
          },
          {
            "date": "2019-03-21",
            "count": 1
          },
          {
            "date": "2019-03-22",
            "count": 1
          },
          {
            "date": "2019-03-26",
            "count": 1
          },
          {
            "date": "2019-03-27",
            "count": 2
          },
          {
            "date": "2019-04-04",
            "count": 1
          },
          {
            "date": "2019-04-05",
            "count": 2
          },
          {
            "date": "2019-04-08",
            "count": 1
          },
          {
            "date": "2019-04-09",
            "count": 1
          },
          {
            "date": "2019-04-10",
            "count": 1
          },
          {
            "date": "2019-04-11",
            "count": 1
          },
          {
            "date": "2019-04-14",
            "count": 1
          },
          {
            "date": "2019-04-15",
            "count": 1
          },
          {
            "date": "2019-04-18",
            "count": 1
          },
          {
            "date": "2019-04-25",
            "count": 1
          },
          {
            "date": "2019-04-26",
            "count": 3
          },
          {
            "date": "2019-05-02",
            "count": 2
          },
          {
            "date": "2019-05-05",
            "count": 1
          },
          {
            "date": "2019-05-09",
            "count": 1
          },
          {
            "date": "2019-05-12",
            "count": 1
          },
          {
            "date": "2019-05-19",
            "count": 1
          },
          {
            "date": "2019-05-20",
            "count": 1
          },
          {
            "date": "2019-05-21",
            "count": 1
          },
          {
            "date": "2019-05-23",
            "count": 2
          },
          {
            "date": "2019-05-24",
            "count": 1
          },
          {
            "date": "2019-05-27",
            "count": 1
          },
          {
            "date": "2019-05-28",
            "count": 2
          },
          {
            "date": "2019-06-02",
            "count": 3
          },
          {
            "date": "2019-06-03",
            "count": 2
          },
          {
            "date": "2019-06-04",
            "count": 1
          },
          {
            "date": "2019-06-18",
            "count": 1
          },
          {
            "date": "2019-06-19",
            "count": 1
          },
          {
            "date": "2019-06-24",
            "count": 1
          },
          {
            "date": "2019-06-25",
            "count": 1
          },
          {
            "date": "2019-06-27",
            "count": 1
          },
          {
            "date": "2019-07-01",
            "count": 1
          },
          {
            "date": "2019-07-04",
            "count": 1
          },
          {
            "date": "2019-07-08",
            "count": 1
          },
          {
            "date": "2019-07-14",
            "count": 1
          },
          {
            "date": "2019-07-17",
            "count": 1
          },
          {
            "date": "2019-07-18",
            "count": 1
          },
          {
            "date": "2019-07-21",
            "count": 1
          },
          {
            "date": "2019-07-23",
            "count": 1
          },
          {
            "date": "2019-07-25",
            "count": 1
          },
          {
            "date": "2019-07-27",
            "count": 1
          },
          {
            "date": "2019-08-01",
            "count": 2
          },
          {
            "date": "2019-08-02",
            "count": 1
          },
          {
            "date": "2019-08-05",
            "count": 1
          },
          {
            "date": "2019-08-07",
            "count": 1
          },
          {
            "date": "2019-08-14",
            "count": 1
          },
          {
            "date": "2019-08-16",
            "count": 1
          },
          {
            "date": "2019-08-24",
            "count": 1
          },
          {
            "date": "2019-08-29",
            "count": 2
          },
          {
            "date": "2019-09-04",
            "count": 1
          },
          {
            "date": "2019-09-05",
            "count": 1
          },
          {
            "date": "2019-09-08",
            "count": 1
          },
          {
            "date": "2019-09-09",
            "count": 1
          },
          {
            "date": "2019-09-10",
            "count": 1
          },
          {
            "date": "2019-09-12",
            "count": 1
          },
          {
            "date": "2019-09-18",
            "count": 1
          },
          {
            "date": "2019-09-23",
            "count": 1
          },
          {
            "date": "2019-09-25",
            "count": 1
          },
          {
            "date": "2019-09-26",
            "count": 1
          },
          {
            "date": "2019-10-08",
            "count": 1
          },
          {
            "date": "2019-10-11",
            "count": 1
          },
          {
            "date": "2019-10-13",
            "count": 1
          },
          {
            "date": "2019-10-16",
            "count": 1
          },
          {
            "date": "2019-10-18",
            "count": 1
          },
          {
            "date": "2019-10-20",
            "count": 2
          },
          {
            "date": "2019-10-23",
            "count": 1
          },
          {
            "date": "2019-10-27",
            "count": 2
          },
          {
            "date": "2019-10-28",
            "count": 1
          },
          {
            "date": "2019-11-04",
            "count": 1
          },
          {
            "date": "2019-11-08",
            "count": 1
          },
          {
            "date": "2019-11-12",
            "count": 1
          },
          {
            "date": "2019-11-14",
            "count": 1
          },
          {
            "date": "2019-11-15",
            "count": 1
          },
          {
            "date": "2019-11-16",
            "count": 1
          },
          {
            "date": "2019-11-18",
            "count": 1
          },
          {
            "date": "2019-11-21",
            "count": 1
          },
          {
            "date": "2019-11-22",
            "count": 1
          },
          {
            "date": "2019-11-27",
            "count": 1
          },
          {
            "date": "2019-11-29",
            "count": 1
          },
          {
            "date": "2019-11-30",
            "count": 1
          },
          {
            "date": "2019-12-03",
            "count": 1
          },
          {
            "date": "2019-12-04",
            "count": 1
          },
          {
            "date": "2019-12-10",
            "count": 1
          },
          {
            "date": "2019-12-11",
            "count": 2
          },
          {
            "date": "2019-12-12",
            "count": 1
          },
          {
            "date": "2019-12-13",
            "count": 1
          },
          {
            "date": "2019-12-18",
            "count": 1
          },
          {
            "date": "2019-12-26",
            "count": 2
          },
          {
            "date": "2020-01-03",
            "count": 2
          },
          {
            "date": "2020-01-10",
            "count": 2
          },
          {
            "date": "2020-01-19",
            "count": 1
          },
          {
            "date": "2020-01-23",
            "count": 1
          },
          {
            "date": "2020-01-24",
            "count": 2
          },
          {
            "date": "2020-01-30",
            "count": 2
          },
          {
            "date": "2020-01-31",
            "count": 3
          },
          {
            "date": "2020-02-01",
            "count": 1
          },
          {
            "date": "2020-02-02",
            "count": 2
          },
          {
            "date": "2020-02-04",
            "count": 1
          },
          {
            "date": "2020-02-06",
            "count": 2
          },
          {
            "date": "2020-02-08",
            "count": 1
          },
          {
            "date": "2020-02-13",
            "count": 1
          },
          {
            "date": "2020-02-18",
            "count": 2
          },
          {
            "date": "2020-02-19",
            "count": 1
          },
          {
            "date": "2020-02-21",
            "count": 1
          },
          {
            "date": "2020-02-29",
            "count": 1
          },
          {
            "date": "2020-03-02",
            "count": 1
          },
          {
            "date": "2020-03-04",
            "count": 1
          },
          {
            "date": "2020-03-13",
            "count": 1
          },
          {
            "date": "2020-03-19",
            "count": 1
          },
          {
            "date": "2020-03-20",
            "count": 1
          },
          {
            "date": "2020-03-21",
            "count": 1
          },
          {
            "date": "2020-03-25",
            "count": 1
          },
          {
            "date": "2020-03-27",
            "count": 1
          },
          {
            "date": "2020-03-29",
            "count": 2
          },
          {
            "date": "2020-03-30",
            "count": 1
          },
          {
            "date": "2020-04-08",
            "count": 1
          },
          {
            "date": "2020-04-09",
            "count": 1
          },
          {
            "date": "2020-04-10",
            "count": 1
          },
          {
            "date": "2020-04-14",
            "count": 1
          },
          {
            "date": "2020-04-20",
            "count": 1
          },
          {
            "date": "2020-04-24",
            "count": 1
          },
          {
            "date": "2020-04-29",
            "count": 2
          },
          {
            "date": "2020-04-30",
            "count": 1
          },
          {
            "date": "2020-05-01",
            "count": 1
          },
          {
            "date": "2020-05-04",
            "count": 2
          },
          {
            "date": "2020-05-05",
            "count": 2
          },
          {
            "date": "2020-05-07",
            "count": 1
          },
          {
            "date": "2020-05-16",
            "count": 1
          },
          {
            "date": "2020-05-21",
            "count": 2
          },
          {
            "date": "2020-05-22",
            "count": 2
          },
          {
            "date": "2020-05-25",
            "count": 1
          },
          {
            "date": "2020-05-26",
            "count": 4
          },
          {
            "date": "2020-05-27",
            "count": 1
          },
          {
            "date": "2020-05-29",
            "count": 2
          },
          {
            "date": "2020-05-30",
            "count": 3
          },
          {
            "date": "2020-06-02",
            "count": 1
          },
          {
            "date": "2020-06-08",
            "count": 1
          },
          {
            "date": "2020-06-10",
            "count": 2
          },
          {
            "date": "2020-06-11",
            "count": 1
          },
          {
            "date": "2020-06-13",
            "count": 1
          },
          {
            "date": "2020-06-18",
            "count": 1
          },
          {
            "date": "2020-06-25",
            "count": 1
          },
          {
            "date": "2020-06-29",
            "count": 1
          },
          {
            "date": "2020-06-30",
            "count": 1
          },
          {
            "date": "2020-07-06",
            "count": 1
          },
          {
            "date": "2020-07-08",
            "count": 1
          },
          {
            "date": "2020-07-11",
            "count": 2
          },
          {
            "date": "2020-07-16",
            "count": 1
          },
          {
            "date": "2020-07-19",
            "count": 1
          },
          {
            "date": "2020-07-23",
            "count": 1
          },
          {
            "date": "2020-07-27",
            "count": 1
          },
          {
            "date": "2020-07-29",
            "count": 1
          },
          {
            "date": "2020-08-04",
            "count": 1
          },
          {
            "date": "2020-08-05",
            "count": 1
          },
          {
            "date": "2020-08-07",
            "count": 1
          },
          {
            "date": "2020-08-12",
            "count": 1
          },
          {
            "date": "2020-08-15",
            "count": 1
          },
          {
            "date": "2020-08-18",
            "count": 1
          },
          {
            "date": "2020-08-22",
            "count": 1
          },
          {
            "date": "2020-08-25",
            "count": 1
          },
          {
            "date": "2020-08-26",
            "count": 1
          },
          {
            "date": "2020-08-31",
            "count": 1
          },
          {
            "date": "2020-09-14",
            "count": 1
          },
          {
            "date": "2020-09-17",
            "count": 2
          },
          {
            "date": "2020-09-18",
            "count": 1
          },
          {
            "date": "2020-09-19",
            "count": 1
          },
          {
            "date": "2020-09-30",
            "count": 3
          },
          {
            "date": "2020-10-04",
            "count": 2
          },
          {
            "date": "2020-10-10",
            "count": 1
          },
          {
            "date": "2020-10-13",
            "count": 1
          },
          {
            "date": "2020-10-14",
            "count": 1
          },
          {
            "date": "2020-10-17",
            "count": 1
          },
          {
            "date": "2020-10-19",
            "count": 1
          },
          {
            "date": "2020-10-20",
            "count": 1
          },
          {
            "date": "2020-10-21",
            "count": 1
          },
          {
            "date": "2020-10-22",
            "count": 1
          },
          {
            "date": "2020-10-28",
            "count": 1
          },
          {
            "date": "2020-10-29",
            "count": 1
          },
          {
            "date": "2020-11-01",
            "count": 1
          },
          {
            "date": "2020-11-04",
            "count": 1
          },
          {
            "date": "2020-11-05",
            "count": 3
          },
          {
            "date": "2020-11-16",
            "count": 1
          },
          {
            "date": "2020-11-18",
            "count": 1
          },
          {
            "date": "2020-11-20",
            "count": 2
          },
          {
            "date": "2020-11-24",
            "count": 1
          },
          {
            "date": "2020-12-06",
            "count": 1
          },
          {
            "date": "2020-12-09",
            "count": 1
          },
          {
            "date": "2020-12-16",
            "count": 1
          },
          {
            "date": "2020-12-18",
            "count": 1
          },
          {
            "date": "2020-12-21",
            "count": 1
          },
          {
            "date": "2020-12-22",
            "count": 1
          },
          {
            "date": "2020-12-26",
            "count": 2
          },
          {
            "date": "2020-12-29",
            "count": 1
          },
          {
            "date": "2021-01-03",
            "count": 1
          },
          {
            "date": "2021-01-08",
            "count": 2
          },
          {
            "date": "2021-01-11",
            "count": 2
          },
          {
            "date": "2021-01-12",
            "count": 2
          },
          {
            "date": "2021-01-14",
            "count": 1
          },
          {
            "date": "2021-01-19",
            "count": 2
          },
          {
            "date": "2021-01-20",
            "count": 1
          },
          {
            "date": "2021-01-28",
            "count": 1
          },
          {
            "date": "2021-02-04",
            "count": 1
          },
          {
            "date": "2021-02-05",
            "count": 6
          },
          {
            "date": "2021-02-06",
            "count": 1
          },
          {
            "date": "2021-02-07",
            "count": 1
          },
          {
            "date": "2021-02-08",
            "count": 3
          },
          {
            "date": "2021-02-09",
            "count": 1
          },
          {
            "date": "2021-02-10",
            "count": 2
          },
          {
            "date": "2021-02-11",
            "count": 2
          },
          {
            "date": "2021-02-12",
            "count": 1
          },
          {
            "date": "2021-02-13",
            "count": 1
          },
          {
            "date": "2021-02-14",
            "count": 1
          },
          {
            "date": "2021-02-16",
            "count": 2
          },
          {
            "date": "2021-02-21",
            "count": 1
          },
          {
            "date": "2021-03-05",
            "count": 1
          },
          {
            "date": "2021-03-06",
            "count": 2
          },
          {
            "date": "2021-03-10",
            "count": 1
          },
          {
            "date": "2021-03-12",
            "count": 1
          },
          {
            "date": "2021-03-14",
            "count": 1
          },
          {
            "date": "2021-03-20",
            "count": 2
          },
          {
            "date": "2021-03-23",
            "count": 1
          },
          {
            "date": "2021-03-29",
            "count": 1
          },
          {
            "date": "2021-04-01",
            "count": 2
          },
          {
            "date": "2021-04-05",
            "count": 1
          },
          {
            "date": "2021-04-13",
            "count": 1
          },
          {
            "date": "2021-04-27",
            "count": 1
          },
          {
            "date": "2021-05-01",
            "count": 1
          },
          {
            "date": "2021-05-03",
            "count": 1
          },
          {
            "date": "2021-05-09",
            "count": 2
          },
          {
            "date": "2021-05-20",
            "count": 1
          },
          {
            "date": "2021-05-25",
            "count": 1
          },
          {
            "date": "2021-05-30",
            "count": 1
          },
          {
            "date": "2021-06-02",
            "count": 1
          },
          {
            "date": "2021-06-07",
            "count": 1
          },
          {
            "date": "2021-06-09",
            "count": 2
          },
          {
            "date": "2021-06-15",
            "count": 2
          },
          {
            "date": "2021-06-16",
            "count": 1
          },
          {
            "date": "2021-06-17",
            "count": 1
          },
          {
            "date": "2021-06-20",
            "count": 2
          },
          {
            "date": "2021-06-22",
            "count": 1
          },
          {
            "date": "2021-06-24",
            "count": 1
          },
          {
            "date": "2021-06-25",
            "count": 1
          },
          {
            "date": "2021-06-29",
            "count": 1
          },
          {
            "date": "2021-06-30",
            "count": 1
          },
          {
            "date": "2021-07-07",
            "count": 1
          },
          {
            "date": "2021-07-08",
            "count": 1
          },
          {
            "date": "2021-07-15",
            "count": 1
          },
          {
            "date": "2021-07-18",
            "count": 2
          },
          {
            "date": "2021-07-20",
            "count": 1
          },
          {
            "date": "2021-07-21",
            "count": 1
          },
          {
            "date": "2021-07-24",
            "count": 1
          },
          {
            "date": "2021-07-27",
            "count": 3
          },
          {
            "date": "2021-08-01",
            "count": 1
          },
          {
            "date": "2021-08-08",
            "count": 1
          },
          {
            "date": "2021-08-09",
            "count": 2
          },
          {
            "date": "2021-08-16",
            "count": 1
          },
          {
            "date": "2021-08-23",
            "count": 1
          },
          {
            "date": "2021-08-26",
            "count": 1
          },
          {
            "date": "2021-09-06",
            "count": 2
          },
          {
            "date": "2021-09-08",
            "count": 1
          },
          {
            "date": "2021-09-12",
            "count": 1
          },
          {
            "date": "2021-09-13",
            "count": 1
          },
          {
            "date": "2021-09-24",
            "count": 1
          },
          {
            "date": "2021-09-25",
            "count": 1
          },
          {
            "date": "2021-09-28",
            "count": 1
          },
          {
            "date": "2021-09-30",
            "count": 1
          },
          {
            "date": "2021-10-07",
            "count": 2
          },
          {
            "date": "2021-10-13",
            "count": 1
          },
          {
            "date": "2021-10-14",
            "count": 1
          },
          {
            "date": "2021-10-22",
            "count": 1
          },
          {
            "date": "2021-11-09",
            "count": 1
          },
          {
            "date": "2021-11-12",
            "count": 2
          },
          {
            "date": "2021-11-15",
            "count": 1
          },
          {
            "date": "2021-11-16",
            "count": 1
          },
          {
            "date": "2021-11-18",
            "count": 1
          },
          {
            "date": "2021-11-26",
            "count": 1
          },
          {
            "date": "2021-12-07",
            "count": 1
          },
          {
            "date": "2021-12-08",
            "count": 3
          },
          {
            "date": "2021-12-09",
            "count": 1
          },
          {
            "date": "2021-12-11",
            "count": 1
          },
          {
            "date": "2021-12-13",
            "count": 2
          },
          {
            "date": "2021-12-15",
            "count": 1
          },
          {
            "date": "2021-12-23",
            "count": 1
          },
          {
            "date": "2021-12-27",
            "count": 1
          },
          {
            "date": "2021-12-30",
            "count": 1
          },
          {
            "date": "2022-01-12",
            "count": 1
          },
          {
            "date": "2022-01-16",
            "count": 1
          },
          {
            "date": "2022-01-17",
            "count": 1
          },
          {
            "date": "2022-01-19",
            "count": 1
          },
          {
            "date": "2022-01-27",
            "count": 1
          },
          {
            "date": "2022-01-31",
            "count": 1
          },
          {
            "date": "2022-02-03",
            "count": 1
          },
          {
            "date": "2022-02-11",
            "count": 1
          },
          {
            "date": "2022-02-14",
            "count": 1
          },
          {
            "date": "2022-02-16",
            "count": 2
          },
          {
            "date": "2022-02-17",
            "count": 1
          },
          {
            "date": "2022-02-20",
            "count": 1
          },
          {
            "date": "2022-02-23",
            "count": 1
          },
          {
            "date": "2022-03-09",
            "count": 1
          },
          {
            "date": "2022-03-11",
            "count": 1
          },
          {
            "date": "2022-03-15",
            "count": 1
          },
          {
            "date": "2022-03-17",
            "count": 1
          },
          {
            "date": "2022-03-18",
            "count": 1
          },
          {
            "date": "2022-03-27",
            "count": 2
          },
          {
            "date": "2022-03-30",
            "count": 3
          },
          {
            "date": "2022-04-02",
            "count": 1
          },
          {
            "date": "2022-04-03",
            "count": 1
          },
          {
            "date": "2022-04-05",
            "count": 1
          },
          {
            "date": "2022-04-06",
            "count": 1
          },
          {
            "date": "2022-04-10",
            "count": 1
          },
          {
            "date": "2022-04-18",
            "count": 1
          },
          {
            "date": "2022-04-19",
            "count": 1
          },
          {
            "date": "2022-04-22",
            "count": 1
          },
          {
            "date": "2022-04-27",
            "count": 1
          },
          {
            "date": "2022-04-29",
            "count": 1
          },
          {
            "date": "2022-05-02",
            "count": 1
          },
          {
            "date": "2022-05-03",
            "count": 1
          },
          {
            "date": "2022-05-05",
            "count": 1
          },
          {
            "date": "2022-05-06",
            "count": 1
          },
          {
            "date": "2022-05-11",
            "count": 1
          },
          {
            "date": "2022-05-17",
            "count": 1
          },
          {
            "date": "2022-05-27",
            "count": 1
          },
          {
            "date": "2022-06-13",
            "count": 1
          },
          {
            "date": "2022-06-14",
            "count": 3
          },
          {
            "date": "2022-06-17",
            "count": 1
          },
          {
            "date": "2022-06-18",
            "count": 1
          },
          {
            "date": "2022-06-22",
            "count": 1
          },
          {
            "date": "2022-07-05",
            "count": 1
          },
          {
            "date": "2022-07-15",
            "count": 1
          },
          {
            "date": "2022-07-19",
            "count": 1
          },
          {
            "date": "2022-07-20",
            "count": 1
          },
          {
            "date": "2022-07-28",
            "count": 1
          },
          {
            "date": "2022-07-30",
            "count": 1
          },
          {
            "date": "2022-08-03",
            "count": 1
          },
          {
            "date": "2022-08-05",
            "count": 1
          },
          {
            "date": "2022-08-08",
            "count": 1
          },
          {
            "date": "2022-08-18",
            "count": 1
          },
          {
            "date": "2022-08-20",
            "count": 1
          },
          {
            "date": "2022-08-24",
            "count": 1
          },
          {
            "date": "2022-09-01",
            "count": 1
          },
          {
            "date": "2022-09-03",
            "count": 1
          },
          {
            "date": "2022-09-12",
            "count": 1
          },
          {
            "date": "2022-09-19",
            "count": 1
          },
          {
            "date": "2022-09-20",
            "count": 1
          },
          {
            "date": "2022-09-30",
            "count": 1
          },
          {
            "date": "2022-10-03",
            "count": 1
          },
          {
            "date": "2022-10-07",
            "count": 1
          },
          {
            "date": "2022-10-09",
            "count": 1
          },
          {
            "date": "2022-10-10",
            "count": 1
          },
          {
            "date": "2022-10-21",
            "count": 2
          },
          {
            "date": "2022-10-23",
            "count": 1
          },
          {
            "date": "2022-10-25",
            "count": 1
          },
          {
            "date": "2022-10-27",
            "count": 1
          },
          {
            "date": "2022-10-30",
            "count": 1
          },
          {
            "date": "2022-11-01",
            "count": 2
          },
          {
            "date": "2022-11-03",
            "count": 1
          },
          {
            "date": "2022-11-04",
            "count": 1
          },
          {
            "date": "2022-11-07",
            "count": 1
          },
          {
            "date": "2022-11-08",
            "count": 1
          },
          {
            "date": "2022-11-09",
            "count": 1
          },
          {
            "date": "2022-11-16",
            "count": 1
          },
          {
            "date": "2022-12-05",
            "count": 1
          },
          {
            "date": "2022-12-07",
            "count": 1
          },
          {
            "date": "2022-12-21",
            "count": 1
          },
          {
            "date": "2022-12-22",
            "count": 1
          },
          {
            "date": "2022-12-26",
            "count": 1
          },
          {
            "date": "2022-12-27",
            "count": 1
          },
          {
            "date": "2022-12-31",
            "count": 1
          },
          {
            "date": "2023-01-02",
            "count": 1
          },
          {
            "date": "2023-01-03",
            "count": 1
          },
          {
            "date": "2023-01-04",
            "count": 2
          },
          {
            "date": "2023-01-10",
            "count": 1
          },
          {
            "date": "2023-01-17",
            "count": 1
          },
          {
            "date": "2023-01-26",
            "count": 1
          },
          {
            "date": "2023-01-27",
            "count": 1
          },
          {
            "date": "2023-02-02",
            "count": 1
          },
          {
            "date": "2023-02-11",
            "count": 1
          },
          {
            "date": "2023-02-15",
            "count": 1
          },
          {
            "date": "2023-02-22",
            "count": 2
          },
          {
            "date": "2023-03-17",
            "count": 1
          },
          {
            "date": "2023-03-21",
            "count": 1
          },
          {
            "date": "2023-03-23",
            "count": 1
          },
          {
            "date": "2023-03-28",
            "count": 1
          },
          {
            "date": "2023-03-29",
            "count": 1
          },
          {
            "date": "2023-04-05",
            "count": 1
          },
          {
            "date": "2023-04-10",
            "count": 1
          },
          {
            "date": "2023-04-18",
            "count": 1
          },
          {
            "date": "2023-04-21",
            "count": 2
          },
          {
            "date": "2023-04-22",
            "count": 1
          },
          {
            "date": "2023-05-11",
            "count": 1
          },
          {
            "date": "2023-05-18",
            "count": 1
          },
          {
            "date": "2023-05-21",
            "count": 1
          },
          {
            "date": "2023-06-15",
            "count": 1
          },
          {
            "date": "2023-06-16",
            "count": 1
          },
          {
            "date": "2023-06-23",
            "count": 1
          },
          {
            "date": "2023-07-03",
            "count": 1
          },
          {
            "date": "2023-07-12",
            "count": 1
          },
          {
            "date": "2023-07-24",
            "count": 1
          },
          {
            "date": "2023-07-25",
            "count": 1
          },
          {
            "date": "2023-07-31",
            "count": 1
          },
          {
            "date": "2023-08-04",
            "count": 1
          },
          {
            "date": "2023-08-06",
            "count": 1
          },
          {
            "date": "2023-08-10",
            "count": 1
          },
          {
            "date": "2023-08-16",
            "count": 1
          },
          {
            "date": "2023-08-18",
            "count": 2
          },
          {
            "date": "2023-08-19",
            "count": 1
          },
          {
            "date": "2023-08-21",
            "count": 1
          },
          {
            "date": "2023-08-28",
            "count": 1
          },
          {
            "date": "2023-08-30",
            "count": 2
          },
          {
            "date": "2023-08-31",
            "count": 1
          },
          {
            "date": "2023-09-01",
            "count": 1
          },
          {
            "date": "2023-09-06",
            "count": 1
          },
          {
            "date": "2023-09-10",
            "count": 1
          },
          {
            "date": "2023-09-12",
            "count": 1
          },
          {
            "date": "2023-10-06",
            "count": 1
          },
          {
            "date": "2023-10-08",
            "count": 1
          },
          {
            "date": "2023-10-10",
            "count": 1
          },
          {
            "date": "2023-10-17",
            "count": 1
          },
          {
            "date": "2023-10-21",
            "count": 1
          },
          {
            "date": "2023-10-31",
            "count": 1
          },
          {
            "date": "2023-11-03",
            "count": 1
          },
          {
            "date": "2023-11-14",
            "count": 1
          },
          {
            "date": "2023-11-24",
            "count": 1
          },
          {
            "date": "2023-11-27",
            "count": 1
          },
          {
            "date": "2023-11-30",
            "count": 1
          },
          {
            "date": "2023-12-06",
            "count": 3
          },
          {
            "date": "2023-12-18",
            "count": 1
          },
          {
            "date": "2023-12-22",
            "count": 1
          },
          {
            "date": "2023-12-24",
            "count": 1
          },
          {
            "date": "2023-12-29",
            "count": 1
          },
          {
            "date": "2024-01-19",
            "count": 2
          },
          {
            "date": "2024-02-01",
            "count": 1
          },
          {
            "date": "2024-02-02",
            "count": 1
          },
          {
            "date": "2024-02-09",
            "count": 1
          },
          {
            "date": "2024-02-13",
            "count": 1
          },
          {
            "date": "2024-02-15",
            "count": 1
          },
          {
            "date": "2024-02-16",
            "count": 1
          },
          {
            "date": "2024-02-18",
            "count": 1
          },
          {
            "date": "2024-02-20",
            "count": 1
          },
          {
            "date": "2024-03-01",
            "count": 1
          },
          {
            "date": "2024-03-09",
            "count": 2
          },
          {
            "date": "2024-03-20",
            "count": 1
          },
          {
            "date": "2024-04-02",
            "count": 1
          },
          {
            "date": "2024-04-03",
            "count": 1
          },
          {
            "date": "2024-04-08",
            "count": 1
          },
          {
            "date": "2024-04-09",
            "count": 1
          },
          {
            "date": "2024-04-15",
            "count": 1
          },
          {
            "date": "2024-04-28",
            "count": 1
          },
          {
            "date": "2024-05-01",
            "count": 1
          },
          {
            "date": "2024-05-11",
            "count": 1
          },
          {
            "date": "2024-05-25",
            "count": 1
          },
          {
            "date": "2024-05-30",
            "count": 1
          },
          {
            "date": "2024-05-31",
            "count": 1
          },
          {
            "date": "2024-06-03",
            "count": 1
          },
          {
            "date": "2024-06-07",
            "count": 1
          },
          {
            "date": "2024-06-17",
            "count": 1
          },
          {
            "date": "2024-06-26",
            "count": 1
          },
          {
            "date": "2024-07-08",
            "count": 1
          },
          {
            "date": "2024-07-15",
            "count": 1
          },
          {
            "date": "2024-07-16",
            "count": 1
          },
          {
            "date": "2024-07-31",
            "count": 1
          },
          {
            "date": "2024-08-14",
            "count": 1
          },
          {
            "date": "2024-08-17",
            "count": 1
          },
          {
            "date": "2024-08-28",
            "count": 1
          },
          {
            "date": "2024-08-30",
            "count": 1
          },
          {
            "date": "2024-09-06",
            "count": 1
          },
          {
            "date": "2024-09-12",
            "count": 1
          },
          {
            "date": "2024-09-18",
            "count": 1
          },
          {
            "date": "2024-09-20",
            "count": 1
          },
          {
            "date": "2024-10-04",
            "count": 1
          },
          {
            "date": "2024-10-16",
            "count": 2
          },
          {
            "date": "2024-10-19",
            "count": 1
          },
          {
            "date": "2024-10-30",
            "count": 1
          },
          {
            "date": "2024-11-02",
            "count": 1
          },
          {
            "date": "2024-11-03",
            "count": 1
          },
          {
            "date": "2024-11-07",
            "count": 1
          },
          {
            "date": "2024-11-08",
            "count": 1
          },
          {
            "date": "2024-11-19",
            "count": 1
          },
          {
            "date": "2024-12-05",
            "count": 2
          },
          {
            "date": "2024-12-26",
            "count": 1
          },
          {
            "date": "2025-01-20",
            "count": 1
          },
          {
            "date": "2025-01-31",
            "count": 1
          },
          {
            "date": "2025-02-08",
            "count": 1
          },
          {
            "date": "2025-02-14",
            "count": 1
          },
          {
            "date": "2025-02-19",
            "count": 1
          },
          {
            "date": "2025-02-21",
            "count": 1
          },
          {
            "date": "2025-02-22",
            "count": 1
          },
          {
            "date": "2025-02-23",
            "count": 2
          },
          {
            "date": "2025-02-28",
            "count": 1
          },
          {
            "date": "2025-03-18",
            "count": 1
          },
          {
            "date": "2025-03-27",
            "count": 1
          },
          {
            "date": "2025-03-31",
            "count": 1
          },
          {
            "date": "2025-04-01",
            "count": 1
          },
          {
            "date": "2025-04-23",
            "count": 1
          },
          {
            "date": "2025-04-26",
            "count": 1
          },
          {
            "date": "2025-05-19",
            "count": 2
          },
          {
            "date": "2025-06-01",
            "count": 1
          },
          {
            "date": "2025-06-09",
            "count": 1
          },
          {
            "date": "2025-06-13",
            "count": 1
          },
          {
            "date": "2025-06-27",
            "count": 1
          },
          {
            "date": "2025-06-28",
            "count": 1
          },
          {
            "date": "2025-07-14",
            "count": 1
          },
          {
            "date": "2025-07-27",
            "count": 2
          },
          {
            "date": "2025-08-03",
            "count": 1
          },
          {
            "date": "2025-08-16",
            "count": 1
          },
          {
            "date": "2025-09-08",
            "count": 1
          },
          {
            "date": "2025-09-10",
            "count": 1
          },
          {
            "date": "2025-10-07",
            "count": 1
          },
          {
            "date": "2025-10-17",
            "count": 1
          },
          {
            "date": "2025-11-01",
            "count": 1
          },
          {
            "date": "2025-11-05",
            "count": 1
          },
          {
            "date": "2025-11-09",
            "count": 1
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-11-14",
            "count": 1
          },
          {
            "date": "2025-12-02",
            "count": 1
          },
          {
            "date": "2025-12-04",
            "count": 1
          },
          {
            "date": "2025-12-10",
            "count": 1
          },
          {
            "date": "2025-12-25",
            "count": 1
          },
          {
            "date": "2026-01-20",
            "count": 1
          },
          {
            "date": "2026-02-21",
            "count": 1
          },
          {
            "date": "2026-03-06",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 1
          },
          {
            "date": "2026-03-24",
            "count": 1
          },
          {
            "date": "2026-04-07",
            "count": 1
          },
          {
            "date": "2026-05-16",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 1
          },
          {
            "date": "2026-06-10",
            "count": 1
          },
          {
            "date": "2026-07-16",
            "count": 1
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_stars": 2962
      },
      "open_issues_and_prs": 31
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 7389,
      "source_files_sampled": 31,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "Gemfile"
      ],
      "advisories": {
        "error": "No resolved dependencies carried a version and a supported ecosystem",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 13,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "rubygems"
      ],
      "dependencies": [
        {
          "name": "byebug",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "database_cleaner-active_record",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "database_cleaner-redis",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "byebug",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "database_cleaner-active_record",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "database_cleaner-redis",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "activesupport",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "bundler",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "codecov",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "cucumber",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "guard-rspec",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "listen",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rake",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rspec",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "simplecov",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "sqlite3",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 13,
        "direct_count": 3,
        "indirect_count": 10
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 3,
        "merged_prs": 273,
        "open_issues": 28,
        "closed_ratio": 0.908,
        "closed_issues": 276,
        "closed_unmerged_prs": 89
      },
      "bus_factor": 3,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "bmabey",
          "commits": 299,
          "avatar_url": "https://avatars.githubusercontent.com/u/1837?v=4"
        },
        {
          "type": "User",
          "login": "botandrose",
          "commits": 223,
          "avatar_url": "https://avatars.githubusercontent.com/u/17391?v=4"
        },
        {
          "type": "User",
          "login": "etagwerker",
          "commits": 194,
          "avatar_url": "https://avatars.githubusercontent.com/u/17584?v=4"
        },
        {
          "type": "User",
          "login": "JonRowe",
          "commits": 85,
          "avatar_url": "https://avatars.githubusercontent.com/u/162976?v=4"
        },
        {
          "type": "User",
          "login": "vrinek",
          "commits": 18,
          "avatar_url": "https://avatars.githubusercontent.com/u/81346?v=4"
        },
        {
          "type": "User",
          "login": "snusnu",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/1186?v=4"
        },
        {
          "type": "User",
          "login": "sanemat",
          "commits": 10,
          "avatar_url": "https://avatars.githubusercontent.com/u/75448?v=4"
        },
        {
          "type": "User",
          "login": "skalee",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/154287?v=4"
        },
        {
          "type": "User",
          "login": "svenfuchs",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/2208?v=4"
        },
        {
          "type": "User",
          "login": "stanislaw",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/452547?v=4"
        }
      ],
      "contributors_sampled": 100,
      "top_contributor_share": 0.281
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 1,
            "reason": "2 out of 16 merged PRs checked by a CI test -- score normalized to 1",
            "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": 6,
            "reason": "Found 15/23 approved changesets -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 52 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": 1,
            "reason": "1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1",
            "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": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "09b47d03cce420c915b10eb595936ef4397b55ac",
        "ran_at": "2026-07-22T00:01:30Z",
        "aggregate_score": 3.8,
        "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-06-01T18:04:12Z",
      "oldest_open_prs": [
        {
          "number": 720,
          "created_at": "2025-05-09T23:29:11Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 725,
          "created_at": "2026-05-05T13:18:58Z",
          "last_comment_at": "2026-06-11T01:10:07Z",
          "last_comment_author": "leoarnold"
        },
        {
          "number": 728,
          "created_at": "2026-06-01T20:02:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-06-01T18:01:14Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 418,
          "created_at": "2016-01-06T19:53:39Z",
          "last_comment_at": "2017-03-10T18:26:34Z",
          "last_comment_author": "agrberg"
        },
        {
          "number": 419,
          "created_at": "2016-01-14T23:29:26Z",
          "last_comment_at": "2016-03-26T23:17:58Z",
          "last_comment_author": "fmnoise"
        },
        {
          "number": 420,
          "created_at": "2016-01-15T21:03:46Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 425,
          "created_at": "2016-02-08T00:09:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 511,
          "created_at": "2017-11-16T13:11:42Z",
          "last_comment_at": "2018-01-06T14:55:42Z",
          "last_comment_author": "rlue"
        },
        {
          "number": 546,
          "created_at": "2018-05-01T18:26:30Z",
          "last_comment_at": "2019-12-17T19:50:50Z",
          "last_comment_author": "botandrose"
        },
        {
          "number": 564,
          "created_at": "2018-07-30T14:57:46Z",
          "last_comment_at": "2025-08-28T14:00:00Z",
          "last_comment_author": "emfy0"
        },
        {
          "number": 628,
          "created_at": "2020-02-28T14:41:01Z",
          "last_comment_at": "2020-04-06T23:37:45Z",
          "last_comment_author": "botandrose"
        },
        {
          "number": 631,
          "created_at": "2020-03-11T12:28:50Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 652,
          "created_at": "2020-05-22T14:23:00Z",
          "last_comment_at": "2025-01-03T21:16:57Z",
          "last_comment_author": "rajaravivarma-r"
        },
        {
          "number": 657,
          "created_at": "2020-05-31T08:37:55Z",
          "last_comment_at": "2020-11-03T06:38:36Z",
          "last_comment_author": "zedtux"
        },
        {
          "number": 659,
          "created_at": "2020-06-19T19:03:15Z",
          "last_comment_at": "2020-06-23T20:30:18Z",
          "last_comment_author": "botandrose"
        },
        {
          "number": 661,
          "created_at": "2020-07-02T19:00:31Z",
          "last_comment_at": "2020-07-02T19:02:01Z",
          "last_comment_author": "dmolesUC"
        },
        {
          "number": 664,
          "created_at": "2020-09-28T14:01:50Z",
          "last_comment_at": "2020-10-09T15:03:14Z",
          "last_comment_author": "prostko"
        },
        {
          "number": 668,
          "created_at": "2020-10-11T08:07:57Z",
          "last_comment_at": "2021-02-16T21:06:40Z",
          "last_comment_author": "takamario"
        },
        {
          "number": 669,
          "created_at": "2020-10-20T07:44:14Z",
          "last_comment_at": "2021-03-11T15:33:45Z",
          "last_comment_author": "danielpclark"
        },
        {
          "number": 677,
          "created_at": "2021-03-02T11:40:11Z",
          "last_comment_at": "2023-12-18T08:16:17Z",
          "last_comment_author": "mopp"
        },
        {
          "number": 683,
          "created_at": "2021-04-11T21:20:56Z",
          "last_comment_at": "2022-01-11T16:06:39Z",
          "last_comment_author": "luizkowalski"
        },
        {
          "number": 684,
          "created_at": "2021-04-13T21:19:27Z",
          "last_comment_at": "2021-05-08T20:25:01Z",
          "last_comment_author": "botandrose"
        },
        {
          "number": 686,
          "created_at": "2021-07-19T20:28:42Z",
          "last_comment_at": "2022-06-07T11:14:55Z",
          "last_comment_author": "olistik"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/DatabaseCleaner/database_cleaner",
    "host": "github.com",
    "name": "database_cleaner",
    "owner": "DatabaseCleaner"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 56,
      "inputs": {
        "security": 38,
        "vitality": 29,
        "community": 77,
        "governance": 77,
        "engineering": 56
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "critical",
        "name": "Vitality",
        "value": 29,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "critical",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 22,
            "inputs": {
              "commits_last_year": 1,
              "human_commit_share": 1,
              "days_since_last_push": 50,
              "active_weeks_last_year": 1
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 50 days ago",
                "points": 18,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 50
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "1/52 weeks with commits",
                "points": 0.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1 commits in the last year",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "at_risk",
            "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": 40,
            "inputs": {
              "releases_count": 47,
              "latest_release_tag": "v2.1.0",
              "releases_from_tags": true,
              "days_since_latest_release": 634,
              "mean_days_between_releases": 192.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "47 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 47
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 634 days ago",
                "points": 7.2,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 634
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~192.1 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 192.1
                    }
                  }
                ],
                "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": 50,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 50 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 50
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 77,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 87,
            "inputs": {
              "forks": 485,
              "stars": 2962,
              "watchers": 33,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "2,962 stars",
                "points": 56.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 2962
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "485 forks",
                "points": 22.4,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 485
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "33 watchers",
                "points": 8.4,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 33
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (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": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "packages": [
                "database_cleaner",
                "database_cleaner-core"
              ],
              "dependents": null,
              "ecosystems": "rubygems",
              "total_downloads": 337797438,
              "monthly_downloads": null
            },
            "components": [
              {
                "key": "total_downloads",
                "name": "Total downloads",
                "detail": "337,797,438 downloads all-time across rubygems",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_total",
                    "params": {
                      "count": 337797438,
                      "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": "good",
        "name": "Sustainability & Governance",
        "value": 77,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "good",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "bus_factor": 3,
              "contributors_sampled": 100,
              "top_contributor_share": 0.281
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "3 contributor(s) cover half of all commits",
                "points": 36,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 28% of commits",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 28
                    }
                  }
                ],
                "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 52 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "merged_prs": 273,
              "open_issues": 28,
              "closed_issues": 276,
              "issue_closed_ratio": 0.908,
              "closed_unmerged_prs": 89
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "91% of issues closed",
                "points": 42.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 91
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "273/362 decided PRs merged",
                "points": 28.8,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 273,
                      "decided": 362
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 15/23 approved changesets -- score normalized to 6",
                "points": 9,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "followers": 4,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "DatabaseCleaner",
              "public_repos": 14,
              "account_age_days": 4416
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "4 followers of DatabaseCleaner",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 4,
                      "login": "DatabaseCleaner"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "14 public repos, account ~12 yr old",
                "points": 20.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 14
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 12
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "database_cleaner",
                "database_cleaner-core"
              ],
              "ecosystems": "rubygems",
              "any_deprecated": false,
              "min_days_since_publish": 50
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on rubygems",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "rubygems"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 50 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 50
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "58 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 58
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 56,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 50,
            "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": "2 out of 16 merged PRs checked by a CI test -- score normalized to 1",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [
                "testing",
                "ruby",
                "database-cleaner",
                "testing-tools"
              ],
              "has_wiki": false,
              "homepage": "https://www.rubydoc.info/github/DatabaseCleaner/database_cleaner",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://www.rubydoc.info/github/DatabaseCleaner/database_cleaner",
                "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": "4 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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": "at_risk",
        "name": "Security",
        "value": 38,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 38,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "2 out of 16 merged PRs checked by a CI test -- score normalized to 1",
                "points": 0.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 15/23 approved changesets -- score normalized to 6",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 52 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": "1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "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": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "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": 26
            },
            "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": 31,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "critical",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 13,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.24,
              "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": "24 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 12.8,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 24,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 32,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": true,
              "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": "Dockerfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile"
                    }
                  }
                ],
                "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": 55,
            "inputs": {
              "primary_language": "Ruby",
              "largest_source_bytes": 7389,
              "source_files_sampled": 31,
              "oversized_source_files": 0
            },
            "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": "0/31 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 31,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "No resolved dependencies carried a version and a supported ecosystem"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-22T00:01:56.035432Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/d/DatabaseCleaner/database_cleaner.svg",
  "full_name": "DatabaseCleaner/database_cleaner",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.26.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenRubyGems.