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

cakephp / cakephp

CakePHP: The Rapid Development Framework for PHP - Official Repository

PHPMIT★ 8.794 Sterne⑂ 3.378 Forksseit Mai 2010Auf GitHub ansehen ↗

cakephp/cakephp erreicht einen Gesundheitsindex von 84 von 100 und liegt damit im Bereich Gut. Am stärksten schneidet es bei Vitality (96/100) ab, am schwächsten bei AI Readiness (60/100). Zuletzt heute aktualisiert. 2 Mitwirkende tragen den Großteil der jüngsten Arbeit.

84
gesamt / 100
Gut

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.

84
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

CakePHPOrganisation
286 Follower83 öffentliche Reposseit Sept. 2008

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

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
Packagistcakephp/cakephp5.4.0403.000456vor 2 Tagenframeworkormformmvcvalidationdrypsr-7rapid-developmentconventions-over-configuration

Metriken nach Kategorie

Vitalität

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

96Exzellent · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
36/36Commit-Rhythmus — 52/52 Wochen mit Commits
18/18Commit-Volumen — 806 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 22 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year806
human_commit_share0,96
days_since_last_push0
active_weeks_last_year52
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 100 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 2 Tagen
27/27Release-Rhythmus — ein Release etwa alle 2,4 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count100
latest_release_tag5.4.0
releases_from_tagsnein
days_since_latest_release2
mean_days_between_releases2,4

Community & Verbreitung

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

91Exzellent · 18 % des Gesamtindex
Wie die Bewertung erfolgt
60/60Stars — 8.794 Stars
25/25Forks — 3.378 Forks
15/15Watcher — 515 Watcher
Verwendete Eingangsdaten
forks3.378
stars8.794
watchers515
growth_stateorganic
growth_factor_pct100
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
18/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templateja
Wie die Bewertung erfolgt
74.7/80Downloads pro Monat — 403.000 Downloads/Monat über packagist
20/20Abhängige in der Registry — 1.968 Pakete hängen davon ab
Verwendete Eingangsdaten
packagescakephp/cakephp
dependents1.968
ecosystemspackagist
total_downloads19.814.486
monthly_downloads403.000

Nachhaltigkeit & Governance

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

78Gut · 24 % des Gesamtindex
Wie die Bewertung erfolgt
25.2/54Bus-Faktor — 2 Beitragende decken die Hälfte aller Commits ab
12.8/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 43 % der Commits
13.5/13.5Breite der Beitragenden — 99 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 67 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor2
contributors_sampled99
top_contributor_share0,431
Wie die Bewertung erfolgt
46.7/46.8Issue-Lösungsquote — 100 % der Issues geschlossen
31.3/38.3PR-Annahme — 10.087/12.329 entschiedene PRs gemergt
7.5/15OpenSSF Scorecard: Code-Review — Found 16/28 approved changesets -- score normalized to 5
Verwendete Eingangsdaten
merged_prs10.087
open_issues11
closed_issues6.854
issue_closed_ratio0,998
closed_unmerged_prs2.242
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
17.7/25Reichweite des Inhabers — 286 Follower von cakephp
25/25Kontohistorie — 83 öffentliche Repos, Kontoalter ca. 17 Jahre
Verwendete Eingangsdaten
followers286
owner_typeOrganization
is_verified
owner_logincakephp
public_repos83
account_age_days6.525

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf packagist
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 2 Tagen
20/20Versionshistorie — 456 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagescakephp/cakephp
ecosystemspackagist
any_deprecatednein
min_days_since_publish2

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

84Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 4 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — phpcs.xml, phpstan.neon
0/9.6Pre-Commit-Hooks
6.4/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 21 out of 21 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfigja
has_linter_configja
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — http://cakephp.org
10/10Repository-Beschreibung
10/10Topics — 13 Topics
10/10Wiki
Verwendete Eingangsdaten
topicscakephp, php, mvc-framework, psr-7, orm, mvc, validation, rest-api, web, web-framework, rapid-development, form-builder, hacktoberfest
has_wikija
homepagehttp://cakephp.org
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

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

67Mittel · 16 % des Gesamtindex
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — keine Daten
2.5/2.5CI-Tests — 21 out of 21 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
3.8/7.5Code-Review — Found 16/28 approved changesets -- score normalized to 5
2.5/2.5Contributors — project has 67 contributing companies or organizations
0/10Dangerous-Workflow — keine Daten
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 22 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — keine Daten
0/5Pinned-Dependencies — keine Daten
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 — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — keine Daten
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated13
scorecard_versionv5.5.0
checks_inconclusive5
scorecard_aggregate5,9
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): branch_protection, dangerous_workflow, packaging, pinned_dependencies, token_permissions. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages5
unassessed_packages37
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories, Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. 5 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. 37 konnten nicht bewertet werden — keine aufgelöste Version, ein nicht unterstütztes Ökosystem oder außerhalb der ausgewiesenen Paketliste. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

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.

60Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
39.4/40Lesbare Commit-Historie — 71 von 96 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,74
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — Makefile
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — phpcs.xml, phpstan.neon
0/11Statische Typprüfung
10/10Reproduzierbare Umgebung — lockfile
2/10Belegte Agentenpraxis — 1 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
8/8Automatisierte Wartung — 4 der letzten 100 Commits sind automatisierte Abhängigkeits-Updates
0/10OpenSSF Scorecard: Pinned-Dependencies — keine Daten
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilescomposer.lock
has_dockerfilenein
typed_languagenein
bootstrap_filesMakefile
has_devcontainernein
has_linter_configja
typecheck_configs
agent_commit_share0,01
toolchain_manifests
dependency_bot_commit_share0,04
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Pinned-Dependencies. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
0/45Typprüfbarer Code — PHP ohne Typprüfungs-Konfiguration
54.1/55Handhabbare Dateigrößen — 30/1.743 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languagePHP
largest_source_bytes339.892
source_files_sampled1.743
oversized_source_files30

Eckdaten

8.794GitHub-Sterne
99Mitwirkende
806Commits, letzte 12 Monate
0Tage seit letztem Push
100Releases
2Bus-Faktor
11offene Issues
PackagistPaket-Ökosysteme

Weitere Details

Stern- und Fork-Verlauf 8.794 ★ / 3.378 ⇿
8.794Sterne
3.378Forks
100Releases

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.

02.5005.0007.50010.0008.7943.378312017-042021-122026-07
Major 1Minor 7Patch 79

Jeder Punkt umfasst 9 Tage.

OpenSSF Scorecard 5.9 / 10
5.9Gesamtwert

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 01:28 UTC

10Binary-Artifactsno binaries found in the repo
k. A.Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests21 out of 21 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
5Code-ReviewFound 16/28 approved changesets -- score normalized to 5
10Contributorsproject has 67 contributing companies or organizations
k. A.Dangerous-Workflowno workflows found
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 22 issue activity found in the last 90 days -- score normalized to 10
k. A.Packagingpackaging workflow not detected
k. A.Pinned-Dependenciesno dependencies found
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
k. A.Token-PermissionsNo tokens found
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 13
RegistryPaketVersionsvorgabeManifest
Packagistcakephp/chronos^3.3composer.json
Packagistlaminas/laminas-diactoros^3.8composer.json
Packagistlaminas/laminas-httphandlerrunner^2.6composer.json
Packagistleague/container^5.1composer.json
Packagistpsr/container^1.1 || ^2.0composer.json
Packagistpsr/http-client^1.0.2composer.json
Packagistpsr/http-factory^1.1composer.json
Packagistpsr/http-message^1.1 || ^2.0composer.json
Packagistpsr/http-server-handler^1.0.2composer.json
Packagistpsr/http-server-middleware^1.0.2composer.json
Packagistpsr/link^2.0composer.json
Packagistpsr/log^3.0composer.json
Packagistpsr/simple-cache^2.0 || ^3.0composer.json
Alle Abhängigkeiten 42

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

RegistryPaketVersionBeziehung
Packagistcakephp/chronosdirekt
Packagistcakephp/chronos3.0.4direkt
Packagistlaminas/laminas-diactorosdirekt
Packagistlaminas/laminas-httphandlerrunnerdirekt
Packagistleague/containerdirekt
Packagistpsr/containerdirekt
Packagistpsr/http-clientdirekt
Packagistpsr/http-factorydirekt
Packagistpsr/http-messagedirekt
Packagistpsr/http-server-handlerdirekt
Packagistpsr/http-server-middlewaredirekt
Packagistpsr/linkdirekt
Packagistpsr/logdirekt
Packagistpsr/simple-cachedirekt
Packagistpsr/simple-cache3.0.0direkt
Packagistboundwize/structarmedindirekt
Packagistcakephp/cacheindirekt
Packagistcakephp/cakephp-codesnifferindirekt
Packagistcakephp/cakephp-codesniffer5.1.1indirekt
Packagistcakephp/collectionindirekt
Packagistcakephp/consoleindirekt
Packagistcakephp/coreindirekt
Packagistcakephp/databaseindirekt
Packagistcakephp/datasourceindirekt
Packagistcakephp/eventindirekt
Packagistcakephp/i18nindirekt
Packagistcakephp/logindirekt
Packagistcakephp/ormindirekt
Packagistcakephp/utilityindirekt
Packagistcakephp/validationindirekt
Packagistcomposer/ca-bundleindirekt
Packagistext-intlindirekt
Packagistext-jsonindirekt
Packagistext-mbstringindirekt
Packagisthttp-interop/http-factory-testsindirekt
Packagistmikey179/vfsstreamindirekt
Packagistmockery/mockeryindirekt
Packagistparagonie/csp-builderindirekt
Packagistphpindirekt
Packagistphpunit/phpunitindirekt
Packagistsquizlabs/php_codesniffer3.8.1indirekt
Packagisttheseer/tokenizer1.2.2indirekt
Abhängigkeits-Advisories 0

Dieses Repository veröffentlicht kein vom Index auflösbares Paket, daher wurde sein eigener Abhängigkeitsgraph bewertet – 5 Pakete, darunter auch Entwicklungs- und Test-Pins, die nie ausgeliefert werden: 0 tragen bekannte Advisories, davon 0 direkte. 37 konnten nicht bewertet werden – keine aufgelöste Version, ein nicht unterstütztes Ökosystem, oder außerhalb der ausgewiesenen Paketliste.

Keine bekannten Advisories betreffen die bewerteten Abhängigkeiten.

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "cakephp",
        "php",
        "mvc-framework",
        "psr-7",
        "orm",
        "mvc",
        "validation",
        "rest-api",
        "web",
        "web-framework",
        "rapid-development",
        "form-builder",
        "hacktoberfest"
      ],
      "is_fork": false,
      "size_kb": 118115,
      "has_wiki": true,
      "homepage": "http://cakephp.org",
      "languages": {
        "CSS": 15730,
        "PHP": 12735507,
        "HTML": 9674,
        "Hack": 486,
        "Shell": 1355,
        "Python": 211653,
        "Makefile": 7017,
        "JavaScript": 173
      },
      "pushed_at": "2026-07-22T00:26:42Z",
      "created_at": "2010-05-08T14:38:22Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-22T00:39:29Z",
      "description": "CakePHP: The Rapid Development Framework for PHP - Official Repository",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "5.x",
      "license_spdx_raw": "MIT",
      "primary_language": "PHP",
      "significant_languages": [
        "PHP"
      ]
    },
    "owner": {
      "blog": "http://cakephp.org",
      "name": "CakePHP",
      "type": "Organization",
      "login": "cakephp",
      "company": null,
      "location": null,
      "followers": 286,
      "avatar_url": "https://avatars.githubusercontent.com/u/23666?v=4",
      "created_at": "2008-09-08T15:21:00Z",
      "is_verified": null,
      "public_repos": 83,
      "account_age_days": 6525
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "5.4.0",
          "kind": "minor",
          "published_at": "2026-07-19T16:08:59Z"
        },
        {
          "tag": "5.1.10",
          "kind": "patch",
          "published_at": "2026-07-16T04:39:12Z"
        },
        {
          "tag": "5.2.15",
          "kind": "patch",
          "published_at": "2026-07-16T04:39:40Z"
        },
        {
          "tag": "5.1.9",
          "kind": "patch",
          "published_at": "2026-07-16T04:38:50Z"
        },
        {
          "tag": "4.5.12",
          "kind": "patch",
          "published_at": "2026-07-15T03:47:47Z"
        },
        {
          "tag": "4.6.5",
          "kind": "patch",
          "published_at": "2026-07-15T03:41:17Z"
        },
        {
          "tag": "5.2.14",
          "kind": "patch",
          "published_at": "2026-07-14T03:55:45Z"
        },
        {
          "tag": "5.1.8",
          "kind": "patch",
          "published_at": "2026-07-14T03:49:22Z"
        },
        {
          "tag": "5.3.7",
          "kind": "patch",
          "published_at": "2026-07-14T03:24:00Z"
        },
        {
          "tag": "5.4.0-RC2",
          "kind": "prerelease",
          "published_at": "2026-06-28T03:16:48Z"
        },
        {
          "tag": "5.3.6",
          "kind": "patch",
          "published_at": "2026-05-23T16:59:57Z"
        },
        {
          "tag": "5.3.5",
          "kind": "patch",
          "published_at": "2026-05-09T03:36:11Z"
        },
        {
          "tag": "5.4.0-RC1",
          "kind": "prerelease",
          "published_at": "2026-04-27T21:05:55Z"
        },
        {
          "tag": "5.3.4",
          "kind": "patch",
          "published_at": "2026-04-17T15:10:03Z"
        },
        {
          "tag": "5.3.3",
          "kind": "patch",
          "published_at": "2026-03-19T02:58:53Z"
        },
        {
          "tag": "5.3.2",
          "kind": "patch",
          "published_at": "2026-02-25T04:29:45Z"
        },
        {
          "tag": "5.2.12",
          "kind": "patch",
          "published_at": "2026-01-15T03:49:52Z"
        },
        {
          "tag": "5.3.1",
          "kind": "patch",
          "published_at": "2026-01-15T02:47:34Z"
        },
        {
          "tag": "5.3.0",
          "kind": "minor",
          "published_at": "2026-01-10T04:59:29Z"
        },
        {
          "tag": "5.2.11",
          "kind": "patch",
          "published_at": "2026-01-09T04:38:56Z"
        },
        {
          "tag": "5.3.0-RC2",
          "kind": "prerelease",
          "published_at": "2025-12-14T05:27:40Z"
        },
        {
          "tag": "5.2.10",
          "kind": "patch",
          "published_at": "2025-12-05T22:40:15Z"
        },
        {
          "tag": "4.6.3",
          "kind": "patch",
          "published_at": "2025-12-01T16:54:37Z"
        },
        {
          "tag": "5.3.0-RC1",
          "kind": "prerelease",
          "published_at": "2025-11-09T04:31:16Z"
        },
        {
          "tag": "5.2.9",
          "kind": "patch",
          "published_at": "2025-10-17T03:27:49Z"
        },
        {
          "tag": "5.2.8",
          "kind": "patch",
          "published_at": "2025-09-24T03:05:20Z"
        },
        {
          "tag": "5.2.7",
          "kind": "patch",
          "published_at": "2025-08-31T02:36:51Z"
        },
        {
          "tag": "5.2.6",
          "kind": "patch",
          "published_at": "2025-08-02T03:28:13Z"
        },
        {
          "tag": "4.6.2",
          "kind": "patch",
          "published_at": "2025-07-27T03:45:28Z"
        },
        {
          "tag": "5.2.5",
          "kind": "patch",
          "published_at": "2025-06-21T03:46:32Z"
        },
        {
          "tag": "5.2.4",
          "kind": "patch",
          "published_at": "2025-05-17T03:15:06Z"
        },
        {
          "tag": "4.6.1",
          "kind": "patch",
          "published_at": "2025-04-26T22:48:43Z"
        },
        {
          "tag": "5.2.3",
          "kind": "patch",
          "published_at": "2025-04-24T03:05:17Z"
        },
        {
          "tag": "5.2.2",
          "kind": "patch",
          "published_at": "2025-04-18T04:20:10Z"
        },
        {
          "tag": "5.2.1",
          "kind": "patch",
          "published_at": "2025-04-06T21:11:48Z"
        },
        {
          "tag": "5.2.0",
          "kind": "minor",
          "published_at": "2025-03-29T17:36:25Z"
        },
        {
          "tag": "4.6.0",
          "kind": "minor",
          "published_at": "2025-03-23T03:08:14Z"
        },
        {
          "tag": "4.5.10",
          "kind": "patch",
          "published_at": "2025-03-22T03:13:50Z"
        },
        {
          "tag": "5.2.0-RC1",
          "kind": "prerelease",
          "published_at": "2025-03-01T22:33:08Z"
        },
        {
          "tag": "5.1.6",
          "kind": "patch",
          "published_at": "2025-02-23T20:26:16Z"
        },
        {
          "tag": "4.6.0-RC1",
          "kind": "prerelease",
          "published_at": "2025-02-10T03:48:59Z"
        },
        {
          "tag": "5.1.5",
          "kind": "patch",
          "published_at": "2025-01-17T04:31:36Z"
        },
        {
          "tag": "4.5.9",
          "kind": "patch",
          "published_at": "2025-01-05T03:49:45Z"
        },
        {
          "tag": "5.1.4",
          "kind": "patch",
          "published_at": "2024-12-13T04:22:22Z"
        },
        {
          "tag": "4.5.8",
          "kind": "patch",
          "published_at": "2024-11-25T03:56:58Z"
        },
        {
          "tag": "5.1.2",
          "kind": "patch",
          "published_at": "2024-11-10T04:19:09Z"
        },
        {
          "tag": "5.1.1",
          "kind": "patch",
          "published_at": "2024-10-04T03:08:07Z"
        },
        {
          "tag": "4.5.7",
          "kind": "patch",
          "published_at": "2024-09-21T03:10:37Z"
        },
        {
          "tag": "5.1.0",
          "kind": "minor",
          "published_at": "2024-09-14T02:53:46Z"
        },
        {
          "tag": "5.0.11",
          "kind": "patch",
          "published_at": "2024-09-13T02:15:32Z"
        },
        {
          "tag": "5.1.0-RC2",
          "kind": "prerelease",
          "published_at": "2024-08-08T03:15:20Z"
        },
        {
          "tag": "5.0.10",
          "kind": "patch",
          "published_at": "2024-07-28T17:07:37Z"
        },
        {
          "tag": "5.0.9",
          "kind": "patch",
          "published_at": "2024-06-24T03:01:39Z"
        },
        {
          "tag": "4.5.6",
          "kind": "patch",
          "published_at": "2024-06-23T02:54:53Z"
        },
        {
          "tag": "5.1.0-RC1",
          "kind": "prerelease",
          "published_at": "2024-05-21T03:35:13Z"
        },
        {
          "tag": "5.0.8",
          "kind": "patch",
          "published_at": "2024-05-11T03:08:33Z"
        },
        {
          "tag": "4.5.5",
          "kind": "patch",
          "published_at": "2024-04-28T03:09:02Z"
        },
        {
          "tag": "5.0.7",
          "kind": "patch",
          "published_at": "2024-04-06T03:01:21Z"
        },
        {
          "tag": "5.0.6",
          "kind": "patch",
          "published_at": "2024-03-09T04:09:04Z"
        },
        {
          "tag": "4.5.4",
          "kind": "patch",
          "published_at": "2024-03-02T03:33:51Z"
        },
        {
          "tag": "5.0.5",
          "kind": "patch",
          "published_at": "2024-01-28T04:23:58Z"
        },
        {
          "tag": "4.5.3",
          "kind": "patch",
          "published_at": "2024-01-20T03:28:05Z"
        },
        {
          "tag": "5.0.4",
          "kind": "patch",
          "published_at": "2023-12-28T00:10:11Z"
        },
        {
          "tag": "4.5.2",
          "kind": "patch",
          "published_at": "2023-12-15T03:28:39Z"
        },
        {
          "tag": "5.0.3",
          "kind": "patch",
          "published_at": "2023-11-28T04:00:44Z"
        },
        {
          "tag": "4.5.1",
          "kind": "patch",
          "published_at": "2023-11-12T03:38:58Z"
        },
        {
          "tag": "5.0.2",
          "kind": "patch",
          "published_at": "2023-10-29T03:40:48Z"
        },
        {
          "tag": "4.5.0",
          "kind": "minor",
          "published_at": "2023-10-15T02:47:50Z"
        },
        {
          "tag": "5.0.1",
          "kind": "patch",
          "published_at": "2023-09-29T23:42:44Z"
        },
        {
          "tag": "4.4.18",
          "kind": "patch",
          "published_at": "2023-09-28T04:52:40Z"
        },
        {
          "tag": "5.0.0",
          "kind": "major",
          "published_at": "2023-09-10T03:14:24Z"
        },
        {
          "tag": "4.4.17",
          "kind": "patch",
          "published_at": "2023-08-20T03:02:22Z"
        },
        {
          "tag": "4.4.16",
          "kind": "patch",
          "published_at": "2023-08-05T15:42:16Z"
        },
        {
          "tag": "4.5.0-RC1",
          "kind": "prerelease",
          "published_at": "2023-07-17T02:49:46Z"
        },
        {
          "tag": "5.0.0-RC2",
          "kind": "prerelease",
          "published_at": "2023-07-15T03:25:06Z"
        },
        {
          "tag": "4.4.15",
          "kind": "patch",
          "published_at": "2023-07-02T02:55:28Z"
        },
        {
          "tag": "5.0.0-RC1",
          "kind": "prerelease",
          "published_at": "2023-06-07T03:22:57Z"
        },
        {
          "tag": "4.4.14",
          "kind": "patch",
          "published_at": "2023-05-23T03:04:12Z"
        },
        {
          "tag": "4.4.13",
          "kind": "patch",
          "published_at": "2023-04-23T02:44:43Z"
        },
        {
          "tag": "5.0.0-beta2",
          "kind": "prerelease",
          "published_at": "2023-04-08T04:39:48Z"
        },
        {
          "tag": "4.4.12",
          "kind": "patch",
          "published_at": "2023-03-24T01:39:32Z"
        },
        {
          "tag": "4.4.11",
          "kind": "patch",
          "published_at": "2023-02-11T01:15:00Z"
        },
        {
          "tag": "4.2.12",
          "kind": "patch",
          "published_at": "2023-01-07T01:00:41Z"
        },
        {
          "tag": "4.4.10",
          "kind": "patch",
          "published_at": "2023-01-06T03:22:52Z"
        },
        {
          "tag": "4.3.11",
          "kind": "patch",
          "published_at": "2023-01-06T03:23:26Z"
        },
        {
          "tag": "4.2.11",
          "kind": "patch",
          "published_at": "2023-01-06T03:23:52Z"
        },
        {
          "tag": "3.10.5",
          "kind": "patch",
          "published_at": "2023-01-02T03:02:50Z"
        },
        {
          "tag": "4.4.9",
          "kind": "patch",
          "published_at": "2022-12-30T02:57:51Z"
        },
        {
          "tag": "5.0.0-beta1",
          "kind": "prerelease",
          "published_at": "2022-12-19T18:02:09Z"
        },
        {
          "tag": "4.4.8",
          "kind": "patch",
          "published_at": "2022-12-02T02:50:26Z"
        },
        {
          "tag": "4.4.7",
          "kind": "patch",
          "published_at": "2022-10-30T02:34:55Z"
        },
        {
          "tag": "4.4.6",
          "kind": "patch",
          "published_at": "2022-10-02T00:08:00Z"
        },
        {
          "tag": "4.4.5",
          "kind": "patch",
          "published_at": "2022-08-29T00:38:23Z"
        },
        {
          "tag": "4.4.4",
          "kind": "patch",
          "published_at": "2022-08-08T02:44:56Z"
        },
        {
          "tag": "4.4.3",
          "kind": "patch",
          "published_at": "2022-07-27T01:00:39Z"
        },
        {
          "tag": "4.4.2",
          "kind": "patch",
          "published_at": "2022-07-06T02:36:24Z"
        },
        {
          "tag": "4.4.1",
          "kind": "patch",
          "published_at": "2022-06-13T17:29:35Z"
        },
        {
          "tag": "4.4.0",
          "kind": "minor",
          "published_at": "2022-06-07T02:53:21Z"
        },
        {
          "tag": "4.3.10",
          "kind": "patch",
          "published_at": "2022-06-03T02:37:33Z"
        },
        {
          "tag": "3.10.4",
          "kind": "patch",
          "published_at": "2022-05-21T19:53:53Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "7b7b4059fdc4e6684911569c5a639e096221ba3c",
          "body": "…le (#19560)\n\n* add readme for container package\n* add container subpackage to Makefile",
          "is_bot": false,
          "headline": "add readme for container package + add container subpackage to makefi…",
          "author_name": "Kevin Pfeifer",
          "author_login": "LordSimal",
          "committed_at": "2026-07-21T20:51:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a20fe7c56115ef3b56d2e1c9baaef9f908980584",
          "body": null,
          "is_bot": false,
          "headline": "fix postgres eager loading alias bug (#19552)",
          "author_name": "Kevin Pfeifer",
          "author_login": "LordSimal",
          "committed_at": "2026-07-20T19:39:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "82328ac6bfd47cf7fb62fdba1aa30425c74be6ca",
          "body": null,
          "is_bot": false,
          "headline": "Update version number to 5.4.0",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-07-19T15:31:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ee2d9ccc25cfc44a653eb036d9152a2fe0c76d7",
          "body": "Update split package version constraints and branch aliases to 5.5",
          "is_bot": false,
          "headline": "Update version constraints and branch aliases",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-07-19T15:27:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "097d5fe0936d442ffe3a8f95e5991e602211fd81",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.next' into 5.x",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-07-19T15:17:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6a9e4f83c27abf6f8880ee428caa4dd4a6845c4",
          "body": "* Improve type inference\n\n* Fix flaky time related test",
          "is_bot": false,
          "headline": "Improve type inference (#19545)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-07-19T03:27:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f063eb92a3f8cc11ec6bfddb5606a6567be27a2",
          "body": null,
          "is_bot": false,
          "headline": "add command instances to the event manager by default (#19540)",
          "author_name": "Kevin Pfeifer",
          "author_login": "LordSimal",
          "committed_at": "2026-07-17T06:05:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49ceb6fe76222c14aae363543e677c1b75f66d4c",
          "body": "…ms (#19544)\n\nadd a safety step before releasing to check obvious PHP syntax",
          "is_bot": false,
          "headline": "add a safety step before releasing to check obvious PHP syntax proble…",
          "author_name": "Kevin Pfeifer",
          "author_login": "LordSimal",
          "committed_at": "2026-07-17T03:01:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21858737264fb6b86447c8c54fe57f18481b6091",
          "body": "# Conflicts:\n#\tVERSION.txt\n#\tsrc/ORM/Association/Loader/SelectLoader.php",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/5.x' into merge-5x-into-5next",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-07-14T21:35:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8fccd79655091b3db1f5fe8f11f1d8291b61bafd",
          "body": "* Fix assertLogMessageContains() to support partial matches\n\nThe level prefix was prepended to the expected message before the\nstr_contains() check, so partial matches only worked when the expected\nstring happened to be at the start of the logged message.\n\nNow the level prefix is checked separately \n[…]\nomparing\nagainst the actual logged message, for both exact and partial matching.\nThe failure message reports level and expected message separately.\n\n* Extract match check into variable for readability",
          "is_bot": false,
          "headline": "Fix assertLogMessageContains() to support partial matches (#19534)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-07-14T09:15:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c0d21e0da4216d51268691af3ad803f0eecb3a11",
          "body": null,
          "is_bot": false,
          "headline": "Update version number to 5.3.7",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-07-14T03:04:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f95aebdbc508882f658ad450e2a8fa5edf0814a1",
          "body": "Currently path prefix matching does not treat %2f as /, and `Route` has\nan option for it. In the past we've made changes in this area\n(#18050, #16110) to make urldecoding optional, and to intentionally\ndecode urlencoding in path segments to support non-ascii applications.\n\nWe got a report on the sec\n[…]\nbetween RouteCollection\nand Route with a new shared internal function. I thought a function was\nbetter than exposing a static method on a public class.\n\nThanks to Rotem Reiss for reporting this issue.",
          "is_bot": false,
          "headline": "Handle %2f in routing more consistently (#19537)",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-07-14T03:03:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "542ca682ed7c97a1cb7a885a1ca13e83e939acfe",
          "body": "…9538)\n\n_subqueryFields() collects the ORDER BY fields through iterateParts(), which\nrebuilds the expression from whatever the callback returns. The callback\nreturned nothing, so every part was dropped - and since it runs against the\ncaller's query rather than a clone, the query itself was left with\n[…]\n the wrong rows, so any hasMany\nafter the first one silently returned no results at all.\n\n* Add closure param type for rector\n\n* Fix CS\n\n---------\n\nCo-authored-by: Mark Scherer <dereuromark@gmail.com>",
          "is_bot": false,
          "headline": "Keep the ORDER BY intact when building a subquery strategy filter (#1…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-07-13T18:12:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "753a70254c3f8c6e20635445c2b6b7b3e2939523",
          "body": "…536)",
          "is_bot": false,
          "headline": "Mark $config argument in Driver's methods as sensitive parameter (#19…",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-07-11T17:09:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "767457bbbc70aa6f3505917aac6c021472b4d5c4",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-07-09T18:29:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57a81452e4c8d11d2587766704241ffccddaa6bc",
          "body": "…9531)",
          "is_bot": false,
          "headline": "Mark sensitive parameter using the `SensitiveParamater` attribute (#1…",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-07-09T15:04:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c56cca991747b2934451a6abe181ca739422d357",
          "body": "* Add maskRegex and maskPartialRegex\n\n* Improve doc comments\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\n\n* Improve doc comment\n\n* Fix examples\n\n* Add parameter typehints to closures\n\n* Fix indentation\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add maskRegex and maskPartialRegex (#19526)",
          "author_name": "Graham Watson",
          "author_login": "PhantomWatson",
          "committed_at": "2026-07-09T07:44:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6548976d15066e395b4d8e7f003b947a051b5379",
          "body": "This makes the code now match the docblock of Debugger::exportArray()\nwhich states that values for keys like login, password etc. are replaced by ***s",
          "is_bot": false,
          "headline": "Set default value for `exportMask` config of Debugger. (#19532)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-07-09T03:21:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "138f2f61486532c29ee4d106da2a9848c1ff1ab3",
          "body": "The postgres driver needs to transforms jsonValue function calls to\nrename the function and apply postgres specific cast operations. If the\ncurrent implementation is provided a user-controlled path expression,\nthe generated query can be manipulated.\n\nThanks to Himanshu Anand for reporting this",
          "is_bot": false,
          "headline": "Fix weakness in FunctionsBuilder::jsonValue() with postgres (#19530)",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-07-09T03:06:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab608711674ac662af7315c5cdf1e0fbe2000e45",
          "body": "Fix weakness in FunctionsBuilder\n\nSeveral methods did not explicity label their parameters as unsafe, so\nit is possible for an application developer to mistakenly supply user\ncontrolled data into these parameters creating a SQL injection vector.\n\nThank you to Himanshu Anand for reporting this issue.",
          "is_bot": false,
          "headline": "Fix parameter handling in FunctionsBuilder (#19520)",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-07-01T16:37:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ffe279203cab7a3c6c9cf0d5ce4aba0313699eb",
          "body": "Bumps [actions/cache](https://github.com/actions/cache) from 6 to 6.1.0.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v6...v6.1.0)\n\n---\nupdated-dependencies:\n- d\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/cache from 6 to 6.1.0 (#19522)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-30T14:37:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "92443254f7643921959fdf72173023372334614d",
          "body": "zizmore CI cleanup",
          "is_bot": false,
          "headline": "zizmor CI cleanup (#19517)",
          "author_name": "Kevin Pfeifer",
          "author_login": "LordSimal",
          "committed_at": "2026-06-30T07:24:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9a8942f1703e245d84cf493854830a2443fd310",
          "body": "Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependenc\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/cache from 5 to 6 (#19519)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-30T02:37:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "744ebd7141f582ba72c9f19189b41659a30da64c",
          "body": "* Fix docblock type\n\n* Simplify code",
          "is_bot": false,
          "headline": "Fix docblock type (#19515)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-28T15:07:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c405323b58efc15230cb4c8b836c3f1124abe17",
          "body": "…he config (#19516)",
          "is_bot": false,
          "headline": "chore: Bump structarmed to ^0.14 and use new expanded +LayerName in t…",
          "author_name": "Abdul Malik Ikhsan",
          "author_login": "samsonasik",
          "committed_at": "2026-06-28T15:03:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6485773b2438e0213dcff6a23839ad7851bbe2f6",
          "body": null,
          "is_bot": false,
          "headline": "Update version number to 5.4.0-RC2",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-06-28T02:28:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd06945619b609ad3237b199b064c101be0fba83",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-06-28T02:27:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9fbd156ea2430a2dcb5b3a40b280c914c6cdcb1f",
          "body": null,
          "is_bot": false,
          "headline": "Include enum class name in the deprecation message (#19514)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-27T10:16:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c988ea3036c7fb6aa8552316cdd54785630c8835",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-26T18:21:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c78f2009cf68e0a28d4d600f1881e7a5c63e2ed",
          "body": "Strip CRLF from message headers in SmtpTransport",
          "is_bot": false,
          "headline": "Merge pull request #19512 from cakephp/smtp-transport-newline",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-26T08:57:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e09dae6cbdc983754fa3a8e6aae74da102a3ea1",
          "body": "Strip CRLF bytes from message headers when delivering mail by\nSmtpTransport. This prevents header injection should userland code\nsupply user data into messages headers.\n\nThank you to Himanshu Anand for reporting this issue.",
          "is_bot": false,
          "headline": "Strip CRLF from message headers in SmtpTransport",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-06-26T04:03:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a78e88ee56c111ef44bc6016754fae477f573ca",
          "body": null,
          "is_bot": false,
          "headline": "Fix missing trailing backtick",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-24T19:22:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2b38a4e8c34e2211d2c83e3e685452b695fb8dc",
          "body": "…ons/checkout-7\n\nBump actions/checkout from 6 to 7",
          "is_bot": false,
          "headline": "Merge pull request #19510 from cakephp/dependabot/github_actions/acti…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-22T21:20:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "012bf70df93233b41a8de34271dac4e5d15764e6",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v6...v7)\n\n---\nupdated-dependenc\n[…]\n:\n- dependency-name: actions/checkout\n  dependency-version: '7'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump actions/checkout from 6 to 7",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-22T16:42:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f802f3ec3ad691a4aa1e26550228feed75df07cb",
          "body": "* Respect curl.cainfo php.ini setting in Curl adapter\n\nWhen no `ssl_cafile` option is given, the Curl client adapter hardcoded the\nCA bundle shipped with composer/ca-bundle, ignoring an explicitly configured\n`curl.cainfo` in php.ini. This broke enterprise/containerized environments\nthat inject a cus\n[…]\nled CA file.\nAn explicitly passed `ssl_cafile` option still takes highest priority.\n\n* Minimize inline comment\n\n* Apply suggestion from @ADmad\n\n---------\n\nCo-authored-by: ADmad <admad.coder@gmail.com>",
          "is_bot": false,
          "headline": "Respect curl.cainfo php.ini setting in Curl adapter (#19507)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-19T03:11:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b4c307e61e1f85dece09c6dd0b964930652d10f5",
          "body": "… (#19467)",
          "is_bot": false,
          "headline": "Add phpcs sniff to report namespace to filename mismatch as per PSR-4…",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-13T02:59:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1cf19b90cd16cf316cc5d3dbdab13019cb34de7",
          "body": "…mmand check (#19492)\n\n* CLI: exempt commands with positional arguments from the sibling-subcommand check\n\nThe sibling-subcommand guard added for 5.4 rejects an unknown token after a\ncommand that has registered subcommands, treating it as a mistyped subcommand.\nThat assumption is wrong for commands \n[…]\n parser cannot be inspected, assume the command may take\npositional arguments and skip the sibling-subcommand check, so a valid\ncommand runs instead of being rejected with an unknown-subcommand error.",
          "is_bot": false,
          "headline": "CLI: exempt commands with positional arguments from the sibling-subco…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-09T14:46:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "786fe293cc7d28ac822cefa169356de92312fdc1",
          "body": "…ject Injection (#19485)\n\n* security: add allowedClasses config to prevent PHP Object Injection in cache unserialize()\n\nRedisEngine and FileEngine both call unserialize() on data fetched from their\nrespective backends without restricting the allowed_classes option. An attacker\nwho can write to the c\n[…]\n to match the convention used for every other config key.\n\n---------\n\nCo-authored-by: XananasX7 <xananasX7@users.noreply.github.com>\nCo-authored-by: Mark Scherer <dereuromark@users.noreply.github.com>",
          "is_bot": false,
          "headline": "[Security] Add allowedClasses config to RedisEngine to prevent PHP Ob…",
          "author_name": "XananasX",
          "author_login": "XananasX7",
          "committed_at": "2026-06-09T03:31:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "95e6af3d5f8b251374a5adce9bf8794ccc05cba4",
          "body": "* Add value types for registry array docblocks\n\n* Fix covariance and normalizeArray for tightened registry array types\n\nTightening the registry array docblocks made child overrides and the\nnormalizer body inconsistent with the new value types:\n\n- Narrow the child helper property docblocks to a strin\n[…]\nbclasses may extend the\nhelpers list with array config entries such as\n['Url', 'Html', 'Foo' => ['some' => 'config']]. Use the same value type\nas the parent property so those overrides stay covariant.",
          "is_bot": false,
          "headline": "Add value types for registry array docblocks (#19500)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-09T03:15:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "10314999a3af6314916dce99f890888059963a1f",
          "body": "…cov/codecov-action-7\n\nBump codecov/codecov-action from 6 to 7",
          "is_bot": false,
          "headline": "Merge pull request #19502 from cakephp/dependabot/github_actions/code…",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-08T17:49:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61331b2aff7bc562a82bda4b221d3c00bf721d91",
          "body": "Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6 to 7.\n- [Release notes](https://github.com/codecov/codecov-action/releases)\n- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/codecov/codecov-action/compare/v\n[…]\npendency-name: codecov/codecov-action\n  dependency-version: '7'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump codecov/codecov-action from 6 to 7",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-08T16:42:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b3b9b1ae2a16e48b249319ea2cefc1aef8840b06",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-08T04:24:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "191076a5be5e542d2f4853a9d455e7885b1db54b",
          "body": null,
          "is_bot": false,
          "headline": "Remove phpstan prefixed annotations. (#19499)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-07T21:44:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "397e28d80ad2cd664bef5b07e5adcedcd2eb6ff6",
          "body": "…498)\n\nThe split-package PHPStan validation requires sibling cakephp packages as\n`5.4.*@dev`. That constraint also matches already-published RC/stable tags,\nand composer prefers those tags over the dev branch. As a result the\nvalidation ran against released code that lags behind the monorepo: after\n\n[…]\nfore installing so composer resolves the dev-<branch>\nmirror of each sibling, matching the current source. The per-package cleanup\nalready restores composer.json, so the config toggles do not persist.",
          "is_bot": false,
          "headline": "Validate split packages against dev branches of sibling packages (#19…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-07T14:20:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b0ecc89fd24ee0d2a5bc3545faefd23b95e75700",
          "body": "…classes. (#19495)\n\n* Move InstanceConfigTrait into TranslateStrategyTrait from individual classes.\n\nThis makes LSPs like intelephense stop complaining about the use of $this->_config\nin TranslateStrategyTrait.\n\n* Add InstanceConfigTrait to StringTemplateTrait",
          "is_bot": false,
          "headline": "Move InstanceConfigTrait into TranslateStrategyTrait from individual …",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-07T13:52:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61d7335eee1383644fd3ae254a2799e4c47aeb53",
          "body": "- The definition lookups are now O(1) instead of O(n) iteration.\n- Calling add() multiple times with same id but different definition resolves to the\n  last definition set instead of the 1st.",
          "is_bot": false,
          "headline": "Fix implementation of DefinitionAggregrate (#19497)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-07T13:51:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1bd2b967767cb8960183a725be70df72f2f56de",
          "body": null,
          "is_bot": false,
          "headline": "Improve type declaration/inference (#19496)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-07T11:46:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3076e4c01ecec3a51baa16136054102007ac01e0",
          "body": "…outes (#19494)\n\nWhen a named route is found but matching fails (e.g. a passed parameter\ndoes not satisfy the route's regex patterns), the exception now lists the\nparameters that were passed. Previously the message only stated that\nmatching failed, giving no hint about which value was wrong.\n\nThe passed parameters are json-encoded; any percent signs are escaped so\nthe message survives CakeException's vsprintf() formatting unchanged.",
          "is_bot": false,
          "headline": "Include passed parameters in MissingRouteException for failed named r…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-06T18:19:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "903dc08b05d04fb6dfd4f339c584411b9e4cd16b",
          "body": "# Conflicts:\n#\tsrc/Database/phpstan.neon.dist",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/5.x' into 5.next",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-03T16:03:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c15736dff34f7a33533f34e20f4e2262bc4b472f",
          "body": "Bump structarmed version to ^0.11",
          "is_bot": false,
          "headline": "Bump StructArmed version to ^0.11 (#19490)",
          "author_name": "Abdul Malik Ikhsan",
          "author_login": "samsonasik",
          "committed_at": "2026-06-03T16:01:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a345a41abb31935626b1bea14f5ef37fdb7b2b5a",
          "body": "* Update supported version list\n\nWhen I was doing the last round of security releases, I noticed that our\npolicy document is missing several versions and needs to be updated as\ntime has passed.\n\nI've also moved 4.3 to dropped support. Looking at the recent usage\ndata, there is a low minority of usage for this release, with the bulk\nof the 4.3 usage coming from 4.4 and 4.6.\n\n* Update policy doc to link to github",
          "is_bot": false,
          "headline": "Update supported version list (#19480)",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-06-01T18:21:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8f68fd65b66f18c5bf191aadd3ed6b283a4a30c",
          "body": "* Add Datasource architecture check\n\n* Add green split package boundary rules\n\n* add strict structarmed ruleset (#19478)\n\n---------\n\nCo-authored-by: Kevin Pfeifer <info@pfiff.me>",
          "is_bot": false,
          "headline": "Add Datasource and split package architecture rules (#19468)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-01T16:52:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f53c05ae6a0bf838af9555a36f98cc80334ddbb3",
          "body": "Clarify ServerRequest::referer() $local docblock",
          "is_bot": false,
          "headline": "Merge pull request #19487 from cakephp/docblock-referer-local",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-06-01T16:31:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f4fe7dd605a33ff624457df834a9e28622402b1",
          "body": null,
          "is_bot": false,
          "headline": "Fix parameter list in beforeRedirect method documentation (#19489)",
          "author_name": "othercorey",
          "author_login": "othercorey",
          "committed_at": "2026-06-01T13:00:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46a2d260535abfb583651d8220273a49675b6928",
          "body": "* Remove stale PHPStan ignores from Database split package config\n\nnotIdentical.alwaysTrue and catch.neverThrown no longer match any\nreported errors when PHPStan runs against the isolated cakephp/database\npackage, so reportUnmatchedIgnoredErrors fails the \"Static Analysis for\nSplit Packages\" CI job.\n[…]\nnd not others. Re-add the ignore with reportUnmatched:\nfalse (and without count) so the split-package analysis passes whether or\nnot the error is reported, instead of flapping red in either direction.",
          "is_bot": false,
          "headline": "Remove stale PHPStan ignores from Database split package config (#19488)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-01T12:31:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "43e846de5ca95a5022a95272c2c5e51956523cf4",
          "body": "The $local param was documented as an attempt to return a local address,\nimplying a soft fallback. It is actually a hard contract: when true, a\nnon-same-origin referer returns null rather than the raw value. Reword the\ndocblock to describe both modes accurately.",
          "is_bot": false,
          "headline": "Clarify ServerRequest::referer() $local docblock",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-06-01T11:35:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "631b24a2221af53bcd86365faeb1435f162555a6",
          "body": null,
          "is_bot": false,
          "headline": "improve psalm taint handling (#19477)",
          "author_name": "Kevin Pfeifer",
          "author_login": "LordSimal",
          "committed_at": "2026-05-30T21:16:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21d140b88f2849a58771af0133f3dcf66c1da9b9",
          "body": null,
          "is_bot": false,
          "headline": "adjust content type negotation to use HTMLView over XMLView (#19483)",
          "author_name": "Kevin Pfeifer",
          "author_login": "LordSimal",
          "committed_at": "2026-05-30T21:12:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6df4808778865a2c366ba45111a7a4687377936a",
          "body": "…on-hydrated reads (#19441)\n\n* Add Table::findArray() and ArrayQuery for type-safe non-hydrated reads\n\nSplits hydrated and non-hydrated query paths at the source instead of\nmodeling both shapes in one SelectQuery<TEntity|array> union. Common\ncallers stay on find() and get SelectQuery<TEntity>; the r\n[…]\nhydrated` prefix still avoids the\nfind('unhydrated') dispatch collision.\n\nLow-level seam (unhydratedSelectQuery() / QueryFactory::unhydratedSelect())\nand the UnhydratedSelectQuery class are unchanged.",
          "is_bot": false,
          "headline": "Add Table::findUnhydrated() and UnhydratedSelectQuery for type-safe n…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-29T07:17:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f77b1f78ef774e9a7db16d8afdee9fee980801a0",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-28T19:37:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db156093a091bfd7767013dcfc17f47830e4117f",
          "body": null,
          "is_bot": false,
          "headline": "Exclude unneeded files from git archive (#19476)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-28T19:03:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5a5cfd43e4deae58ea4abda9cb637590ce7baf0",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-28T17:04:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fcf190e1cb32148221e430055e467998e1aaaae3",
          "body": null,
          "is_bot": false,
          "headline": "Bump phpstan to 2.2.0 (#19475)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-28T16:57:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "67ffec99dbaf96bdeb1c9a9d519e40c1e921339f",
          "body": "PluginApplicationInterface lost its `@template TSubject` in ba510db\n(\"Simplify generics template for event subject\"), but #19437\nreintroduced `PluginApplicationInterface<mixed>` in\nBasePlugin::registerEvents() during the subsequent merge.\n\nphpstan errors with `generics.notGeneric` on 5.next CI because the\ninterface no longer declares a template.",
          "is_bot": false,
          "headline": "Drop generic annotation from PluginApplicationInterface param (#19472)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-27T19:46:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b17c42d2f84eec7ffb00577a030ad88acb0834e",
          "body": "Shorten name",
          "is_bot": false,
          "headline": "5.x Release: Shorten name (#19471)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-27T14:53:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df7042ff8fd0b468365453d3be785047bf8f0317",
          "body": "* add DI capability to event listener registration\n\n* add ability to adjust plugin defined default event listeners\n\n* rename EventListenerRegistrationTrait\n\n* rework event DI feature\n\n* Simplify events registration (#19455)\n\nEvent registration for the app and plugins is now part of their\nrespective bootstrapping process itself.\n\n* Remove unused property\n\n* Optimize code\n\n---------\n\nCo-authored-by: ADmad <admad.coder@gmail.com>",
          "is_bot": false,
          "headline": "5.next: add DI capability to event listener registration (#19437)",
          "author_name": "Kevin Pfeifer",
          "author_login": "LordSimal",
          "committed_at": "2026-05-27T06:25:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6d8ab7da5f8a10ea5a4617216044108d81c4334",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-26T06:57:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37e10d87848903e63015c6c12ec7c40d8c1541a4",
          "body": "Skip SafeDeclareStrictTypesRector and RemoveUselessTernaryRector, which newly\nfire under rector 2.4: the former adds declare(strict_types=1) to test\nfixtures/config, the latter rewrites `$x ?: []` in ways that can change\nbehavior on undefined/empty values. Keeps the bump behavior-neutral.",
          "is_bot": false,
          "headline": "Bump rector to ~2.4 (#19465)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-24T15:52:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b194ffb1429cdc5da394350b3bdf611e81ec9dbd",
          "body": "* Re-enable SimplifyUselessVariableRector with only_direct_assign\n\nThe rule was fully skipped. The only_direct_assign option restricts it to\nthe safe `$x = expr; return $x;` simplification and avoids the riskier\ncompound-assignment rewrites, so it can be enabled again. Applies the two\nresulting simp\n[…]\nplifyUselessVariableRector across test files\n\nThe rule runs on all configured paths (config/contrib/src/tests); applying the\nremaining test-file simplifications so the rector dry-run gate stays clean.",
          "is_bot": false,
          "headline": "Re-enable SimplifyUselessVariableRector with only_direct_assign (#19464)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-24T15:52:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cdaca8c3b710789e8545bff5a83194a6b19cad46",
          "body": null,
          "is_bot": false,
          "headline": "Update version number to 5.3.6",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-05-23T16:55:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5718ced25a76993832b3bbb04f43342d256497a",
          "body": "* Prototype: CommandCollection::discoverDirectory()\n\nAlternative direction to exposing CommandScanner as public API.\n\nAdds a focused, intention-revealing public method on CommandCollection\nfor registering every command in a custom directory/namespace (e.g.\nsrc/Command/Maintenance) from Application::\n[…]\n* Remove comments on directory path normalization\n\nRemoved comments about normalizing file paths.\n\n* Apply review feedback: drop redundant separator in scanPlugin and reword discoverDirectory docblock",
          "is_bot": false,
          "headline": "CommandCollection::discoverDirectory() (alternative to #19400) (#19453)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-23T11:59:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bd0c242f99a9f0828fea03bc2333953b0e5ec2b2",
          "body": "Simplify generics template for event subject",
          "is_bot": false,
          "headline": "Merge pull request #19462 from cakephp/5.next-phpstan",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-22T04:49:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba510db0818d9b7b984aa2a11d900de7bdef156b",
          "body": null,
          "is_bot": false,
          "headline": "Simplify generics template for event subject",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-21T22:05:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc0d6c5cd2b5b44c800fa63cbdc4f451b61e4d39",
          "body": "…19419)\n\n* Add LoggedQuery::setRedactor() to scrub sensitive params from logs\n\nApps that bind cryptographic keys, passwords, or auth tokens as query\nparameters currently have those values rendered into every log surface\nthat consumes a LoggedQuery — file logs via __toString(), structured\nloggers via\n[…]\nceptions from the closure now propagate; a malformed return raises\na RuntimeException naming the offending type. Docblocks updated; the\ntwo prior fallback tests replaced with expectException variants.",
          "is_bot": false,
          "headline": "Add LoggedQuery::setRedactor() to scrub sensitive params from logs (#…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-21T20:55:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a2006bd1f5e0d8058b3cb0fb2066b29aa9054d17",
          "body": "Allow a configured default `order` to use builder, alias and combined\nsort keys (e.g. `'order' => ['best-deal' => 'asc']`). The default order\nis resolved through the same SortableFieldsBuilder as click-driven\nsorting, so locked SortFields and direction inversion behave identically.\n\nKeys the builder\n[…]\n the existing order de-duplication symmetric for prefixed vs\nunprefixed field names so a requested sort is not overridden by the\nresolved default.\n\nCo-authored-by: Mark Scherer <dereuromark@gmail.com>",
          "is_bot": false,
          "headline": "Resolve default order through SortableFieldsBuilder (#19446)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-21T20:54:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bbb22cbd76f1dd181c1315d67ed4a976941174a3",
          "body": null,
          "is_bot": false,
          "headline": "Supress phpstan error",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-21T20:01:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d09f811134b42e3e7d9c36b4b68056c224961fea",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-21T19:39:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fdb57bbed2ad57e70ce018e8391f547ae701de37",
          "body": "Update phpstan",
          "is_bot": false,
          "headline": "Merge pull request #19460 from cakephp/phpstan",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-21T19:38:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5ccddd12e3303dd2c222e14f3f9d38353a38d80",
          "body": null,
          "is_bot": false,
          "headline": "Update phpstan",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-21T19:15:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8c983cd5d83f0a7a5409b2edfb736e6667706c6",
          "body": "Relax template path checking for all types to be restricted to not\nescaping the base template path for the plugin scope. This should be\nmore lenient than before as we're not restricting elements and layouts\nto their specific directories.\n\nRefs #19447",
          "is_bot": false,
          "headline": "Improve tolerance of path checking in View (#19459)",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-05-21T09:58:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "360fb1224aec06260e2f66ae50a47b16ab30b017",
          "body": "Move association property name clash check to getter instead of setter.",
          "is_bot": false,
          "headline": "Merge pull request #19457 from cakephp/issue-19449",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-21T06:34:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b763beb3e4f7f05b09412d574aba12b9bc606b5",
          "body": "Doing the check in the setter causes problems when the db connection\nhasn't been setup yet.  Refs #19449",
          "is_bot": false,
          "headline": "Move association property name clash check to getter instead of setter.",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-21T06:33:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be31a476eefbe72ce38972aa1e76c5ce89e1012f",
          "body": "* Add Connection.afterCommit event dispatched on outermost commit\n\nProvides an event-based hook for listeners that need to run only after\nthe outermost transaction commits, regardless of how many ORM operations\nparticipated in it. This is the supported replacement for code that\npreviously relied on \n[…]\nn now implements EventDispatcherInterface and uses\nEventDispatcherTrait, with cakephp/event added as a database package\ndependency.\n\n* Trim editorializing sentence from Connection.afterCommit docblock",
          "is_bot": false,
          "headline": "Add Connection.afterCommit event for outermost-commit hooks (#19429)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-21T04:22:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "08019f5234a8976597823abdb771c33a72fd8c83",
          "body": "* Fix a potential file handling weakness in element()\n\nIf View::element() is supplied request data, element names can be\nmanipulated to include files outside of a view template path.\n\nThis could be leveraged to expose secrets, or application code.\n\nThank you to Nguyen Danh Quan (@z3moo) and Ta Quoc \n[…]\nth. The starts_with() guard still fires for the case it\nmatters: a traversal that actually resolves to an existing file\noutside the base path.\n\n---------\n\nCo-authored-by: mscherer <dereuromark@web.de>",
          "is_bot": false,
          "headline": "Fix a potential file handling weakness in element() (#19447)",
          "author_name": "Mark Story",
          "author_login": "markstory",
          "committed_at": "2026-05-20T17:39:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a3743c7185d8c0d5de4e6d3d4ad9fc5eb5fe959c",
          "body": null,
          "is_bot": false,
          "headline": "Allow setting custom plural rules (#19454)",
          "author_name": "gillux",
          "author_login": "jiru",
          "committed_at": "2026-05-20T12:41:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6f32e0c2f6072ebb793bb58c980fd4340716bbb",
          "body": null,
          "is_bot": false,
          "headline": "Improve error message for duplicate rule names (#19456)",
          "author_name": "Stuart",
          "author_login": "stuart897",
          "committed_at": "2026-05-20T10:27:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75b02a8f8032098303d40ce80d4db169f29b06fb",
          "body": "Fix malformed file path in CommandScanner::scanPlugin()",
          "is_bot": false,
          "headline": "Merge pull request #19452 from cakephp/fix-command-scanner-plugin-path",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-20T03:17:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d7143e586326ab8a6da45abaec4bdf8bba60d30",
          "body": null,
          "is_bot": false,
          "headline": "Document trailing directory separator requirement for scanDir() path",
          "author_name": "mscherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-20T02:44:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b3cfe556b0eb98df726d2db64322b11c14952dd",
          "body": "scanPlugin() concatenated the `Command` directory to the plugin class\npath without a trailing separator, so scanned plugin commands carried a\n`file` value like `.../src/CommandFooCommand.php` instead of\n`.../src/Command/FooCommand.php`.\n\nThe value is currently not consumed by the framework itself (command\nresolution only uses name/class), so this is an internal correctness\nfix with no behavior change for command execution. Add a focused\nregression test covering the scanned file path.",
          "is_bot": false,
          "headline": "Fix malformed file path in CommandScanner::scanPlugin()",
          "author_name": "mscherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-19T17:04:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "944660ce3ef0153da5366b8a0a0b3010407e3344",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "mscherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-18T15:26:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc13ed0794dfad5596ece442924e8282949cd215",
          "body": "…t (#19440)\n\nNarrow Table::find() to SelectQuery<TEntity> and make TSubject covariant\n\n`Table::find()` was annotated `SelectQuery<TEntity|array>` to model\nthe option of switching to array rows via disableHydration(). In\npractice the array half is rarely used and forces every caller of\nfind() — which\n[…]\nto the parameter type.\n\nCombined with #19439 (typing SelectQuery::first()/firstOrFail() via\nTSubject), this lets `find()->first()` resolve to `TEntity|null` end\nto end without caller-side annotations.",
          "is_bot": false,
          "headline": "Narrow Table::find() to SelectQuery<TEntity> + make TSubject covarian…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-18T07:58:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "16c1175f3649ec695c90ea17be8d0b7d6048efdd",
          "body": "* Add Lock component for distributed locking\n\nIntroduces a new Lock component that provides distributed locking\nmechanisms to prevent race conditions when multiple processes access\nshared resources.\n\nFeatures:\n- LockInterface defines the contract for lock engines\n- LockInstance value object represen\n[…]\nEngine: the\nengine now accepts Redis|RedisCluster, and cluster mode is enabled by\npassing nodes (and optionally clusterName). All Lua scripts use a\nsingle key so cluster hash-slot rules are preserved.",
          "is_bot": false,
          "headline": "5.next: Add Lock component for distributed locking (#19370)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-15T03:38:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "68a58c36440f8939e2260a085ca92b2cb8b3a55d",
          "body": null,
          "is_bot": false,
          "headline": "Fix `@see` annotations (#19443)",
          "author_name": "ADmad",
          "author_login": "ADmad",
          "committed_at": "2026-05-15T03:31:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42d929dffea5d848e70d9017312d28454f2a263c",
          "body": "…9439)\n\nThe ORM SelectQuery already declares `@template TSubject of EntityInterface|array`\nand propagates that template through `all()`, `findAll()` and (after #19388 /\n#19438) through Table::find()/findOrCreate()/loadInto() and the class-level\nTEntity. But the two most common consumption points — f\n[…]\nhod's `EntityInterface` return. Switching\nto `if (!$node instanceof EntityInterface)` preserves the existing runtime\nbehavior (TreeBehavior never calls disableHydration) and makes the intent\nexplicit.",
          "is_bot": false,
          "headline": "Type SelectQuery::first()/firstOrFail() via the TSubject template (#1…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-14T10:28:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1772b2d139df8175a58418d7ba66f6421ee28b02",
          "body": "# Conflicts:\n#\tsrc/ORM/Table.php",
          "is_bot": false,
          "headline": "Merge branch '5.x' into 5.next",
          "author_name": "Kevin Pfeifer",
          "author_login": "LordSimal",
          "committed_at": "2026-05-14T07:37:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d44be48e3ed5c37812062cb5c42d601ea3a0c5fb",
          "body": "…9438)\n\n* Wire find()/findOrCreate() return types to the Table entity template\n\nThe class-level entity template (TEntity, added on 5.x ahead of 5.4) is\nnot yet propagated to the find-family return annotations. find() and\nfindOrCreate() (and the related findList/findThreaded/subquery/\nfindOrCreate he\n[…]\nonly fires when no\nModel/Entity class is discovered, at which point the typed contract\nis degraded anyway.\n\nphpunit ORM + Association tests green (435), composer stan and\ncomposer cs-check both clean.",
          "is_bot": false,
          "headline": "Propagate TEntity to find()/findOrCreate()/loadInto() and friends (#1…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-14T06:44:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e6ad0dfa4657f94b79c9d06df785d7d124fde26e",
          "body": "* 5.next: Extract AbstractStreamResponse from JsonStreamResponse\n\nPull the streaming lifecycle (CallbackStream wiring, output/flush\nprimitives, X-Accel-Buffering header, charset resolution, flush-threshold\ncounter, PSR-7 withStreamOptions / getStreamOptions, optional Log shim)\ninto a new abstract ba\n[…]\nm PHPUnit without manipulating\nbuffers the runner owns. The same lines were uncovered in the original\nJsonStreamResponse PR #19367 (97.26% patch coverage) and accepted; this\nPR follows that precedent.",
          "is_bot": false,
          "headline": "5.next: Extract AbstractStreamResponse from JsonStreamResponse (#19431)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-13T02:36:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c3f22be9db3040059474e09bfa95d51eb96f0cd8",
          "body": "The Cake\\ORM\\Query class is a class_alias for Cake\\ORM\\Query\\SelectQuery\non 5.x, so the existing references still resolve. Retarget see-tags and\nprose at the concrete SelectQuery class for clarity. The BC autoload\ntrigger at the bottom of src/ORM/Query/SelectQuery.php is intentionally\nkept (the alias still needs loading on 5.x).\n\nDocblock-only; no behavior change.",
          "is_bot": false,
          "headline": "Update ORM Query docblock references to SelectQuery (#19436)",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-12T14:43:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d45b48aae8ee8839d87451ddbb38b88c91936aa",
          "body": "…19425)\n\nReject unknown tokens after a command that has sibling subcommands\n\nPreviously, running e.g. `bin/cake i18n nonsense` silently invoked\nI18nCommand because `i18n` is a registered command, and the leftover\ntoken `nonsense` was passed through as a positional argument that the\nparser silently s\n[…]\nt\nin CommandRunner with a message that lists the available subcommands.\n\nCommands without siblings, commands with declared positional arguments,\nand option-like tokens (`--help`, `-v`) are unaffected.",
          "is_bot": false,
          "headline": "CLI: reject unknown tokens after a parent command with subcommands (#…",
          "author_name": "Mark Scherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-12T12:20:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c6a65ea18fc28d58a964f213fc5dcf55adee1410",
          "body": "The previous wording 'returns the right entity' is misleading: the test\nactually verifies that the PersistenceFailedException raised by\ndeleteOrFail() carries the failing entity.",
          "is_bot": false,
          "headline": "Fix stale docblock on testDeleteOrFailGetEntity",
          "author_name": "mscherer",
          "author_login": "dereuromark",
          "committed_at": "2026-05-12T11:19:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 806,
      "latest_release_at": "2026-07-19T16:08:59Z",
      "latest_release_tag": "5.4.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 52,
      "days_since_latest_release": 2,
      "mean_days_between_releases": 2.4
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "cakephp/cakephp",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "framework",
            "orm",
            "form",
            "mvc",
            "validation",
            "dry",
            "psr-7",
            "rapid-development",
            "conventions over configuration"
          ],
          "ecosystem": "packagist",
          "matches_repo": true,
          "registry_url": "https://packagist.org/packages/cakephp/cakephp",
          "is_deprecated": false,
          "latest_version": "5.4.0",
          "repository_url": "https://github.com/cakephp/cakephp",
          "versions_count": 456,
          "total_downloads": 19814486,
          "dependents_count": 1968,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 403000,
          "first_published_at": null,
          "latest_published_at": "2026-07-19T15:31:30Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 2
        }
      ]
    },
    "popularity": {
      "forks": 3378,
      "stars": 8794,
      "watchers": 515,
      "fork_history": {
        "days": [
          {
            "date": "2017-04-25",
            "count": 2
          },
          {
            "date": "2017-04-26",
            "count": 1
          },
          {
            "date": "2017-04-29",
            "count": 3
          },
          {
            "date": "2017-04-30",
            "count": 1
          },
          {
            "date": "2017-05-01",
            "count": 1
          },
          {
            "date": "2017-05-02",
            "count": 1
          },
          {
            "date": "2017-05-04",
            "count": 2
          },
          {
            "date": "2017-05-05",
            "count": 1
          },
          {
            "date": "2017-05-06",
            "count": 1
          },
          {
            "date": "2017-05-07",
            "count": 1
          },
          {
            "date": "2017-05-09",
            "count": 1
          },
          {
            "date": "2017-05-11",
            "count": 1
          },
          {
            "date": "2017-05-12",
            "count": 2
          },
          {
            "date": "2017-05-13",
            "count": 1
          },
          {
            "date": "2017-05-16",
            "count": 2
          },
          {
            "date": "2017-05-17",
            "count": 1
          },
          {
            "date": "2017-05-18",
            "count": 2
          },
          {
            "date": "2017-05-23",
            "count": 1
          },
          {
            "date": "2017-05-25",
            "count": 1
          },
          {
            "date": "2017-05-26",
            "count": 1
          },
          {
            "date": "2017-05-29",
            "count": 4
          },
          {
            "date": "2017-05-30",
            "count": 1
          },
          {
            "date": "2017-06-01",
            "count": 1
          },
          {
            "date": "2017-06-03",
            "count": 1
          },
          {
            "date": "2017-06-05",
            "count": 1
          },
          {
            "date": "2017-06-06",
            "count": 2
          },
          {
            "date": "2017-06-08",
            "count": 5
          },
          {
            "date": "2017-06-11",
            "count": 1
          },
          {
            "date": "2017-06-13",
            "count": 1
          },
          {
            "date": "2017-06-14",
            "count": 1
          },
          {
            "date": "2017-06-16",
            "count": 2
          },
          {
            "date": "2017-06-19",
            "count": 1
          },
          {
            "date": "2017-06-21",
            "count": 1
          },
          {
            "date": "2017-06-22",
            "count": 2
          },
          {
            "date": "2017-06-23",
            "count": 1
          },
          {
            "date": "2017-06-26",
            "count": 1
          },
          {
            "date": "2017-06-27",
            "count": 1
          },
          {
            "date": "2017-06-28",
            "count": 1
          },
          {
            "date": "2017-06-29",
            "count": 2
          },
          {
            "date": "2017-06-30",
            "count": 2
          },
          {
            "date": "2017-07-01",
            "count": 1
          },
          {
            "date": "2017-07-02",
            "count": 1
          },
          {
            "date": "2017-07-03",
            "count": 2
          },
          {
            "date": "2017-07-04",
            "count": 1
          },
          {
            "date": "2017-07-06",
            "count": 1
          },
          {
            "date": "2017-07-07",
            "count": 1
          },
          {
            "date": "2017-07-08",
            "count": 3
          },
          {
            "date": "2017-07-10",
            "count": 1
          },
          {
            "date": "2017-07-11",
            "count": 1
          },
          {
            "date": "2017-07-12",
            "count": 1
          },
          {
            "date": "2017-07-17",
            "count": 1
          },
          {
            "date": "2017-07-18",
            "count": 1
          },
          {
            "date": "2017-07-19",
            "count": 1
          },
          {
            "date": "2017-07-22",
            "count": 1
          },
          {
            "date": "2017-07-25",
            "count": 2
          },
          {
            "date": "2017-07-27",
            "count": 2
          },
          {
            "date": "2017-07-28",
            "count": 2
          },
          {
            "date": "2017-07-31",
            "count": 1
          },
          {
            "date": "2017-08-02",
            "count": 1
          },
          {
            "date": "2017-08-03",
            "count": 3
          },
          {
            "date": "2017-08-04",
            "count": 4
          },
          {
            "date": "2017-08-06",
            "count": 1
          },
          {
            "date": "2017-08-07",
            "count": 1
          },
          {
            "date": "2017-08-09",
            "count": 2
          },
          {
            "date": "2017-08-10",
            "count": 2
          },
          {
            "date": "2017-08-11",
            "count": 2
          },
          {
            "date": "2017-08-12",
            "count": 2
          },
          {
            "date": "2017-08-14",
            "count": 1
          },
          {
            "date": "2017-08-15",
            "count": 2
          },
          {
            "date": "2017-08-16",
            "count": 1
          },
          {
            "date": "2017-08-18",
            "count": 1
          },
          {
            "date": "2017-08-19",
            "count": 1
          },
          {
            "date": "2017-08-21",
            "count": 1
          },
          {
            "date": "2017-08-22",
            "count": 1
          },
          {
            "date": "2017-08-23",
            "count": 1
          },
          {
            "date": "2017-08-24",
            "count": 1
          },
          {
            "date": "2017-08-26",
            "count": 1
          },
          {
            "date": "2017-08-29",
            "count": 1
          },
          {
            "date": "2017-08-30",
            "count": 1
          },
          {
            "date": "2017-08-31",
            "count": 1
          },
          {
            "date": "2017-09-01",
            "count": 1
          },
          {
            "date": "2017-09-02",
            "count": 1
          },
          {
            "date": "2017-09-04",
            "count": 1
          },
          {
            "date": "2017-09-09",
            "count": 1
          },
          {
            "date": "2017-09-13",
            "count": 1
          },
          {
            "date": "2017-09-14",
            "count": 1
          },
          {
            "date": "2017-09-15",
            "count": 1
          },
          {
            "date": "2017-09-19",
            "count": 4
          },
          {
            "date": "2017-09-20",
            "count": 1
          },
          {
            "date": "2017-09-21",
            "count": 4
          },
          {
            "date": "2017-09-24",
            "count": 1
          },
          {
            "date": "2017-09-26",
            "count": 1
          },
          {
            "date": "2017-09-27",
            "count": 1
          },
          {
            "date": "2017-09-30",
            "count": 1
          },
          {
            "date": "2017-10-04",
            "count": 1
          },
          {
            "date": "2017-10-05",
            "count": 1
          },
          {
            "date": "2017-10-06",
            "count": 2
          },
          {
            "date": "2017-10-09",
            "count": 2
          },
          {
            "date": "2017-10-10",
            "count": 1
          },
          {
            "date": "2017-10-19",
            "count": 3
          },
          {
            "date": "2017-10-21",
            "count": 1
          },
          {
            "date": "2017-10-24",
            "count": 1
          },
          {
            "date": "2017-10-26",
            "count": 1
          },
          {
            "date": "2017-10-27",
            "count": 1
          },
          {
            "date": "2017-10-30",
            "count": 1
          },
          {
            "date": "2017-11-01",
            "count": 2
          },
          {
            "date": "2017-11-02",
            "count": 1
          },
          {
            "date": "2017-11-05",
            "count": 1
          },
          {
            "date": "2017-11-07",
            "count": 1
          },
          {
            "date": "2017-11-11",
            "count": 2
          },
          {
            "date": "2017-11-16",
            "count": 2
          },
          {
            "date": "2017-11-17",
            "count": 1
          },
          {
            "date": "2017-11-18",
            "count": 1
          },
          {
            "date": "2017-11-27",
            "count": 1
          },
          {
            "date": "2017-11-28",
            "count": 1
          },
          {
            "date": "2017-12-01",
            "count": 1
          },
          {
            "date": "2017-12-05",
            "count": 1
          },
          {
            "date": "2017-12-06",
            "count": 1
          },
          {
            "date": "2017-12-07",
            "count": 1
          },
          {
            "date": "2017-12-15",
            "count": 2
          },
          {
            "date": "2017-12-16",
            "count": 2
          },
          {
            "date": "2017-12-20",
            "count": 1
          },
          {
            "date": "2017-12-21",
            "count": 2
          },
          {
            "date": "2017-12-29",
            "count": 1
          },
          {
            "date": "2017-12-31",
            "count": 1
          },
          {
            "date": "2018-01-02",
            "count": 1
          },
          {
            "date": "2018-01-05",
            "count": 1
          },
          {
            "date": "2018-01-08",
            "count": 1
          },
          {
            "date": "2018-01-09",
            "count": 2
          },
          {
            "date": "2018-01-15",
            "count": 2
          },
          {
            "date": "2018-01-18",
            "count": 1
          },
          {
            "date": "2018-01-21",
            "count": 1
          },
          {
            "date": "2018-01-23",
            "count": 1
          },
          {
            "date": "2018-01-24",
            "count": 1
          },
          {
            "date": "2018-01-31",
            "count": 1
          },
          {
            "date": "2018-02-01",
            "count": 1
          },
          {
            "date": "2018-02-05",
            "count": 1
          },
          {
            "date": "2018-02-08",
            "count": 1
          },
          {
            "date": "2018-02-09",
            "count": 1
          },
          {
            "date": "2018-02-11",
            "count": 1
          },
          {
            "date": "2018-02-13",
            "count": 2
          },
          {
            "date": "2018-02-14",
            "count": 1
          },
          {
            "date": "2018-02-15",
            "count": 1
          },
          {
            "date": "2018-02-16",
            "count": 1
          },
          {
            "date": "2018-02-17",
            "count": 1
          },
          {
            "date": "2018-02-19",
            "count": 2
          },
          {
            "date": "2018-02-22",
            "count": 1
          },
          {
            "date": "2018-02-23",
            "count": 3
          },
          {
            "date": "2018-02-27",
            "count": 1
          },
          {
            "date": "2018-02-28",
            "count": 2
          },
          {
            "date": "2018-03-01",
            "count": 1
          },
          {
            "date": "2018-03-04",
            "count": 1
          },
          {
            "date": "2018-03-05",
            "count": 1
          },
          {
            "date": "2018-03-06",
            "count": 1
          },
          {
            "date": "2018-03-08",
            "count": 1
          },
          {
            "date": "2018-03-10",
            "count": 1
          },
          {
            "date": "2018-03-12",
            "count": 1
          },
          {
            "date": "2018-03-13",
            "count": 1
          },
          {
            "date": "2018-03-14",
            "count": 1
          },
          {
            "date": "2018-03-15",
            "count": 2
          },
          {
            "date": "2018-03-17",
            "count": 1
          },
          {
            "date": "2018-03-18",
            "count": 1
          },
          {
            "date": "2018-03-20",
            "count": 1
          },
          {
            "date": "2018-03-21",
            "count": 1
          },
          {
            "date": "2018-03-22",
            "count": 2
          },
          {
            "date": "2018-03-23",
            "count": 2
          },
          {
            "date": "2018-03-28",
            "count": 2
          },
          {
            "date": "2018-03-29",
            "count": 2
          },
          {
            "date": "2018-03-31",
            "count": 1
          },
          {
            "date": "2018-04-02",
            "count": 5
          },
          {
            "date": "2018-04-04",
            "count": 1
          },
          {
            "date": "2018-04-07",
            "count": 1
          },
          {
            "date": "2018-04-08",
            "count": 1
          },
          {
            "date": "2018-04-10",
            "count": 1
          },
          {
            "date": "2018-04-12",
            "count": 1
          },
          {
            "date": "2018-04-15",
            "count": 1
          },
          {
            "date": "2018-04-16",
            "count": 1
          },
          {
            "date": "2018-04-18",
            "count": 1
          },
          {
            "date": "2018-04-19",
            "count": 1
          },
          {
            "date": "2018-04-23",
            "count": 1
          },
          {
            "date": "2018-04-26",
            "count": 1
          },
          {
            "date": "2018-05-06",
            "count": 1
          },
          {
            "date": "2018-05-09",
            "count": 2
          },
          {
            "date": "2018-05-17",
            "count": 1
          },
          {
            "date": "2018-05-19",
            "count": 1
          },
          {
            "date": "2018-05-20",
            "count": 1
          },
          {
            "date": "2018-05-23",
            "count": 2
          },
          {
            "date": "2018-05-24",
            "count": 3
          },
          {
            "date": "2018-05-28",
            "count": 1
          },
          {
            "date": "2018-05-30",
            "count": 1
          },
          {
            "date": "2018-05-31",
            "count": 3
          },
          {
            "date": "2018-06-01",
            "count": 1
          },
          {
            "date": "2018-06-02",
            "count": 1
          },
          {
            "date": "2018-06-04",
            "count": 1
          },
          {
            "date": "2018-06-06",
            "count": 1
          },
          {
            "date": "2018-06-08",
            "count": 1
          },
          {
            "date": "2018-06-09",
            "count": 1
          },
          {
            "date": "2018-06-11",
            "count": 1
          },
          {
            "date": "2018-06-12",
            "count": 1
          },
          {
            "date": "2018-06-14",
            "count": 3
          },
          {
            "date": "2018-06-17",
            "count": 1
          },
          {
            "date": "2018-06-18",
            "count": 2
          },
          {
            "date": "2018-06-21",
            "count": 1
          },
          {
            "date": "2018-06-24",
            "count": 1
          },
          {
            "date": "2018-06-26",
            "count": 1
          },
          {
            "date": "2018-07-05",
            "count": 1
          },
          {
            "date": "2018-07-07",
            "count": 1
          },
          {
            "date": "2018-07-15",
            "count": 1
          },
          {
            "date": "2018-07-18",
            "count": 1
          },
          {
            "date": "2018-07-19",
            "count": 2
          },
          {
            "date": "2018-07-20",
            "count": 1
          },
          {
            "date": "2018-07-23",
            "count": 1
          },
          {
            "date": "2018-08-06",
            "count": 1
          },
          {
            "date": "2018-08-07",
            "count": 2
          },
          {
            "date": "2018-08-08",
            "count": 1
          },
          {
            "date": "2018-08-09",
            "count": 1
          },
          {
            "date": "2018-08-10",
            "count": 1
          },
          {
            "date": "2018-08-11",
            "count": 1
          },
          {
            "date": "2018-08-14",
            "count": 1
          },
          {
            "date": "2018-08-15",
            "count": 1
          },
          {
            "date": "2018-08-20",
            "count": 1
          },
          {
            "date": "2018-08-23",
            "count": 1
          },
          {
            "date": "2018-08-27",
            "count": 3
          },
          {
            "date": "2018-09-01",
            "count": 1
          },
          {
            "date": "2018-09-07",
            "count": 1
          },
          {
            "date": "2018-09-11",
            "count": 1
          },
          {
            "date": "2018-09-13",
            "count": 1
          },
          {
            "date": "2018-09-14",
            "count": 1
          },
          {
            "date": "2018-09-18",
            "count": 1
          },
          {
            "date": "2018-09-19",
            "count": 2
          },
          {
            "date": "2018-09-22",
            "count": 1
          },
          {
            "date": "2018-09-23",
            "count": 2
          },
          {
            "date": "2018-09-25",
            "count": 1
          },
          {
            "date": "2018-09-27",
            "count": 1
          },
          {
            "date": "2018-09-28",
            "count": 1
          },
          {
            "date": "2018-10-06",
            "count": 1
          },
          {
            "date": "2018-10-07",
            "count": 1
          },
          {
            "date": "2018-10-10",
            "count": 1
          },
          {
            "date": "2018-10-11",
            "count": 2
          },
          {
            "date": "2018-10-14",
            "count": 1
          },
          {
            "date": "2018-10-16",
            "count": 2
          },
          {
            "date": "2018-10-18",
            "count": 1
          },
          {
            "date": "2018-10-20",
            "count": 2
          },
          {
            "date": "2018-10-22",
            "count": 1
          },
          {
            "date": "2018-10-24",
            "count": 1
          },
          {
            "date": "2018-10-25",
            "count": 1
          },
          {
            "date": "2018-10-28",
            "count": 2
          },
          {
            "date": "2018-10-29",
            "count": 1
          },
          {
            "date": "2018-11-02",
            "count": 2
          },
          {
            "date": "2018-11-08",
            "count": 1
          },
          {
            "date": "2018-11-09",
            "count": 3
          },
          {
            "date": "2018-11-12",
            "count": 1
          },
          {
            "date": "2018-11-21",
            "count": 1
          },
          {
            "date": "2018-11-26",
            "count": 1
          },
          {
            "date": "2018-11-28",
            "count": 1
          },
          {
            "date": "2018-11-29",
            "count": 1
          },
          {
            "date": "2018-11-30",
            "count": 2
          },
          {
            "date": "2018-12-01",
            "count": 1
          },
          {
            "date": "2018-12-09",
            "count": 1
          },
          {
            "date": "2018-12-10",
            "count": 1
          },
          {
            "date": "2018-12-11",
            "count": 1
          },
          {
            "date": "2018-12-13",
            "count": 1
          },
          {
            "date": "2018-12-14",
            "count": 1
          },
          {
            "date": "2018-12-16",
            "count": 1
          },
          {
            "date": "2018-12-17",
            "count": 2
          },
          {
            "date": "2018-12-18",
            "count": 1
          },
          {
            "date": "2018-12-19",
            "count": 1
          },
          {
            "date": "2018-12-20",
            "count": 1
          },
          {
            "date": "2019-01-02",
            "count": 2
          },
          {
            "date": "2019-01-03",
            "count": 1
          },
          {
            "date": "2019-01-04",
            "count": 1
          },
          {
            "date": "2019-01-05",
            "count": 2
          },
          {
            "date": "2019-01-07",
            "count": 1
          },
          {
            "date": "2019-01-08",
            "count": 2
          },
          {
            "date": "2019-01-09",
            "count": 1
          },
          {
            "date": "2019-01-11",
            "count": 1
          },
          {
            "date": "2019-01-16",
            "count": 1
          },
          {
            "date": "2019-01-17",
            "count": 1
          },
          {
            "date": "2019-01-22",
            "count": 1
          },
          {
            "date": "2019-01-23",
            "count": 3
          },
          {
            "date": "2019-01-25",
            "count": 1
          },
          {
            "date": "2019-01-26",
            "count": 1
          },
          {
            "date": "2019-01-30",
            "count": 1
          },
          {
            "date": "2019-01-31",
            "count": 1
          },
          {
            "date": "2019-02-06",
            "count": 1
          },
          {
            "date": "2019-02-07",
            "count": 3
          },
          {
            "date": "2019-02-13",
            "count": 1
          },
          {
            "date": "2019-02-15",
            "count": 1
          },
          {
            "date": "2019-02-19",
            "count": 1
          },
          {
            "date": "2019-02-21",
            "count": 2
          },
          {
            "date": "2019-02-26",
            "count": 1
          },
          {
            "date": "2019-02-27",
            "count": 2
          },
          {
            "date": "2019-02-28",
            "count": 1
          },
          {
            "date": "2019-03-01",
            "count": 1
          },
          {
            "date": "2019-03-03",
            "count": 1
          },
          {
            "date": "2019-03-04",
            "count": 1
          },
          {
            "date": "2019-03-05",
            "count": 1
          },
          {
            "date": "2019-03-06",
            "count": 1
          },
          {
            "date": "2019-03-08",
            "count": 1
          },
          {
            "date": "2019-03-09",
            "count": 2
          },
          {
            "date": "2019-03-10",
            "count": 1
          },
          {
            "date": "2019-03-11",
            "count": 1
          },
          {
            "date": "2019-03-12",
            "count": 2
          },
          {
            "date": "2019-03-13",
            "count": 2
          },
          {
            "date": "2019-03-14",
            "count": 2
          },
          {
            "date": "2019-03-19",
            "count": 2
          },
          {
            "date": "2019-03-21",
            "count": 1
          },
          {
            "date": "2019-03-25",
            "count": 1
          },
          {
            "date": "2019-03-26",
            "count": 1
          },
          {
            "date": "2019-04-01",
            "count": 1
          },
          {
            "date": "2019-04-04",
            "count": 2
          },
          {
            "date": "2019-04-14",
            "count": 1
          },
          {
            "date": "2019-04-16",
            "count": 2
          },
          {
            "date": "2019-04-23",
            "count": 1
          },
          {
            "date": "2019-04-28",
            "count": 1
          },
          {
            "date": "2019-05-02",
            "count": 1
          },
          {
            "date": "2019-05-03",
            "count": 1
          },
          {
            "date": "2019-05-06",
            "count": 2
          },
          {
            "date": "2019-05-07",
            "count": 1
          },
          {
            "date": "2019-05-08",
            "count": 1
          },
          {
            "date": "2019-05-10",
            "count": 1
          },
          {
            "date": "2019-05-12",
            "count": 1
          },
          {
            "date": "2019-05-13",
            "count": 1
          },
          {
            "date": "2019-05-14",
            "count": 1
          },
          {
            "date": "2019-05-15",
            "count": 1
          },
          {
            "date": "2019-05-31",
            "count": 1
          },
          {
            "date": "2019-06-03",
            "count": 1
          },
          {
            "date": "2019-06-10",
            "count": 1
          },
          {
            "date": "2019-06-12",
            "count": 2
          },
          {
            "date": "2019-06-18",
            "count": 2
          },
          {
            "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-05",
            "count": 2
          },
          {
            "date": "2019-07-08",
            "count": 2
          },
          {
            "date": "2019-07-09",
            "count": 1
          },
          {
            "date": "2019-07-16",
            "count": 1
          },
          {
            "date": "2019-07-18",
            "count": 1
          },
          {
            "date": "2019-07-20",
            "count": 1
          },
          {
            "date": "2019-07-23",
            "count": 1
          },
          {
            "date": "2019-07-24",
            "count": 1
          },
          {
            "date": "2019-07-25",
            "count": 1
          },
          {
            "date": "2019-07-26",
            "count": 2
          },
          {
            "date": "2019-07-29",
            "count": 1
          },
          {
            "date": "2019-07-30",
            "count": 1
          },
          {
            "date": "2019-08-03",
            "count": 1
          },
          {
            "date": "2019-08-05",
            "count": 1
          },
          {
            "date": "2019-08-13",
            "count": 1
          },
          {
            "date": "2019-08-16",
            "count": 1
          },
          {
            "date": "2019-08-17",
            "count": 1
          },
          {
            "date": "2019-08-19",
            "count": 1
          },
          {
            "date": "2019-08-20",
            "count": 1
          },
          {
            "date": "2019-08-21",
            "count": 1
          },
          {
            "date": "2019-08-22",
            "count": 2
          },
          {
            "date": "2019-08-25",
            "count": 1
          },
          {
            "date": "2019-08-26",
            "count": 2
          },
          {
            "date": "2019-08-28",
            "count": 2
          },
          {
            "date": "2019-08-30",
            "count": 1
          },
          {
            "date": "2019-09-03",
            "count": 1
          },
          {
            "date": "2019-09-04",
            "count": 3
          },
          {
            "date": "2019-09-06",
            "count": 1
          },
          {
            "date": "2019-09-10",
            "count": 1
          },
          {
            "date": "2019-09-14",
            "count": 1
          },
          {
            "date": "2019-09-17",
            "count": 1
          },
          {
            "date": "2019-09-23",
            "count": 1
          },
          {
            "date": "2019-09-24",
            "count": 1
          },
          {
            "date": "2019-09-25",
            "count": 3
          },
          {
            "date": "2019-09-26",
            "count": 1
          },
          {
            "date": "2019-09-30",
            "count": 1
          },
          {
            "date": "2019-10-01",
            "count": 1
          },
          {
            "date": "2019-10-02",
            "count": 1
          },
          {
            "date": "2019-10-05",
            "count": 1
          },
          {
            "date": "2019-10-07",
            "count": 2
          },
          {
            "date": "2019-10-09",
            "count": 1
          },
          {
            "date": "2019-10-10",
            "count": 1
          },
          {
            "date": "2019-10-12",
            "count": 1
          },
          {
            "date": "2019-10-14",
            "count": 2
          },
          {
            "date": "2019-10-18",
            "count": 1
          },
          {
            "date": "2019-10-29",
            "count": 1
          },
          {
            "date": "2019-10-31",
            "count": 1
          },
          {
            "date": "2019-11-02",
            "count": 1
          },
          {
            "date": "2019-11-06",
            "count": 2
          },
          {
            "date": "2019-11-10",
            "count": 1
          },
          {
            "date": "2019-11-13",
            "count": 1
          },
          {
            "date": "2019-11-17",
            "count": 1
          },
          {
            "date": "2019-11-19",
            "count": 1
          },
          {
            "date": "2019-11-20",
            "count": 1
          },
          {
            "date": "2019-11-23",
            "count": 1
          },
          {
            "date": "2019-11-26",
            "count": 1
          },
          {
            "date": "2019-11-28",
            "count": 1
          },
          {
            "date": "2019-11-29",
            "count": 1
          },
          {
            "date": "2019-12-01",
            "count": 1
          },
          {
            "date": "2019-12-05",
            "count": 1
          },
          {
            "date": "2019-12-06",
            "count": 1
          },
          {
            "date": "2019-12-09",
            "count": 1
          },
          {
            "date": "2019-12-11",
            "count": 1
          },
          {
            "date": "2019-12-13",
            "count": 1
          },
          {
            "date": "2019-12-16",
            "count": 1
          },
          {
            "date": "2019-12-18",
            "count": 1
          },
          {
            "date": "2019-12-19",
            "count": 1
          },
          {
            "date": "2019-12-20",
            "count": 2
          },
          {
            "date": "2019-12-23",
            "count": 1
          },
          {
            "date": "2019-12-24",
            "count": 1
          },
          {
            "date": "2019-12-30",
            "count": 2
          },
          {
            "date": "2020-01-03",
            "count": 1
          },
          {
            "date": "2020-01-04",
            "count": 1
          },
          {
            "date": "2020-01-08",
            "count": 1
          },
          {
            "date": "2020-01-09",
            "count": 1
          },
          {
            "date": "2020-01-11",
            "count": 1
          },
          {
            "date": "2020-01-14",
            "count": 1
          },
          {
            "date": "2020-01-17",
            "count": 1
          },
          {
            "date": "2020-01-22",
            "count": 1
          },
          {
            "date": "2020-01-23",
            "count": 2
          },
          {
            "date": "2020-01-24",
            "count": 1
          },
          {
            "date": "2020-01-27",
            "count": 1
          },
          {
            "date": "2020-01-28",
            "count": 1
          },
          {
            "date": "2020-01-30",
            "count": 1
          },
          {
            "date": "2020-01-31",
            "count": 1
          },
          {
            "date": "2020-02-06",
            "count": 1
          },
          {
            "date": "2020-02-10",
            "count": 2
          },
          {
            "date": "2020-02-13",
            "count": 1
          },
          {
            "date": "2020-02-19",
            "count": 1
          },
          {
            "date": "2020-02-20",
            "count": 1
          },
          {
            "date": "2020-02-24",
            "count": 1
          },
          {
            "date": "2020-02-25",
            "count": 1
          },
          {
            "date": "2020-02-27",
            "count": 1
          },
          {
            "date": "2020-02-28",
            "count": 1
          },
          {
            "date": "2020-03-01",
            "count": 1
          },
          {
            "date": "2020-03-04",
            "count": 1
          },
          {
            "date": "2020-03-05",
            "count": 1
          },
          {
            "date": "2020-03-09",
            "count": 1
          },
          {
            "date": "2020-03-13",
            "count": 1
          },
          {
            "date": "2020-03-17",
            "count": 1
          },
          {
            "date": "2020-03-28",
            "count": 1
          },
          {
            "date": "2020-03-30",
            "count": 1
          },
          {
            "date": "2020-04-01",
            "count": 1
          },
          {
            "date": "2020-04-05",
            "count": 1
          },
          {
            "date": "2020-04-14",
            "count": 1
          },
          {
            "date": "2020-04-16",
            "count": 1
          },
          {
            "date": "2020-04-21",
            "count": 1
          },
          {
            "date": "2020-04-26",
            "count": 2
          },
          {
            "date": "2020-04-27",
            "count": 1
          },
          {
            "date": "2020-04-28",
            "count": 1
          },
          {
            "date": "2020-05-03",
            "count": 1
          },
          {
            "date": "2020-05-05",
            "count": 1
          },
          {
            "date": "2020-05-12",
            "count": 1
          },
          {
            "date": "2020-05-20",
            "count": 1
          },
          {
            "date": "2020-05-22",
            "count": 1
          },
          {
            "date": "2020-05-27",
            "count": 1
          },
          {
            "date": "2020-05-29",
            "count": 1
          },
          {
            "date": "2020-06-07",
            "count": 1
          },
          {
            "date": "2020-06-14",
            "count": 1
          },
          {
            "date": "2020-06-17",
            "count": 2
          },
          {
            "date": "2020-06-20",
            "count": 1
          },
          {
            "date": "2020-06-21",
            "count": 1
          },
          {
            "date": "2020-06-30",
            "count": 2
          },
          {
            "date": "2020-07-01",
            "count": 1
          },
          {
            "date": "2020-07-05",
            "count": 3
          },
          {
            "date": "2020-07-08",
            "count": 1
          },
          {
            "date": "2020-07-14",
            "count": 2
          },
          {
            "date": "2020-07-20",
            "count": 1
          },
          {
            "date": "2020-07-27",
            "count": 1
          },
          {
            "date": "2020-07-29",
            "count": 1
          },
          {
            "date": "2020-07-30",
            "count": 1
          },
          {
            "date": "2020-07-31",
            "count": 2
          },
          {
            "date": "2020-08-01",
            "count": 1
          },
          {
            "date": "2020-08-05",
            "count": 1
          },
          {
            "date": "2020-08-08",
            "count": 2
          },
          {
            "date": "2020-08-12",
            "count": 1
          },
          {
            "date": "2020-08-14",
            "count": 1
          },
          {
            "date": "2020-08-20",
            "count": 1
          },
          {
            "date": "2020-08-21",
            "count": 1
          },
          {
            "date": "2020-08-23",
            "count": 1
          },
          {
            "date": "2020-08-25",
            "count": 1
          },
          {
            "date": "2020-08-26",
            "count": 1
          },
          {
            "date": "2020-09-05",
            "count": 1
          },
          {
            "date": "2020-09-11",
            "count": 1
          },
          {
            "date": "2020-09-17",
            "count": 1
          },
          {
            "date": "2020-09-18",
            "count": 1
          },
          {
            "date": "2020-09-23",
            "count": 1
          },
          {
            "date": "2020-10-01",
            "count": 2
          },
          {
            "date": "2020-10-02",
            "count": 1
          },
          {
            "date": "2020-10-06",
            "count": 1
          },
          {
            "date": "2020-10-07",
            "count": 2
          },
          {
            "date": "2020-10-10",
            "count": 1
          },
          {
            "date": "2020-10-12",
            "count": 1
          },
          {
            "date": "2020-10-16",
            "count": 2
          },
          {
            "date": "2020-10-21",
            "count": 1
          },
          {
            "date": "2020-10-28",
            "count": 1
          },
          {
            "date": "2020-11-02",
            "count": 1
          },
          {
            "date": "2020-11-12",
            "count": 1
          },
          {
            "date": "2020-11-16",
            "count": 1
          },
          {
            "date": "2020-11-18",
            "count": 1
          },
          {
            "date": "2020-11-26",
            "count": 1
          },
          {
            "date": "2020-11-30",
            "count": 1
          },
          {
            "date": "2020-12-04",
            "count": 2
          },
          {
            "date": "2020-12-08",
            "count": 1
          },
          {
            "date": "2020-12-09",
            "count": 1
          },
          {
            "date": "2020-12-14",
            "count": 1
          },
          {
            "date": "2020-12-16",
            "count": 1
          },
          {
            "date": "2020-12-20",
            "count": 1
          },
          {
            "date": "2020-12-23",
            "count": 1
          },
          {
            "date": "2020-12-24",
            "count": 1
          },
          {
            "date": "2020-12-28",
            "count": 1
          },
          {
            "date": "2021-01-05",
            "count": 1
          },
          {
            "date": "2021-01-06",
            "count": 1
          },
          {
            "date": "2021-01-07",
            "count": 1
          },
          {
            "date": "2021-01-11",
            "count": 2
          },
          {
            "date": "2021-01-17",
            "count": 1
          },
          {
            "date": "2021-01-20",
            "count": 2
          },
          {
            "date": "2021-01-22",
            "count": 1
          },
          {
            "date": "2021-01-23",
            "count": 1
          },
          {
            "date": "2021-02-06",
            "count": 1
          },
          {
            "date": "2021-02-08",
            "count": 1
          },
          {
            "date": "2021-02-13",
            "count": 1
          },
          {
            "date": "2021-02-22",
            "count": 1
          },
          {
            "date": "2021-03-05",
            "count": 1
          },
          {
            "date": "2021-03-09",
            "count": 2
          },
          {
            "date": "2021-03-14",
            "count": 1
          },
          {
            "date": "2021-03-17",
            "count": 1
          },
          {
            "date": "2021-03-20",
            "count": 1
          },
          {
            "date": "2021-03-23",
            "count": 1
          },
          {
            "date": "2021-03-27",
            "count": 1
          },
          {
            "date": "2021-04-02",
            "count": 1
          },
          {
            "date": "2021-04-06",
            "count": 2
          },
          {
            "date": "2021-04-09",
            "count": 1
          },
          {
            "date": "2021-04-10",
            "count": 1
          },
          {
            "date": "2021-04-11",
            "count": 1
          },
          {
            "date": "2021-04-16",
            "count": 1
          },
          {
            "date": "2021-04-26",
            "count": 2
          },
          {
            "date": "2021-04-28",
            "count": 1
          },
          {
            "date": "2021-05-05",
            "count": 1
          },
          {
            "date": "2021-05-07",
            "count": 1
          },
          {
            "date": "2021-05-14",
            "count": 1
          },
          {
            "date": "2021-05-17",
            "count": 1
          },
          {
            "date": "2021-05-18",
            "count": 1
          },
          {
            "date": "2021-05-21",
            "count": 2
          },
          {
            "date": "2021-05-23",
            "count": 1
          },
          {
            "date": "2021-05-25",
            "count": 1
          },
          {
            "date": "2021-05-27",
            "count": 1
          },
          {
            "date": "2021-05-31",
            "count": 1
          },
          {
            "date": "2021-06-07",
            "count": 1
          },
          {
            "date": "2021-06-09",
            "count": 1
          },
          {
            "date": "2021-06-16",
            "count": 1
          },
          {
            "date": "2021-06-17",
            "count": 1
          },
          {
            "date": "2021-06-27",
            "count": 1
          },
          {
            "date": "2021-07-06",
            "count": 1
          },
          {
            "date": "2021-07-07",
            "count": 1
          },
          {
            "date": "2021-07-27",
            "count": 1
          },
          {
            "date": "2021-07-30",
            "count": 1
          },
          {
            "date": "2021-08-02",
            "count": 1
          },
          {
            "date": "2021-08-09",
            "count": 1
          },
          {
            "date": "2021-08-20",
            "count": 1
          },
          {
            "date": "2021-08-25",
            "count": 1
          },
          {
            "date": "2021-08-30",
            "count": 1
          },
          {
            "date": "2021-09-10",
            "count": 1
          },
          {
            "date": "2021-09-11",
            "count": 1
          },
          {
            "date": "2021-09-17",
            "count": 1
          },
          {
            "date": "2021-09-27",
            "count": 1
          },
          {
            "date": "2021-09-28",
            "count": 2
          },
          {
            "date": "2021-10-03",
            "count": 1
          },
          {
            "date": "2021-10-04",
            "count": 1
          },
          {
            "date": "2021-10-10",
            "count": 2
          },
          {
            "date": "2021-10-11",
            "count": 1
          },
          {
            "date": "2021-10-14",
            "count": 1
          },
          {
            "date": "2021-10-16",
            "count": 1
          },
          {
            "date": "2021-10-27",
            "count": 1
          },
          {
            "date": "2021-10-29",
            "count": 1
          },
          {
            "date": "2021-11-04",
            "count": 1
          },
          {
            "date": "2021-11-16",
            "count": 1
          },
          {
            "date": "2021-11-18",
            "count": 2
          },
          {
            "date": "2021-11-21",
            "count": 1
          },
          {
            "date": "2021-11-23",
            "count": 1
          },
          {
            "date": "2021-11-29",
            "count": 1
          },
          {
            "date": "2021-11-30",
            "count": 1
          },
          {
            "date": "2021-12-06",
            "count": 1
          },
          {
            "date": "2022-01-01",
            "count": 1
          },
          {
            "date": "2022-01-02",
            "count": 2
          },
          {
            "date": "2022-01-03",
            "count": 1
          },
          {
            "date": "2022-01-07",
            "count": 1
          },
          {
            "date": "2022-01-13",
            "count": 2
          },
          {
            "date": "2022-01-17",
            "count": 2
          },
          {
            "date": "2022-01-22",
            "count": 1
          },
          {
            "date": "2022-01-24",
            "count": 1
          },
          {
            "date": "2022-01-26",
            "count": 1
          },
          {
            "date": "2022-02-01",
            "count": 1
          },
          {
            "date": "2022-02-06",
            "count": 1
          },
          {
            "date": "2022-02-11",
            "count": 1
          },
          {
            "date": "2022-02-25",
            "count": 1
          },
          {
            "date": "2022-02-28",
            "count": 2
          },
          {
            "date": "2022-03-03",
            "count": 1
          },
          {
            "date": "2022-03-11",
            "count": 1
          },
          {
            "date": "2022-03-15",
            "count": 1
          },
          {
            "date": "2022-03-16",
            "count": 1
          },
          {
            "date": "2022-03-17",
            "count": 1
          },
          {
            "date": "2022-03-25",
            "count": 1
          },
          {
            "date": "2022-03-27",
            "count": 1
          },
          {
            "date": "2022-03-28",
            "count": 1
          },
          {
            "date": "2022-03-31",
            "count": 1
          },
          {
            "date": "2022-04-04",
            "count": 1
          },
          {
            "date": "2022-04-10",
            "count": 1
          },
          {
            "date": "2022-04-15",
            "count": 1
          },
          {
            "date": "2022-04-18",
            "count": 1
          },
          {
            "date": "2022-04-19",
            "count": 1
          },
          {
            "date": "2022-05-05",
            "count": 1
          },
          {
            "date": "2022-05-17",
            "count": 1
          },
          {
            "date": "2022-05-20",
            "count": 1
          },
          {
            "date": "2022-05-22",
            "count": 1
          },
          {
            "date": "2022-05-27",
            "count": 1
          },
          {
            "date": "2022-06-03",
            "count": 1
          },
          {
            "date": "2022-06-11",
            "count": 1
          },
          {
            "date": "2022-06-13",
            "count": 1
          },
          {
            "date": "2022-06-16",
            "count": 1
          },
          {
            "date": "2022-06-20",
            "count": 1
          },
          {
            "date": "2022-06-21",
            "count": 1
          },
          {
            "date": "2022-06-30",
            "count": 1
          },
          {
            "date": "2022-07-14",
            "count": 2
          },
          {
            "date": "2022-07-21",
            "count": 1
          },
          {
            "date": "2022-07-26",
            "count": 1
          },
          {
            "date": "2022-08-01",
            "count": 1
          },
          {
            "date": "2022-08-04",
            "count": 1
          },
          {
            "date": "2022-08-15",
            "count": 1
          },
          {
            "date": "2022-08-18",
            "count": 1
          },
          {
            "date": "2022-08-31",
            "count": 1
          },
          {
            "date": "2022-09-05",
            "count": 1
          },
          {
            "date": "2022-09-14",
            "count": 1
          },
          {
            "date": "2022-09-15",
            "count": 1
          },
          {
            "date": "2022-09-19",
            "count": 2
          },
          {
            "date": "2022-09-21",
            "count": 1
          },
          {
            "date": "2022-09-26",
            "count": 1
          },
          {
            "date": "2022-09-27",
            "count": 1
          },
          {
            "date": "2022-10-03",
            "count": 1
          },
          {
            "date": "2022-10-07",
            "count": 2
          },
          {
            "date": "2022-10-10",
            "count": 1
          },
          {
            "date": "2022-10-14",
            "count": 1
          },
          {
            "date": "2022-10-16",
            "count": 1
          },
          {
            "date": "2022-10-26",
            "count": 1
          },
          {
            "date": "2022-10-27",
            "count": 2
          },
          {
            "date": "2022-11-02",
            "count": 1
          },
          {
            "date": "2022-11-08",
            "count": 2
          },
          {
            "date": "2022-11-18",
            "count": 1
          },
          {
            "date": "2022-11-23",
            "count": 1
          },
          {
            "date": "2022-12-07",
            "count": 1
          },
          {
            "date": "2022-12-08",
            "count": 1
          },
          {
            "date": "2022-12-09",
            "count": 1
          },
          {
            "date": "2023-01-03",
            "count": 1
          },
          {
            "date": "2023-01-05",
            "count": 1
          },
          {
            "date": "2023-01-08",
            "count": 1
          },
          {
            "date": "2023-01-10",
            "count": 1
          },
          {
            "date": "2023-01-13",
            "count": 1
          },
          {
            "date": "2023-01-19",
            "count": 1
          },
          {
            "date": "2023-02-11",
            "count": 1
          },
          {
            "date": "2023-02-23",
            "count": 1
          },
          {
            "date": "2023-02-24",
            "count": 1
          },
          {
            "date": "2023-03-03",
            "count": 1
          },
          {
            "date": "2023-03-05",
            "count": 1
          },
          {
            "date": "2023-03-07",
            "count": 1
          },
          {
            "date": "2023-03-11",
            "count": 1
          },
          {
            "date": "2023-03-13",
            "count": 1
          },
          {
            "date": "2023-03-19",
            "count": 1
          },
          {
            "date": "2023-03-21",
            "count": 1
          },
          {
            "date": "2023-04-03",
            "count": 1
          },
          {
            "date": "2023-04-07",
            "count": 1
          },
          {
            "date": "2023-04-11",
            "count": 1
          },
          {
            "date": "2023-04-20",
            "count": 1
          },
          {
            "date": "2023-04-22",
            "count": 1
          },
          {
            "date": "2023-05-18",
            "count": 1
          },
          {
            "date": "2023-05-23",
            "count": 1
          },
          {
            "date": "2023-05-25",
            "count": 1
          },
          {
            "date": "2023-06-09",
            "count": 1
          },
          {
            "date": "2023-06-16",
            "count": 2
          },
          {
            "date": "2023-06-17",
            "count": 1
          },
          {
            "date": "2023-07-02",
            "count": 2
          },
          {
            "date": "2023-07-04",
            "count": 1
          },
          {
            "date": "2023-07-15",
            "count": 1
          },
          {
            "date": "2023-07-18",
            "count": 1
          },
          {
            "date": "2023-07-22",
            "count": 1
          },
          {
            "date": "2023-07-26",
            "count": 1
          },
          {
            "date": "2023-07-27",
            "count": 1
          },
          {
            "date": "2023-08-04",
            "count": 1
          },
          {
            "date": "2023-08-11",
            "count": 2
          },
          {
            "date": "2023-08-17",
            "count": 1
          },
          {
            "date": "2023-08-21",
            "count": 1
          },
          {
            "date": "2023-08-26",
            "count": 1
          },
          {
            "date": "2023-08-28",
            "count": 1
          },
          {
            "date": "2023-09-03",
            "count": 1
          },
          {
            "date": "2023-09-05",
            "count": 1
          },
          {
            "date": "2023-09-06",
            "count": 1
          },
          {
            "date": "2023-09-12",
            "count": 2
          },
          {
            "date": "2023-09-20",
            "count": 1
          },
          {
            "date": "2023-09-21",
            "count": 1
          },
          {
            "date": "2023-09-22",
            "count": 2
          },
          {
            "date": "2023-09-24",
            "count": 1
          },
          {
            "date": "2023-10-02",
            "count": 1
          },
          {
            "date": "2023-10-03",
            "count": 1
          },
          {
            "date": "2023-10-06",
            "count": 1
          },
          {
            "date": "2023-10-11",
            "count": 1
          },
          {
            "date": "2023-10-17",
            "count": 1
          },
          {
            "date": "2023-10-19",
            "count": 1
          },
          {
            "date": "2023-10-22",
            "count": 1
          },
          {
            "date": "2023-10-24",
            "count": 1
          },
          {
            "date": "2023-10-26",
            "count": 1
          },
          {
            "date": "2023-11-10",
            "count": 1
          },
          {
            "date": "2023-11-13",
            "count": 1
          },
          {
            "date": "2023-11-20",
            "count": 1
          },
          {
            "date": "2023-11-27",
            "count": 1
          },
          {
            "date": "2023-11-30",
            "count": 1
          },
          {
            "date": "2023-12-04",
            "count": 1
          },
          {
            "date": "2023-12-09",
            "count": 2
          },
          {
            "date": "2023-12-18",
            "count": 1
          },
          {
            "date": "2023-12-25",
            "count": 1
          },
          {
            "date": "2023-12-28",
            "count": 1
          },
          {
            "date": "2023-12-29",
            "count": 1
          },
          {
            "date": "2024-01-05",
            "count": 1
          },
          {
            "date": "2024-01-22",
            "count": 4
          },
          {
            "date": "2024-01-24",
            "count": 1
          },
          {
            "date": "2024-01-25",
            "count": 1
          },
          {
            "date": "2024-01-29",
            "count": 1
          },
          {
            "date": "2024-02-02",
            "count": 1
          },
          {
            "date": "2024-02-14",
            "count": 2
          },
          {
            "date": "2024-03-02",
            "count": 1
          },
          {
            "date": "2024-03-04",
            "count": 1
          },
          {
            "date": "2024-03-07",
            "count": 1
          },
          {
            "date": "2024-03-26",
            "count": 1
          },
          {
            "date": "2024-03-28",
            "count": 1
          },
          {
            "date": "2024-03-29",
            "count": 1
          },
          {
            "date": "2024-04-02",
            "count": 1
          },
          {
            "date": "2024-04-04",
            "count": 1
          },
          {
            "date": "2024-04-11",
            "count": 1
          },
          {
            "date": "2024-05-07",
            "count": 1
          },
          {
            "date": "2024-05-11",
            "count": 1
          },
          {
            "date": "2024-05-13",
            "count": 1
          },
          {
            "date": "2024-07-06",
            "count": 1
          },
          {
            "date": "2024-07-22",
            "count": 1
          },
          {
            "date": "2024-07-23",
            "count": 1
          },
          {
            "date": "2024-07-24",
            "count": 1
          },
          {
            "date": "2024-08-01",
            "count": 1
          },
          {
            "date": "2024-08-07",
            "count": 1
          },
          {
            "date": "2024-08-20",
            "count": 1
          },
          {
            "date": "2024-08-23",
            "count": 1
          },
          {
            "date": "2024-09-04",
            "count": 1
          },
          {
            "date": "2024-09-14",
            "count": 1
          },
          {
            "date": "2024-09-20",
            "count": 1
          },
          {
            "date": "2024-10-03",
            "count": 1
          },
          {
            "date": "2024-10-11",
            "count": 1
          },
          {
            "date": "2024-10-15",
            "count": 1
          },
          {
            "date": "2024-10-24",
            "count": 1
          },
          {
            "date": "2024-12-03",
            "count": 1
          },
          {
            "date": "2024-12-30",
            "count": 1
          },
          {
            "date": "2025-01-09",
            "count": 1
          },
          {
            "date": "2025-01-22",
            "count": 1
          },
          {
            "date": "2025-01-25",
            "count": 1
          },
          {
            "date": "2025-02-12",
            "count": 1
          },
          {
            "date": "2025-02-21",
            "count": 1
          },
          {
            "date": "2025-02-25",
            "count": 1
          },
          {
            "date": "2025-02-28",
            "count": 2
          },
          {
            "date": "2025-03-05",
            "count": 1
          },
          {
            "date": "2025-03-19",
            "count": 1
          },
          {
            "date": "2025-04-08",
            "count": 1
          },
          {
            "date": "2025-04-14",
            "count": 2
          },
          {
            "date": "2025-04-20",
            "count": 1
          },
          {
            "date": "2025-04-23",
            "count": 2
          },
          {
            "date": "2025-04-30",
            "count": 1
          },
          {
            "date": "2025-05-22",
            "count": 1
          },
          {
            "date": "2025-05-23",
            "count": 1
          },
          {
            "date": "2025-05-29",
            "count": 1
          },
          {
            "date": "2025-06-04",
            "count": 1
          },
          {
            "date": "2025-06-09",
            "count": 1
          },
          {
            "date": "2025-06-16",
            "count": 1
          },
          {
            "date": "2025-06-29",
            "count": 1
          },
          {
            "date": "2025-07-16",
            "count": 2
          },
          {
            "date": "2025-08-11",
            "count": 1
          },
          {
            "date": "2025-08-16",
            "count": 1
          },
          {
            "date": "2025-09-04",
            "count": 1
          },
          {
            "date": "2025-09-05",
            "count": 1
          },
          {
            "date": "2025-09-22",
            "count": 3
          },
          {
            "date": "2025-09-23",
            "count": 1
          },
          {
            "date": "2025-10-09",
            "count": 1
          },
          {
            "date": "2025-10-13",
            "count": 1
          },
          {
            "date": "2025-10-14",
            "count": 1
          },
          {
            "date": "2025-11-10",
            "count": 1
          },
          {
            "date": "2025-11-25",
            "count": 1
          },
          {
            "date": "2025-12-19",
            "count": 1
          },
          {
            "date": "2025-12-22",
            "count": 1
          },
          {
            "date": "2025-12-26",
            "count": 1
          },
          {
            "date": "2026-01-20",
            "count": 1
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 1
          },
          {
            "date": "2026-02-03",
            "count": 1
          },
          {
            "date": "2026-02-10",
            "count": 1
          },
          {
            "date": "2026-02-20",
            "count": 1
          },
          {
            "date": "2026-03-04",
            "count": 1
          },
          {
            "date": "2026-03-05",
            "count": 1
          },
          {
            "date": "2026-03-18",
            "count": 1
          },
          {
            "date": "2026-04-09",
            "count": 1
          },
          {
            "date": "2026-04-11",
            "count": 1
          },
          {
            "date": "2026-04-12",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 1
          },
          {
            "date": "2026-04-24",
            "count": 1
          },
          {
            "date": "2026-05-14",
            "count": 2
          },
          {
            "date": "2026-05-16",
            "count": 1
          },
          {
            "date": "2026-05-17",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 1
          },
          {
            "date": "2026-05-21",
            "count": 1
          },
          {
            "date": "2026-05-23",
            "count": 1
          },
          {
            "date": "2026-05-31",
            "count": 1
          },
          {
            "date": "2026-06-05",
            "count": 15
          },
          {
            "date": "2026-06-30",
            "count": 1
          },
          {
            "date": "2026-07-09",
            "count": 1
          },
          {
            "date": "2026-07-12",
            "count": 1
          },
          {
            "date": "2026-07-19",
            "count": 1
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_forks": 3378
      },
      "star_history": {
        "days": [
          {
            "date": "2021-09-15",
            "count": 1
          },
          {
            "date": "2021-09-16",
            "count": 1
          },
          {
            "date": "2021-09-17",
            "count": 1
          },
          {
            "date": "2021-09-23",
            "count": 1
          },
          {
            "date": "2021-09-24",
            "count": 1
          },
          {
            "date": "2021-09-26",
            "count": 2
          },
          {
            "date": "2021-09-27",
            "count": 1
          },
          {
            "date": "2021-09-28",
            "count": 1
          },
          {
            "date": "2021-10-05",
            "count": 3
          },
          {
            "date": "2021-10-07",
            "count": 1
          },
          {
            "date": "2021-10-09",
            "count": 1
          },
          {
            "date": "2021-10-11",
            "count": 1
          },
          {
            "date": "2021-10-12",
            "count": 2
          },
          {
            "date": "2021-10-13",
            "count": 5
          },
          {
            "date": "2021-10-15",
            "count": 1
          },
          {
            "date": "2021-10-16",
            "count": 2
          },
          {
            "date": "2021-10-17",
            "count": 1
          },
          {
            "date": "2021-10-18",
            "count": 1
          },
          {
            "date": "2021-10-21",
            "count": 1
          },
          {
            "date": "2021-10-23",
            "count": 2
          },
          {
            "date": "2021-10-25",
            "count": 2
          },
          {
            "date": "2021-10-28",
            "count": 1
          },
          {
            "date": "2021-11-03",
            "count": 1
          },
          {
            "date": "2021-11-13",
            "count": 1
          },
          {
            "date": "2021-11-14",
            "count": 1
          },
          {
            "date": "2021-11-15",
            "count": 1
          },
          {
            "date": "2021-11-18",
            "count": 1
          },
          {
            "date": "2021-11-22",
            "count": 1
          },
          {
            "date": "2021-11-24",
            "count": 1
          },
          {
            "date": "2021-11-29",
            "count": 2
          },
          {
            "date": "2021-11-30",
            "count": 3
          },
          {
            "date": "2021-12-01",
            "count": 1
          },
          {
            "date": "2021-12-03",
            "count": 1
          },
          {
            "date": "2021-12-05",
            "count": 1
          },
          {
            "date": "2021-12-06",
            "count": 1
          },
          {
            "date": "2021-12-10",
            "count": 1
          },
          {
            "date": "2021-12-11",
            "count": 2
          },
          {
            "date": "2021-12-12",
            "count": 2
          },
          {
            "date": "2021-12-13",
            "count": 2
          },
          {
            "date": "2021-12-14",
            "count": 2
          },
          {
            "date": "2021-12-15",
            "count": 1
          },
          {
            "date": "2021-12-16",
            "count": 1
          },
          {
            "date": "2021-12-24",
            "count": 1
          },
          {
            "date": "2021-12-26",
            "count": 1
          },
          {
            "date": "2021-12-27",
            "count": 2
          },
          {
            "date": "2021-12-28",
            "count": 1
          },
          {
            "date": "2022-01-05",
            "count": 1
          },
          {
            "date": "2022-01-09",
            "count": 1
          },
          {
            "date": "2022-01-10",
            "count": 1
          },
          {
            "date": "2022-01-11",
            "count": 1
          },
          {
            "date": "2022-01-13",
            "count": 2
          },
          {
            "date": "2022-01-17",
            "count": 4
          },
          {
            "date": "2022-01-18",
            "count": 1
          },
          {
            "date": "2022-01-20",
            "count": 1
          },
          {
            "date": "2022-01-21",
            "count": 1
          },
          {
            "date": "2022-01-25",
            "count": 2
          },
          {
            "date": "2022-01-29",
            "count": 1
          },
          {
            "date": "2022-01-31",
            "count": 1
          },
          {
            "date": "2022-02-01",
            "count": 1
          },
          {
            "date": "2022-02-02",
            "count": 1
          },
          {
            "date": "2022-02-04",
            "count": 1
          },
          {
            "date": "2022-02-07",
            "count": 1
          },
          {
            "date": "2022-02-10",
            "count": 1
          },
          {
            "date": "2022-02-11",
            "count": 1
          },
          {
            "date": "2022-02-12",
            "count": 1
          },
          {
            "date": "2022-02-15",
            "count": 3
          },
          {
            "date": "2022-02-17",
            "count": 1
          },
          {
            "date": "2022-02-18",
            "count": 1
          },
          {
            "date": "2022-02-19",
            "count": 1
          },
          {
            "date": "2022-02-22",
            "count": 1
          },
          {
            "date": "2022-02-23",
            "count": 2
          },
          {
            "date": "2022-02-24",
            "count": 1
          },
          {
            "date": "2022-02-25",
            "count": 1
          },
          {
            "date": "2022-02-26",
            "count": 1
          },
          {
            "date": "2022-02-27",
            "count": 1
          },
          {
            "date": "2022-02-28",
            "count": 2
          },
          {
            "date": "2022-03-01",
            "count": 2
          },
          {
            "date": "2022-03-02",
            "count": 2
          },
          {
            "date": "2022-03-04",
            "count": 1
          },
          {
            "date": "2022-03-08",
            "count": 1
          },
          {
            "date": "2022-03-11",
            "count": 1
          },
          {
            "date": "2022-03-14",
            "count": 1
          },
          {
            "date": "2022-03-20",
            "count": 1
          },
          {
            "date": "2022-03-21",
            "count": 1
          },
          {
            "date": "2022-03-22",
            "count": 1
          },
          {
            "date": "2022-03-25",
            "count": 1
          },
          {
            "date": "2022-03-26",
            "count": 1
          },
          {
            "date": "2022-03-28",
            "count": 2
          },
          {
            "date": "2022-03-29",
            "count": 1
          },
          {
            "date": "2022-03-30",
            "count": 1
          },
          {
            "date": "2022-04-03",
            "count": 1
          },
          {
            "date": "2022-04-04",
            "count": 2
          },
          {
            "date": "2022-04-05",
            "count": 1
          },
          {
            "date": "2022-04-06",
            "count": 2
          },
          {
            "date": "2022-04-07",
            "count": 2
          },
          {
            "date": "2022-04-11",
            "count": 1
          },
          {
            "date": "2022-04-13",
            "count": 1
          },
          {
            "date": "2022-04-14",
            "count": 2
          },
          {
            "date": "2022-04-21",
            "count": 1
          },
          {
            "date": "2022-04-30",
            "count": 1
          },
          {
            "date": "2022-05-01",
            "count": 1
          },
          {
            "date": "2022-05-05",
            "count": 2
          },
          {
            "date": "2022-05-06",
            "count": 7
          },
          {
            "date": "2022-05-07",
            "count": 2
          },
          {
            "date": "2022-05-08",
            "count": 1
          },
          {
            "date": "2022-05-09",
            "count": 1
          },
          {
            "date": "2022-05-10",
            "count": 1
          },
          {
            "date": "2022-05-11",
            "count": 1
          },
          {
            "date": "2022-05-12",
            "count": 1
          },
          {
            "date": "2022-05-14",
            "count": 1
          },
          {
            "date": "2022-05-18",
            "count": 1
          },
          {
            "date": "2022-05-24",
            "count": 2
          },
          {
            "date": "2022-05-27",
            "count": 3
          },
          {
            "date": "2022-05-28",
            "count": 1
          },
          {
            "date": "2022-05-30",
            "count": 4
          },
          {
            "date": "2022-06-01",
            "count": 5
          },
          {
            "date": "2022-06-02",
            "count": 6
          },
          {
            "date": "2022-06-03",
            "count": 4
          },
          {
            "date": "2022-06-05",
            "count": 2
          },
          {
            "date": "2022-06-06",
            "count": 1
          },
          {
            "date": "2022-06-07",
            "count": 1
          },
          {
            "date": "2022-06-08",
            "count": 2
          },
          {
            "date": "2022-06-13",
            "count": 1
          },
          {
            "date": "2022-06-14",
            "count": 1
          },
          {
            "date": "2022-06-15",
            "count": 1
          },
          {
            "date": "2022-06-18",
            "count": 1
          },
          {
            "date": "2022-06-20",
            "count": 1
          },
          {
            "date": "2022-06-23",
            "count": 1
          },
          {
            "date": "2022-06-27",
            "count": 1
          },
          {
            "date": "2022-06-28",
            "count": 3
          },
          {
            "date": "2022-06-29",
            "count": 1
          },
          {
            "date": "2022-06-30",
            "count": 1
          },
          {
            "date": "2022-07-01",
            "count": 1
          },
          {
            "date": "2022-07-05",
            "count": 1
          },
          {
            "date": "2022-07-06",
            "count": 1
          },
          {
            "date": "2022-07-07",
            "count": 1
          },
          {
            "date": "2022-07-13",
            "count": 1
          },
          {
            "date": "2022-07-14",
            "count": 1
          },
          {
            "date": "2022-07-16",
            "count": 1
          },
          {
            "date": "2022-07-17",
            "count": 1
          },
          {
            "date": "2022-07-19",
            "count": 1
          },
          {
            "date": "2022-07-21",
            "count": 1
          },
          {
            "date": "2022-07-25",
            "count": 1
          },
          {
            "date": "2022-08-02",
            "count": 1
          },
          {
            "date": "2022-08-03",
            "count": 2
          },
          {
            "date": "2022-08-05",
            "count": 2
          },
          {
            "date": "2022-08-07",
            "count": 1
          },
          {
            "date": "2022-08-10",
            "count": 1
          },
          {
            "date": "2022-08-11",
            "count": 2
          },
          {
            "date": "2022-08-12",
            "count": 2
          },
          {
            "date": "2022-08-15",
            "count": 1
          },
          {
            "date": "2022-08-17",
            "count": 1
          },
          {
            "date": "2022-08-18",
            "count": 1
          },
          {
            "date": "2022-08-20",
            "count": 1
          },
          {
            "date": "2022-08-22",
            "count": 2
          },
          {
            "date": "2022-08-29",
            "count": 1
          },
          {
            "date": "2022-08-30",
            "count": 2
          },
          {
            "date": "2022-08-31",
            "count": 1
          },
          {
            "date": "2022-09-01",
            "count": 1
          },
          {
            "date": "2022-09-03",
            "count": 1
          },
          {
            "date": "2022-09-09",
            "count": 1
          },
          {
            "date": "2022-09-11",
            "count": 1
          },
          {
            "date": "2022-09-13",
            "count": 1
          },
          {
            "date": "2022-09-15",
            "count": 2
          },
          {
            "date": "2022-09-16",
            "count": 1
          },
          {
            "date": "2022-09-18",
            "count": 2
          },
          {
            "date": "2022-09-19",
            "count": 1
          },
          {
            "date": "2022-09-20",
            "count": 3
          },
          {
            "date": "2022-09-22",
            "count": 1
          },
          {
            "date": "2022-09-25",
            "count": 1
          },
          {
            "date": "2022-09-26",
            "count": 1
          },
          {
            "date": "2022-09-27",
            "count": 1
          },
          {
            "date": "2022-09-28",
            "count": 2
          },
          {
            "date": "2022-09-30",
            "count": 1
          },
          {
            "date": "2022-10-01",
            "count": 1
          },
          {
            "date": "2022-10-04",
            "count": 2
          },
          {
            "date": "2022-10-06",
            "count": 1
          },
          {
            "date": "2022-10-07",
            "count": 1
          },
          {
            "date": "2022-10-09",
            "count": 1
          },
          {
            "date": "2022-10-11",
            "count": 3
          },
          {
            "date": "2022-10-12",
            "count": 1
          },
          {
            "date": "2022-10-13",
            "count": 2
          },
          {
            "date": "2022-10-14",
            "count": 1
          },
          {
            "date": "2022-10-16",
            "count": 2
          },
          {
            "date": "2022-10-19",
            "count": 1
          },
          {
            "date": "2022-10-20",
            "count": 2
          },
          {
            "date": "2022-10-25",
            "count": 1
          },
          {
            "date": "2022-10-26",
            "count": 3
          },
          {
            "date": "2022-10-28",
            "count": 1
          },
          {
            "date": "2022-10-30",
            "count": 1
          },
          {
            "date": "2022-10-31",
            "count": 1
          },
          {
            "date": "2022-11-01",
            "count": 2
          },
          {
            "date": "2022-11-02",
            "count": 1
          },
          {
            "date": "2022-11-03",
            "count": 1
          },
          {
            "date": "2022-11-04",
            "count": 1
          },
          {
            "date": "2022-11-06",
            "count": 1
          },
          {
            "date": "2022-11-07",
            "count": 1
          },
          {
            "date": "2022-11-10",
            "count": 1
          },
          {
            "date": "2022-11-12",
            "count": 2
          },
          {
            "date": "2022-11-14",
            "count": 1
          },
          {
            "date": "2022-11-16",
            "count": 1
          },
          {
            "date": "2022-11-18",
            "count": 2
          },
          {
            "date": "2022-11-19",
            "count": 1
          },
          {
            "date": "2022-11-22",
            "count": 2
          },
          {
            "date": "2022-11-23",
            "count": 1
          },
          {
            "date": "2022-11-24",
            "count": 4
          },
          {
            "date": "2022-11-25",
            "count": 1
          },
          {
            "date": "2022-11-29",
            "count": 3
          },
          {
            "date": "2022-11-30",
            "count": 2
          },
          {
            "date": "2022-12-02",
            "count": 2
          },
          {
            "date": "2022-12-06",
            "count": 1
          },
          {
            "date": "2022-12-07",
            "count": 1
          },
          {
            "date": "2022-12-13",
            "count": 2
          },
          {
            "date": "2022-12-14",
            "count": 1
          },
          {
            "date": "2022-12-18",
            "count": 1
          },
          {
            "date": "2022-12-19",
            "count": 2
          },
          {
            "date": "2022-12-20",
            "count": 1
          },
          {
            "date": "2022-12-21",
            "count": 1
          },
          {
            "date": "2022-12-24",
            "count": 1
          },
          {
            "date": "2022-12-25",
            "count": 1
          },
          {
            "date": "2022-12-26",
            "count": 1
          },
          {
            "date": "2022-12-30",
            "count": 2
          },
          {
            "date": "2023-01-01",
            "count": 2
          },
          {
            "date": "2023-01-03",
            "count": 1
          },
          {
            "date": "2023-01-04",
            "count": 3
          },
          {
            "date": "2023-01-05",
            "count": 1
          },
          {
            "date": "2023-01-06",
            "count": 1
          },
          {
            "date": "2023-01-07",
            "count": 1
          },
          {
            "date": "2023-01-08",
            "count": 1
          },
          {
            "date": "2023-01-10",
            "count": 1
          },
          {
            "date": "2023-01-12",
            "count": 1
          },
          {
            "date": "2023-01-13",
            "count": 2
          },
          {
            "date": "2023-01-22",
            "count": 1
          },
          {
            "date": "2023-01-23",
            "count": 1
          },
          {
            "date": "2023-01-28",
            "count": 1
          },
          {
            "date": "2023-01-30",
            "count": 1
          },
          {
            "date": "2023-02-01",
            "count": 2
          },
          {
            "date": "2023-02-02",
            "count": 2
          },
          {
            "date": "2023-02-05",
            "count": 1
          },
          {
            "date": "2023-02-08",
            "count": 1
          },
          {
            "date": "2023-02-09",
            "count": 3
          },
          {
            "date": "2023-02-12",
            "count": 4
          },
          {
            "date": "2023-02-15",
            "count": 2
          },
          {
            "date": "2023-02-16",
            "count": 2
          },
          {
            "date": "2023-02-18",
            "count": 2
          },
          {
            "date": "2023-02-21",
            "count": 1
          },
          {
            "date": "2023-02-25",
            "count": 1
          },
          {
            "date": "2023-02-27",
            "count": 1
          },
          {
            "date": "2023-02-28",
            "count": 1
          },
          {
            "date": "2023-03-03",
            "count": 1
          },
          {
            "date": "2023-03-04",
            "count": 1
          },
          {
            "date": "2023-03-07",
            "count": 2
          },
          {
            "date": "2023-03-10",
            "count": 1
          },
          {
            "date": "2023-03-12",
            "count": 1
          },
          {
            "date": "2023-03-13",
            "count": 2
          },
          {
            "date": "2023-03-15",
            "count": 2
          },
          {
            "date": "2023-03-17",
            "count": 1
          },
          {
            "date": "2023-03-18",
            "count": 1
          },
          {
            "date": "2023-03-19",
            "count": 1
          },
          {
            "date": "2023-03-21",
            "count": 1
          },
          {
            "date": "2023-03-22",
            "count": 2
          },
          {
            "date": "2023-03-23",
            "count": 1
          },
          {
            "date": "2023-03-24",
            "count": 1
          },
          {
            "date": "2023-03-27",
            "count": 2
          },
          {
            "date": "2023-04-02",
            "count": 1
          },
          {
            "date": "2023-04-03",
            "count": 1
          },
          {
            "date": "2023-04-04",
            "count": 1
          },
          {
            "date": "2023-04-05",
            "count": 2
          },
          {
            "date": "2023-04-12",
            "count": 2
          },
          {
            "date": "2023-04-13",
            "count": 2
          },
          {
            "date": "2023-04-17",
            "count": 1
          },
          {
            "date": "2023-04-19",
            "count": 1
          },
          {
            "date": "2023-04-20",
            "count": 1
          },
          {
            "date": "2023-04-24",
            "count": 1
          },
          {
            "date": "2023-04-26",
            "count": 2
          },
          {
            "date": "2023-04-27",
            "count": 1
          },
          {
            "date": "2023-05-03",
            "count": 2
          },
          {
            "date": "2023-05-04",
            "count": 1
          },
          {
            "date": "2023-05-05",
            "count": 1
          },
          {
            "date": "2023-05-08",
            "count": 2
          },
          {
            "date": "2023-05-09",
            "count": 2
          },
          {
            "date": "2023-05-10",
            "count": 1
          },
          {
            "date": "2023-05-11",
            "count": 1
          },
          {
            "date": "2023-05-14",
            "count": 1
          },
          {
            "date": "2023-05-16",
            "count": 4
          },
          {
            "date": "2023-05-19",
            "count": 1
          },
          {
            "date": "2023-05-21",
            "count": 1
          },
          {
            "date": "2023-05-23",
            "count": 1
          },
          {
            "date": "2023-05-24",
            "count": 1
          },
          {
            "date": "2023-05-25",
            "count": 1
          },
          {
            "date": "2023-05-26",
            "count": 1
          },
          {
            "date": "2023-05-29",
            "count": 1
          },
          {
            "date": "2023-05-30",
            "count": 1
          },
          {
            "date": "2023-05-31",
            "count": 1
          },
          {
            "date": "2023-06-02",
            "count": 1
          },
          {
            "date": "2023-06-05",
            "count": 1
          },
          {
            "date": "2023-06-07",
            "count": 1
          },
          {
            "date": "2023-06-09",
            "count": 1
          },
          {
            "date": "2023-06-13",
            "count": 2
          },
          {
            "date": "2023-06-14",
            "count": 1
          },
          {
            "date": "2023-06-15",
            "count": 1
          },
          {
            "date": "2023-06-19",
            "count": 1
          },
          {
            "date": "2023-06-21",
            "count": 1
          },
          {
            "date": "2023-06-27",
            "count": 1
          },
          {
            "date": "2023-06-28",
            "count": 2
          },
          {
            "date": "2023-06-30",
            "count": 1
          },
          {
            "date": "2023-07-01",
            "count": 1
          },
          {
            "date": "2023-07-02",
            "count": 1
          },
          {
            "date": "2023-07-05",
            "count": 1
          },
          {
            "date": "2023-07-07",
            "count": 1
          },
          {
            "date": "2023-07-08",
            "count": 1
          },
          {
            "date": "2023-07-12",
            "count": 1
          },
          {
            "date": "2023-07-16",
            "count": 1
          },
          {
            "date": "2023-07-18",
            "count": 1
          },
          {
            "date": "2023-07-20",
            "count": 2
          },
          {
            "date": "2023-07-21",
            "count": 1
          },
          {
            "date": "2023-07-22",
            "count": 1
          },
          {
            "date": "2023-07-23",
            "count": 1
          },
          {
            "date": "2023-08-01",
            "count": 1
          },
          {
            "date": "2023-08-02",
            "count": 1
          },
          {
            "date": "2023-08-11",
            "count": 1
          },
          {
            "date": "2023-08-14",
            "count": 3
          },
          {
            "date": "2023-08-15",
            "count": 1
          },
          {
            "date": "2023-08-16",
            "count": 2
          },
          {
            "date": "2023-08-17",
            "count": 3
          },
          {
            "date": "2023-08-18",
            "count": 1
          },
          {
            "date": "2023-08-21",
            "count": 1
          },
          {
            "date": "2023-08-25",
            "count": 1
          },
          {
            "date": "2023-08-30",
            "count": 2
          },
          {
            "date": "2023-09-01",
            "count": 1
          },
          {
            "date": "2023-09-02",
            "count": 1
          },
          {
            "date": "2023-09-04",
            "count": 1
          },
          {
            "date": "2023-09-10",
            "count": 6
          },
          {
            "date": "2023-09-12",
            "count": 1
          },
          {
            "date": "2023-09-15",
            "count": 1
          },
          {
            "date": "2023-09-16",
            "count": 1
          },
          {
            "date": "2023-09-17",
            "count": 2
          },
          {
            "date": "2023-09-18",
            "count": 1
          },
          {
            "date": "2023-09-21",
            "count": 1
          },
          {
            "date": "2023-09-24",
            "count": 1
          },
          {
            "date": "2023-09-26",
            "count": 1
          },
          {
            "date": "2023-09-28",
            "count": 2
          },
          {
            "date": "2023-09-29",
            "count": 1
          },
          {
            "date": "2023-09-30",
            "count": 1
          },
          {
            "date": "2023-10-01",
            "count": 1
          },
          {
            "date": "2023-10-02",
            "count": 1
          },
          {
            "date": "2023-10-03",
            "count": 1
          },
          {
            "date": "2023-10-04",
            "count": 2
          },
          {
            "date": "2023-10-05",
            "count": 1
          },
          {
            "date": "2023-10-10",
            "count": 2
          },
          {
            "date": "2023-10-12",
            "count": 2
          },
          {
            "date": "2023-10-13",
            "count": 2
          },
          {
            "date": "2023-10-15",
            "count": 1
          },
          {
            "date": "2023-10-16",
            "count": 2
          },
          {
            "date": "2023-10-17",
            "count": 1
          },
          {
            "date": "2023-10-18",
            "count": 2
          },
          {
            "date": "2023-10-19",
            "count": 1
          },
          {
            "date": "2023-10-20",
            "count": 4
          },
          {
            "date": "2023-10-21",
            "count": 1
          },
          {
            "date": "2023-10-24",
            "count": 1
          },
          {
            "date": "2023-10-28",
            "count": 1
          },
          {
            "date": "2023-10-31",
            "count": 2
          },
          {
            "date": "2023-11-01",
            "count": 2
          },
          {
            "date": "2023-11-02",
            "count": 2
          },
          {
            "date": "2023-11-03",
            "count": 1
          },
          {
            "date": "2023-11-04",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 1
          },
          {
            "date": "2023-11-13",
            "count": 2
          },
          {
            "date": "2023-11-16",
            "count": 1
          },
          {
            "date": "2023-11-17",
            "count": 1
          },
          {
            "date": "2023-11-18",
            "count": 1
          },
          {
            "date": "2023-11-22",
            "count": 3
          },
          {
            "date": "2023-11-27",
            "count": 1
          },
          {
            "date": "2023-11-28",
            "count": 1
          },
          {
            "date": "2023-12-05",
            "count": 1
          },
          {
            "date": "2023-12-08",
            "count": 1
          },
          {
            "date": "2023-12-13",
            "count": 1
          },
          {
            "date": "2023-12-15",
            "count": 1
          },
          {
            "date": "2023-12-16",
            "count": 1
          },
          {
            "date": "2023-12-21",
            "count": 2
          },
          {
            "date": "2023-12-24",
            "count": 1
          },
          {
            "date": "2023-12-27",
            "count": 1
          },
          {
            "date": "2023-12-28",
            "count": 3
          },
          {
            "date": "2023-12-29",
            "count": 1
          },
          {
            "date": "2024-01-04",
            "count": 1
          },
          {
            "date": "2024-01-16",
            "count": 1
          },
          {
            "date": "2024-01-17",
            "count": 2
          },
          {
            "date": "2024-01-18",
            "count": 1
          },
          {
            "date": "2024-01-19",
            "count": 1
          },
          {
            "date": "2024-01-20",
            "count": 1
          },
          {
            "date": "2024-01-21",
            "count": 1
          },
          {
            "date": "2024-01-22",
            "count": 14
          },
          {
            "date": "2024-01-23",
            "count": 9
          },
          {
            "date": "2024-01-24",
            "count": 1
          },
          {
            "date": "2024-01-26",
            "count": 1
          },
          {
            "date": "2024-01-29",
            "count": 1
          },
          {
            "date": "2024-01-30",
            "count": 2
          },
          {
            "date": "2024-02-02",
            "count": 2
          },
          {
            "date": "2024-02-03",
            "count": 1
          },
          {
            "date": "2024-02-07",
            "count": 1
          },
          {
            "date": "2024-02-09",
            "count": 2
          },
          {
            "date": "2024-02-14",
            "count": 1
          },
          {
            "date": "2024-02-17",
            "count": 1
          },
          {
            "date": "2024-02-18",
            "count": 1
          },
          {
            "date": "2024-02-22",
            "count": 2
          },
          {
            "date": "2024-02-28",
            "count": 1
          },
          {
            "date": "2024-02-29",
            "count": 1
          },
          {
            "date": "2024-03-07",
            "count": 1
          },
          {
            "date": "2024-03-09",
            "count": 1
          },
          {
            "date": "2024-03-12",
            "count": 1
          },
          {
            "date": "2024-03-13",
            "count": 1
          },
          {
            "date": "2024-03-19",
            "count": 2
          },
          {
            "date": "2024-03-21",
            "count": 1
          },
          {
            "date": "2024-03-22",
            "count": 3
          },
          {
            "date": "2024-03-24",
            "count": 1
          },
          {
            "date": "2024-03-25",
            "count": 1
          },
          {
            "date": "2024-03-27",
            "count": 2
          },
          {
            "date": "2024-03-28",
            "count": 2
          },
          {
            "date": "2024-03-30",
            "count": 2
          },
          {
            "date": "2024-04-01",
            "count": 1
          },
          {
            "date": "2024-04-03",
            "count": 1
          },
          {
            "date": "2024-04-04",
            "count": 2
          },
          {
            "date": "2024-04-06",
            "count": 1
          },
          {
            "date": "2024-04-07",
            "count": 1
          },
          {
            "date": "2024-04-11",
            "count": 1
          },
          {
            "date": "2024-04-13",
            "count": 1
          },
          {
            "date": "2024-04-16",
            "count": 1
          },
          {
            "date": "2024-04-19",
            "count": 1
          },
          {
            "date": "2024-04-21",
            "count": 1
          },
          {
            "date": "2024-04-22",
            "count": 1
          },
          {
            "date": "2024-04-24",
            "count": 1
          },
          {
            "date": "2024-04-25",
            "count": 2
          },
          {
            "date": "2024-04-30",
            "count": 1
          },
          {
            "date": "2024-05-03",
            "count": 1
          },
          {
            "date": "2024-05-07",
            "count": 2
          },
          {
            "date": "2024-05-08",
            "count": 2
          },
          {
            "date": "2024-05-11",
            "count": 1
          },
          {
            "date": "2024-05-12",
            "count": 1
          },
          {
            "date": "2024-05-16",
            "count": 2
          },
          {
            "date": "2024-05-20",
            "count": 1
          },
          {
            "date": "2024-05-22",
            "count": 2
          },
          {
            "date": "2024-05-23",
            "count": 1
          },
          {
            "date": "2024-05-26",
            "count": 1
          },
          {
            "date": "2024-05-29",
            "count": 1
          },
          {
            "date": "2024-05-30",
            "count": 1
          },
          {
            "date": "2024-05-31",
            "count": 2
          },
          {
            "date": "2024-06-02",
            "count": 1
          },
          {
            "date": "2024-06-03",
            "count": 1
          },
          {
            "date": "2024-06-04",
            "count": 1
          },
          {
            "date": "2024-06-05",
            "count": 1
          },
          {
            "date": "2024-06-07",
            "count": 1
          },
          {
            "date": "2024-06-09",
            "count": 1
          },
          {
            "date": "2024-06-10",
            "count": 1
          },
          {
            "date": "2024-06-12",
            "count": 1
          },
          {
            "date": "2024-06-16",
            "count": 1
          },
          {
            "date": "2024-06-17",
            "count": 1
          },
          {
            "date": "2024-06-18",
            "count": 1
          },
          {
            "date": "2024-06-20",
            "count": 1
          },
          {
            "date": "2024-06-25",
            "count": 1
          },
          {
            "date": "2024-06-26",
            "count": 1
          },
          {
            "date": "2024-06-27",
            "count": 1
          },
          {
            "date": "2024-06-29",
            "count": 2
          },
          {
            "date": "2024-07-01",
            "count": 1
          },
          {
            "date": "2024-07-02",
            "count": 2
          },
          {
            "date": "2024-07-03",
            "count": 1
          },
          {
            "date": "2024-07-04",
            "count": 1
          },
          {
            "date": "2024-07-06",
            "count": 1
          },
          {
            "date": "2024-07-10",
            "count": 2
          },
          {
            "date": "2024-07-11",
            "count": 1
          },
          {
            "date": "2024-07-14",
            "count": 1
          },
          {
            "date": "2024-07-21",
            "count": 1
          },
          {
            "date": "2024-07-22",
            "count": 1
          },
          {
            "date": "2024-07-28",
            "count": 2
          },
          {
            "date": "2024-08-07",
            "count": 2
          },
          {
            "date": "2024-08-09",
            "count": 3
          },
          {
            "date": "2024-08-11",
            "count": 1
          },
          {
            "date": "2024-08-12",
            "count": 1
          },
          {
            "date": "2024-08-14",
            "count": 1
          },
          {
            "date": "2024-08-20",
            "count": 1
          },
          {
            "date": "2024-08-21",
            "count": 1
          },
          {
            "date": "2024-08-28",
            "count": 2
          },
          {
            "date": "2024-08-29",
            "count": 1
          },
          {
            "date": "2024-09-06",
            "count": 2
          },
          {
            "date": "2024-09-08",
            "count": 1
          },
          {
            "date": "2024-09-09",
            "count": 1
          },
          {
            "date": "2024-09-13",
            "count": 2
          },
          {
            "date": "2024-09-14",
            "count": 1
          },
          {
            "date": "2024-09-20",
            "count": 2
          },
          {
            "date": "2024-09-22",
            "count": 1
          },
          {
            "date": "2024-09-23",
            "count": 1
          },
          {
            "date": "2024-09-27",
            "count": 1
          },
          {
            "date": "2024-09-28",
            "count": 1
          },
          {
            "date": "2024-10-03",
            "count": 1
          },
          {
            "date": "2024-10-10",
            "count": 1
          },
          {
            "date": "2024-10-12",
            "count": 1
          },
          {
            "date": "2024-10-18",
            "count": 1
          },
          {
            "date": "2024-10-23",
            "count": 1
          },
          {
            "date": "2024-10-28",
            "count": 3
          },
          {
            "date": "2024-11-02",
            "count": 1
          },
          {
            "date": "2024-11-04",
            "count": 1
          },
          {
            "date": "2024-11-05",
            "count": 1
          },
          {
            "date": "2024-11-06",
            "count": 1
          },
          {
            "date": "2024-11-07",
            "count": 1
          },
          {
            "date": "2024-11-09",
            "count": 1
          },
          {
            "date": "2024-11-10",
            "count": 2
          },
          {
            "date": "2024-11-12",
            "count": 1
          },
          {
            "date": "2024-11-13",
            "count": 1
          },
          {
            "date": "2024-11-14",
            "count": 2
          },
          {
            "date": "2024-11-18",
            "count": 1
          },
          {
            "date": "2024-11-21",
            "count": 1
          },
          {
            "date": "2024-11-22",
            "count": 1
          },
          {
            "date": "2024-11-23",
            "count": 6
          },
          {
            "date": "2024-11-24",
            "count": 1
          },
          {
            "date": "2024-11-25",
            "count": 4
          },
          {
            "date": "2024-11-26",
            "count": 1
          },
          {
            "date": "2024-11-27",
            "count": 3
          },
          {
            "date": "2024-11-28",
            "count": 1
          },
          {
            "date": "2024-11-30",
            "count": 1
          },
          {
            "date": "2024-12-01",
            "count": 1
          },
          {
            "date": "2024-12-02",
            "count": 2
          },
          {
            "date": "2024-12-04",
            "count": 1
          },
          {
            "date": "2024-12-07",
            "count": 2
          },
          {
            "date": "2024-12-08",
            "count": 1
          },
          {
            "date": "2024-12-10",
            "count": 1
          },
          {
            "date": "2024-12-11",
            "count": 1
          },
          {
            "date": "2024-12-15",
            "count": 1
          },
          {
            "date": "2024-12-20",
            "count": 1
          },
          {
            "date": "2024-12-24",
            "count": 1
          },
          {
            "date": "2024-12-31",
            "count": 1
          },
          {
            "date": "2025-01-05",
            "count": 1
          },
          {
            "date": "2025-01-06",
            "count": 1
          },
          {
            "date": "2025-01-07",
            "count": 1
          },
          {
            "date": "2025-01-08",
            "count": 1
          },
          {
            "date": "2025-01-09",
            "count": 1
          },
          {
            "date": "2025-01-14",
            "count": 1
          },
          {
            "date": "2025-01-15",
            "count": 2
          },
          {
            "date": "2025-01-17",
            "count": 1
          },
          {
            "date": "2025-01-18",
            "count": 1
          },
          {
            "date": "2025-01-19",
            "count": 2
          },
          {
            "date": "2025-01-21",
            "count": 1
          },
          {
            "date": "2025-01-23",
            "count": 1
          },
          {
            "date": "2025-01-24",
            "count": 1
          },
          {
            "date": "2025-01-29",
            "count": 5
          },
          {
            "date": "2025-01-30",
            "count": 2
          },
          {
            "date": "2025-02-04",
            "count": 3
          },
          {
            "date": "2025-02-13",
            "count": 1
          },
          {
            "date": "2025-02-14",
            "count": 1
          },
          {
            "date": "2025-02-15",
            "count": 1
          },
          {
            "date": "2025-02-17",
            "count": 1
          },
          {
            "date": "2025-02-25",
            "count": 1
          },
          {
            "date": "2025-02-26",
            "count": 2
          },
          {
            "date": "2025-02-27",
            "count": 1
          },
          {
            "date": "2025-03-02",
            "count": 1
          },
          {
            "date": "2025-03-04",
            "count": 2
          },
          {
            "date": "2025-03-05",
            "count": 1
          },
          {
            "date": "2025-03-07",
            "count": 1
          },
          {
            "date": "2025-03-09",
            "count": 1
          },
          {
            "date": "2025-03-12",
            "count": 1
          },
          {
            "date": "2025-03-14",
            "count": 1
          },
          {
            "date": "2025-03-18",
            "count": 1
          },
          {
            "date": "2025-03-20",
            "count": 1
          },
          {
            "date": "2025-03-22",
            "count": 1
          },
          {
            "date": "2025-03-23",
            "count": 1
          },
          {
            "date": "2025-03-26",
            "count": 1
          },
          {
            "date": "2025-03-27",
            "count": 1
          },
          {
            "date": "2025-04-08",
            "count": 1
          },
          {
            "date": "2025-04-12",
            "count": 1
          },
          {
            "date": "2025-04-15",
            "count": 1
          },
          {
            "date": "2025-04-20",
            "count": 1
          },
          {
            "date": "2025-04-21",
            "count": 1
          },
          {
            "date": "2025-04-23",
            "count": 1
          },
          {
            "date": "2025-04-24",
            "count": 1
          },
          {
            "date": "2025-04-26",
            "count": 1
          },
          {
            "date": "2025-04-28",
            "count": 1
          },
          {
            "date": "2025-04-30",
            "count": 6
          },
          {
            "date": "2025-05-02",
            "count": 1
          },
          {
            "date": "2025-05-11",
            "count": 2
          },
          {
            "date": "2025-05-13",
            "count": 1
          },
          {
            "date": "2025-05-14",
            "count": 2
          },
          {
            "date": "2025-05-18",
            "count": 1
          },
          {
            "date": "2025-05-22",
            "count": 1
          },
          {
            "date": "2025-05-23",
            "count": 1
          },
          {
            "date": "2025-05-24",
            "count": 1
          },
          {
            "date": "2025-05-25",
            "count": 1
          },
          {
            "date": "2025-05-26",
            "count": 2
          },
          {
            "date": "2025-05-29",
            "count": 2
          },
          {
            "date": "2025-05-31",
            "count": 2
          },
          {
            "date": "2025-06-02",
            "count": 1
          },
          {
            "date": "2025-06-04",
            "count": 1
          },
          {
            "date": "2025-06-09",
            "count": 2
          },
          {
            "date": "2025-06-10",
            "count": 1
          },
          {
            "date": "2025-06-12",
            "count": 1
          },
          {
            "date": "2025-06-13",
            "count": 1
          },
          {
            "date": "2025-06-17",
            "count": 3
          },
          {
            "date": "2025-06-18",
            "count": 2
          },
          {
            "date": "2025-06-19",
            "count": 1
          },
          {
            "date": "2025-06-21",
            "count": 1
          },
          {
            "date": "2025-06-22",
            "count": 1
          },
          {
            "date": "2025-06-24",
            "count": 1
          },
          {
            "date": "2025-06-27",
            "count": 1
          },
          {
            "date": "2025-06-30",
            "count": 1
          },
          {
            "date": "2025-07-05",
            "count": 1
          },
          {
            "date": "2025-07-07",
            "count": 1
          },
          {
            "date": "2025-07-08",
            "count": 1
          },
          {
            "date": "2025-07-10",
            "count": 1
          },
          {
            "date": "2025-07-14",
            "count": 1
          },
          {
            "date": "2025-07-16",
            "count": 2
          },
          {
            "date": "2025-07-21",
            "count": 2
          },
          {
            "date": "2025-07-23",
            "count": 1
          },
          {
            "date": "2025-07-24",
            "count": 1
          },
          {
            "date": "2025-07-25",
            "count": 1
          },
          {
            "date": "2025-08-01",
            "count": 1
          },
          {
            "date": "2025-08-11",
            "count": 2
          },
          {
            "date": "2025-08-15",
            "count": 1
          },
          {
            "date": "2025-08-18",
            "count": 1
          },
          {
            "date": "2025-08-19",
            "count": 1
          },
          {
            "date": "2025-08-26",
            "count": 1
          },
          {
            "date": "2025-09-05",
            "count": 1
          },
          {
            "date": "2025-09-06",
            "count": 1
          },
          {
            "date": "2025-09-10",
            "count": 1
          },
          {
            "date": "2025-09-11",
            "count": 1
          },
          {
            "date": "2025-09-13",
            "count": 1
          },
          {
            "date": "2025-09-15",
            "count": 1
          },
          {
            "date": "2025-09-18",
            "count": 1
          },
          {
            "date": "2025-09-21",
            "count": 1
          },
          {
            "date": "2025-09-22",
            "count": 1
          },
          {
            "date": "2025-09-23",
            "count": 1
          },
          {
            "date": "2025-09-24",
            "count": 1
          },
          {
            "date": "2025-09-26",
            "count": 1
          },
          {
            "date": "2025-09-28",
            "count": 1
          },
          {
            "date": "2025-09-30",
            "count": 3
          },
          {
            "date": "2025-10-09",
            "count": 2
          },
          {
            "date": "2025-10-10",
            "count": 1
          },
          {
            "date": "2025-10-12",
            "count": 2
          },
          {
            "date": "2025-10-23",
            "count": 2
          },
          {
            "date": "2025-10-27",
            "count": 1
          },
          {
            "date": "2025-10-30",
            "count": 1
          },
          {
            "date": "2025-11-03",
            "count": 1
          },
          {
            "date": "2025-11-04",
            "count": 1
          },
          {
            "date": "2025-11-06",
            "count": 1
          },
          {
            "date": "2025-11-09",
            "count": 1
          },
          {
            "date": "2025-11-11",
            "count": 1
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-11-17",
            "count": 3
          },
          {
            "date": "2025-11-21",
            "count": 3
          },
          {
            "date": "2025-11-22",
            "count": 1
          },
          {
            "date": "2025-11-24",
            "count": 1
          },
          {
            "date": "2025-11-29",
            "count": 1
          },
          {
            "date": "2025-12-03",
            "count": 3
          },
          {
            "date": "2025-12-04",
            "count": 2
          },
          {
            "date": "2025-12-05",
            "count": 1
          },
          {
            "date": "2025-12-06",
            "count": 1
          },
          {
            "date": "2025-12-07",
            "count": 1
          },
          {
            "date": "2025-12-12",
            "count": 1
          },
          {
            "date": "2025-12-23",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 1
          },
          {
            "date": "2026-01-01",
            "count": 1
          },
          {
            "date": "2026-01-03",
            "count": 1
          },
          {
            "date": "2026-01-06",
            "count": 1
          },
          {
            "date": "2026-01-07",
            "count": 1
          },
          {
            "date": "2026-01-09",
            "count": 1
          },
          {
            "date": "2026-01-13",
            "count": 1
          },
          {
            "date": "2026-01-17",
            "count": 1
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-01-22",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 2
          },
          {
            "date": "2026-01-25",
            "count": 2
          },
          {
            "date": "2026-01-28",
            "count": 1
          },
          {
            "date": "2026-01-29",
            "count": 1
          },
          {
            "date": "2026-02-03",
            "count": 1
          },
          {
            "date": "2026-02-04",
            "count": 1
          },
          {
            "date": "2026-02-05",
            "count": 1
          },
          {
            "date": "2026-02-07",
            "count": 1
          },
          {
            "date": "2026-02-09",
            "count": 1
          },
          {
            "date": "2026-02-15",
            "count": 1
          },
          {
            "date": "2026-02-16",
            "count": 1
          },
          {
            "date": "2026-02-17",
            "count": 1
          },
          {
            "date": "2026-02-18",
            "count": 1
          },
          {
            "date": "2026-02-20",
            "count": 2
          },
          {
            "date": "2026-02-21",
            "count": 1
          },
          {
            "date": "2026-02-24",
            "count": 1
          },
          {
            "date": "2026-02-25",
            "count": 1
          },
          {
            "date": "2026-02-26",
            "count": 2
          },
          {
            "date": "2026-02-27",
            "count": 1
          },
          {
            "date": "2026-02-28",
            "count": 2
          },
          {
            "date": "2026-03-09",
            "count": 1
          },
          {
            "date": "2026-03-10",
            "count": 1
          },
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-03-12",
            "count": 2
          },
          {
            "date": "2026-03-18",
            "count": 1
          },
          {
            "date": "2026-03-20",
            "count": 2
          },
          {
            "date": "2026-03-27",
            "count": 2
          },
          {
            "date": "2026-04-01",
            "count": 1
          },
          {
            "date": "2026-04-05",
            "count": 2
          },
          {
            "date": "2026-04-06",
            "count": 1
          },
          {
            "date": "2026-04-07",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 1
          },
          {
            "date": "2026-04-16",
            "count": 1
          },
          {
            "date": "2026-04-17",
            "count": 1
          },
          {
            "date": "2026-04-19",
            "count": 1
          },
          {
            "date": "2026-04-23",
            "count": 1
          },
          {
            "date": "2026-04-28",
            "count": 1
          },
          {
            "date": "2026-05-11",
            "count": 2
          },
          {
            "date": "2026-05-14",
            "count": 1
          },
          {
            "date": "2026-05-17",
            "count": 1
          },
          {
            "date": "2026-05-21",
            "count": 1
          },
          {
            "date": "2026-05-22",
            "count": 1
          },
          {
            "date": "2026-05-24",
            "count": 1
          },
          {
            "date": "2026-06-03",
            "count": 1
          },
          {
            "date": "2026-06-04",
            "count": 1
          },
          {
            "date": "2026-06-12",
            "count": 1
          },
          {
            "date": "2026-06-22",
            "count": 2
          },
          {
            "date": "2026-06-25",
            "count": 2
          },
          {
            "date": "2026-06-28",
            "count": 1
          },
          {
            "date": "2026-06-29",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-09",
            "count": 1
          },
          {
            "date": "2026-07-14",
            "count": 1
          },
          {
            "date": "2026-07-16",
            "count": 1
          },
          {
            "date": "2026-07-21",
            "count": 1
          },
          {
            "date": "2026-07-22",
            "count": 1
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_stars": 8794
      },
      "open_issues_and_prs": 22
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 339892,
      "source_files_sampled": 1743,
      "oversized_source_files": 30,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "composer.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 5,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 37,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "packagist"
      ],
      "dependencies": [
        {
          "name": "cakephp/chronos",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.3"
        },
        {
          "name": "laminas/laminas-diactoros",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.8"
        },
        {
          "name": "laminas/laminas-httphandlerrunner",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.6"
        },
        {
          "name": "league/container",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5.1"
        },
        {
          "name": "psr/container",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.1 || ^2.0"
        },
        {
          "name": "psr/http-client",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.0.2"
        },
        {
          "name": "psr/http-factory",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.1"
        },
        {
          "name": "psr/http-message",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.1 || ^2.0"
        },
        {
          "name": "psr/http-server-handler",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.0.2"
        },
        {
          "name": "psr/http-server-middleware",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.0.2"
        },
        {
          "name": "psr/link",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.0"
        },
        {
          "name": "psr/log",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.0"
        },
        {
          "name": "psr/simple-cache",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.0 || ^3.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "cakephp/chronos",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/chronos",
            "direct": true,
            "version": "3.0.4",
            "ecosystem": "packagist"
          },
          {
            "name": "laminas/laminas-diactoros",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "laminas/laminas-httphandlerrunner",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "league/container",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/container",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/http-client",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/http-factory",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/http-message",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/http-server-handler",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/http-server-middleware",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/link",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/log",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/simple-cache",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "psr/simple-cache",
            "direct": true,
            "version": "3.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "boundwize/structarmed",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/cache",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/cakephp-codesniffer",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/cakephp-codesniffer",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/collection",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/console",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/core",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/database",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/datasource",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/event",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/i18n",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/log",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/orm",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/utility",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "cakephp/validation",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "composer/ca-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "ext-intl",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "ext-json",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "ext-mbstring",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "http-interop/http-factory-tests",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "mikey179/vfsstream",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "mockery/mockery",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "paragonie/csp-builder",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "php",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "squizlabs/php_codesniffer",
            "direct": false,
            "version": "3.8.1",
            "ecosystem": "packagist"
          },
          {
            "name": "theseer/tokenizer",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "packagist"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 42,
        "direct_count": 15,
        "indirect_count": 27
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 11,
        "merged_prs": 10087,
        "open_issues": 11,
        "closed_ratio": 0.998,
        "closed_issues": 6854,
        "closed_unmerged_prs": 2242
      },
      "bus_factor": 2,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "markstory",
          "commits": 17714,
          "avatar_url": "https://avatars.githubusercontent.com/u/24086?v=4"
        },
        {
          "type": "User",
          "login": "ADmad",
          "commits": 5929,
          "avatar_url": "https://avatars.githubusercontent.com/u/142658?v=4"
        },
        {
          "type": "User",
          "login": "lorenzo",
          "commits": 5699,
          "avatar_url": "https://avatars.githubusercontent.com/u/37621?v=4"
        },
        {
          "type": "User",
          "login": "othercorey",
          "commits": 1734,
          "avatar_url": "https://avatars.githubusercontent.com/u/24221186?v=4"
        },
        {
          "type": "User",
          "login": "phpnut",
          "commits": 1565,
          "avatar_url": "https://avatars.githubusercontent.com/u/148097?v=4"
        },
        {
          "type": "User",
          "login": "nateabele",
          "commits": 1055,
          "avatar_url": "https://avatars.githubusercontent.com/u/18288?v=4"
        },
        {
          "type": "User",
          "login": "AD7six",
          "commits": 759,
          "avatar_url": "https://avatars.githubusercontent.com/u/33387?v=4"
        },
        {
          "type": "User",
          "login": "jrbasso",
          "commits": 636,
          "avatar_url": "https://avatars.githubusercontent.com/u/26548?v=4"
        },
        {
          "type": "User",
          "login": "ceeram",
          "commits": 386,
          "avatar_url": "https://avatars.githubusercontent.com/u/111448?v=4"
        },
        {
          "type": "User",
          "login": "LordSimal",
          "commits": 341,
          "avatar_url": "https://avatars.githubusercontent.com/u/9105243?v=4"
        }
      ],
      "contributors_sampled": 99,
      "top_contributor_share": 0.431
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "api-docs.yml",
        "ci.yml",
        "split-packages.yml",
        "stale.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        "phpcs.xml",
        "phpstan.neon"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "composer.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "21 out of 21 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 5,
            "reason": "Found 16/28 approved changesets -- score normalized to 5",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 67 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 22 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": null,
            "reason": "no dependencies found",
            "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": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "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": "7b7b4059fdc4e6684911569c5a639e096221ba3c",
        "ran_at": "2026-07-22T01:28:20Z",
        "aggregate_score": 5.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T00:19:31Z",
      "oldest_open_prs": [
        {
          "number": 19313,
          "created_at": "2026-03-05T13:52:13Z",
          "last_comment_at": "2026-03-07T07:05:23Z",
          "last_comment_author": "ADmad"
        },
        {
          "number": 19381,
          "created_at": "2026-04-05T09:01:38Z",
          "last_comment_at": "2026-04-10T10:48:57Z",
          "last_comment_author": "rochamarcelo"
        },
        {
          "number": 19463,
          "created_at": "2026-05-24T12:12:07Z",
          "last_comment_at": "2026-05-31T21:06:17Z",
          "last_comment_author": "othercorey"
        },
        {
          "number": 19469,
          "created_at": "2026-05-25T15:48:03Z",
          "last_comment_at": "2026-05-26T05:29:09Z",
          "last_comment_author": "josbeir"
        },
        {
          "number": 19484,
          "created_at": "2026-05-30T14:41:20Z",
          "last_comment_at": "2026-07-21T11:57:38Z",
          "last_comment_author": "rochamarcelo"
        },
        {
          "number": 19546,
          "created_at": "2026-07-19T08:13:36Z",
          "last_comment_at": "2026-07-19T09:53:40Z",
          "last_comment_author": "masakielastic"
        },
        {
          "number": 19547,
          "created_at": "2026-07-19T10:36:05Z",
          "last_comment_at": "2026-07-19T14:48:01Z",
          "last_comment_author": "markstory"
        },
        {
          "number": 19548,
          "created_at": "2026-07-20T06:32:57Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 19550,
          "created_at": "2026-07-20T15:13:12Z",
          "last_comment_at": "2026-07-20T16:21:10Z",
          "last_comment_author": "samsonasik"
        },
        {
          "number": 19553,
          "created_at": "2026-07-20T17:46:49Z",
          "last_comment_at": "2026-07-20T17:56:05Z",
          "last_comment_author": "dereuromark"
        },
        {
          "number": 19559,
          "created_at": "2026-07-21T17:59:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-22T00:26:40Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 18083,
          "created_at": "2024-12-13T06:37:21Z",
          "last_comment_at": "2026-02-24T00:09:31Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 19165,
          "created_at": "2026-01-01T18:09:51Z",
          "last_comment_at": "2026-04-23T08:04:21Z",
          "last_comment_author": "dereuromark"
        },
        {
          "number": 19297,
          "created_at": "2026-02-22T10:20:02Z",
          "last_comment_at": "2026-05-15T14:35:51Z",
          "last_comment_author": "josbeir"
        },
        {
          "number": 19380,
          "created_at": "2026-04-04T16:06:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 19474,
          "created_at": "2026-05-28T08:55:25Z",
          "last_comment_at": "2026-06-03T04:43:10Z",
          "last_comment_author": "othercorey"
        },
        {
          "number": 19482,
          "created_at": "2026-05-30T13:52:07Z",
          "last_comment_at": "2026-06-30T21:52:30Z",
          "last_comment_author": "bancer"
        },
        {
          "number": 19508,
          "created_at": "2026-06-16T15:23:00Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 19509,
          "created_at": "2026-06-18T11:02:50Z",
          "last_comment_at": "2026-07-07T04:00:50Z",
          "last_comment_author": "markstory"
        },
        {
          "number": 19535,
          "created_at": "2026-07-10T06:58:03Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 19557,
          "created_at": "2026-07-21T13:17:20Z",
          "last_comment_at": "2026-07-22T00:27:06Z",
          "last_comment_author": "markstory"
        },
        {
          "number": 19562,
          "created_at": "2026-07-21T19:11:14Z",
          "last_comment_at": "2026-07-21T19:58:01Z",
          "last_comment_author": "dereuromark"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/cakephp/cakephp",
    "host": "github.com",
    "name": "cakephp",
    "owner": "cakephp"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 84,
      "inputs": {
        "security": 67,
        "vitality": 96,
        "community": 91,
        "governance": 78,
        "engineering": 84
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 96,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "commits_last_year": 806,
              "human_commit_share": 0.96,
              "days_since_last_push": 0,
              "active_weeks_last_year": 52
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "52/52 weeks with commits",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 52
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "806 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 806
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 22 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "5.4.0",
              "releases_from_tags": false,
              "days_since_latest_release": 2,
              "mean_days_between_releases": 2.4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~2.4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 2.4
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "excellent",
        "name": "Community & Adoption",
        "value": 91,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "forks": 3378,
              "stars": 8794,
              "watchers": 515,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "8,794 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 8794
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "3,378 forks",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 3378
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "515 watchers",
                "points": 15,
                "status": "met",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 515
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": null,
            "notes": [],
            "value": 95,
            "inputs": {
              "packages": [
                "cakephp/cakephp"
              ],
              "dependents": 1968,
              "ecosystems": "packagist",
              "total_downloads": 19814486,
              "monthly_downloads": 403000
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "403,000 downloads/month across packagist",
                "points": 74.7,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 403000,
                      "ecosystems": "packagist"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "1,968 packages depend on it",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "registry_dependents",
                    "params": {
                      "count": 1968
                    }
                  }
                ],
                "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": 78,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 99,
              "top_contributor_share": 0.431
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 43% of commits",
                "points": 12.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 43
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "99 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 99
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 67 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "merged_prs": 10087,
              "open_issues": 11,
              "closed_issues": 6854,
              "issue_closed_ratio": 0.998,
              "closed_unmerged_prs": 2242
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.7,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "10087/12329 decided PRs merged",
                "points": 31.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 10087,
                      "decided": 12329
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 16/28 approved changesets -- score normalized to 5",
                "points": 7.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 73,
            "inputs": {
              "followers": 286,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "cakephp",
              "public_repos": 83,
              "account_age_days": 6525
            },
            "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": "286 followers of cakephp",
                "points": 17.7,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 286,
                      "login": "cakephp"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "83 public repos, account ~17 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 83
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 17
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "cakephp/cakephp"
              ],
              "ecosystems": "packagist",
              "any_deprecated": false,
              "min_days_since_publish": 2
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on packagist",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "packagist"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 2 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "456 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 456
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 84,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "4 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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": "phpcs.xml, phpstan.neon",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "phpcs.xml, phpstan.neon"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "21 out of 21 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [
                "cakephp",
                "php",
                "mvc-framework",
                "psr-7",
                "orm",
                "mvc",
                "validation",
                "rest-api",
                "web",
                "web-framework",
                "rapid-development",
                "form-builder",
                "hacktoberfest"
              ],
              "has_wiki": true,
              "homepage": "http://cakephp.org",
              "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": "http://cakephp.org",
                "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": "13 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 13
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 67,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Dangerous-Workflow, Packaging, Pinned-Dependencies, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "dangerous_workflow",
                    "packaging",
                    "pinned_dependencies",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 59,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 13,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 5,
              "scorecard_aggregate": 5.9
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "21 out of 21 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 16/28 approved changesets -- score normalized to 5",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 67 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 22 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 5 resolved dependencies against OSV; 37 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 5
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 37
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 5,
              "unassessed_packages": 37,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 5,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 20
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 60,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 39,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.74,
              "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": "71 of 96 human commits state their intent (structured subject or explanatory body)",
                "points": 39.4,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 71,
                      "sampled": 96
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 79,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "composer.lock"
              ],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.01,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.04
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": "phpcs.xml, phpstan.neon",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "phpcs.xml, phpstan.neon"
                    }
                  }
                ],
                "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": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "1 of the last 100 commits agent-authored or agent-credited",
                "points": 2,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 1,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "4 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 4,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "primary_language": "PHP",
              "largest_source_bytes": 339892,
              "source_files_sampled": 1743,
              "oversized_source_files": 30
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "PHP without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "PHP"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "30/1743 source files over 60KB",
                "points": 54.1,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 1743,
                      "oversized": 30
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [],
  "report_type": "repository",
  "generated_at": "2026-07-22T01:28:45.427447Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/cakephp/cakephp.svg",
  "full_name": "cakephp/cakephp",
  "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 StatistikenPackagist.