Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 1.13.0 · 2026-07-29 16:05 UTC

spatie / laravel-query-builder

Easily build Eloquent queries from API requests

PHPMIT★ 4 461 зірка⑂ 418 форківз січ. 2018 р.Переглянути на GitHub ↗

spatie/laravel-query-builder має індекс здоров’я 77 зі 100, що відповідає смузі «Добрий». Найвищий показник — Vitality (87/100), найнижчий — AI Readiness (39/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконують 2 учасники.

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

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

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

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

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

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

Власність

SpatieОрганізація
3 808 підписників524 публічні репозиторіїз трав. 2014 р.

За цим репозиторієм стоїть організація — спільна, підзвітна опіка, здатна пережити будь-якого окремого мейнтейнера.

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

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
Packagistspatie/laravel-query-builder7.3.01 327 41313388 днів томуspatielaravel-query-builder

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

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

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

87Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
16.6/36Ритм комітів — 24/52 тижнів із комітами
16.7/18Обсяг комітів — 71 комітів за останній рік
9/10OpenSSF Scorecard: Maintained — 11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9
Використані вхідні дані
commits_last_year71
human_commit_share0,86
days_since_last_push0
active_weeks_last_year24
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 100 релізів
36/36Свіжість релізів — останній реліз 88 дн. тому
27/27Ритм релізів — реліз кожні ~12,5 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count100
latest_release_tag7.3.0
releases_from_tagsні
days_since_latest_release88
mean_days_between_releases12,5
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

84Добрий · 18% загального індексу
Як обчислюється оцінка
59.2/60Зірки — 4 461 зірок
21.8/25Форки — 418 форків
9.2/15Спостерігачі — 47 спостерігачів
Використані вхідні дані
forks418
stars4 461
watchers47
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
18/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні
Як обчислюється оцінка
80/80Щомісячні завантаження — 1 327 413 завантажень/місяць у packagist
16.1/20Залежні пакети в реєстрі — залежних пакетів: 256
Використані вхідні дані
packagesspatie/laravel-query-builder
dependents256
ecosystemspackagist
total_downloads31 994 583
monthly_downloads1 327 413

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

77Добрий · 24% загального індексу
Як обчислюється оцінка
25.2/54Бас-фактор — на 2 контриб’ютор(ів) припадає половина всіх комітів
12.8/22.5Розподіл комітів — головний контриб’ютор — автор 43% комітів
13.5/13.5Широта контриб’юторів — 98 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 10 contributing companies or organizations
Використані вхідні дані
bus_factor2
contributors_sampled98
top_contributor_share0,432
Як обчислюється оцінка
46.8/46.8Вирішення issue — закрито 100% issue
25.5/38.3Прийняття PR — злито 300/450 вирішених PR
3/15OpenSSF Scorecard: Code-Review — Found 6/23 approved changesets -- score normalized to 2
Використані вхідні дані
merged_prs300
open_issues0
closed_issues339
issue_closed_ratio1
closed_unmerged_prs150
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
25/25Охоплення власника — 3 808 підписників у spatie
25/25Послужний список — 524 публічних репозиторіїв, вік облікового запису ~12 р.
Використані вхідні дані
followers3 808
owner_typeOrganization
is_verified
owner_loginspatie
public_repos524
account_age_days4 463

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

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у packagist
35/35Свіжість публікацій — остання публікація 88 дн. тому
20/20Історія версій — 133 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesspatie/laravel-query-builder
ecosystemspackagist
any_deprecatedні
min_days_since_publish88

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

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

77Добрий · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 5 процес(ів) CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
6.4/6.4.editorconfig
14/20OpenSSF Scorecard: CI-Tests — 10 out of 14 merged PRs checked by a CI test -- score normalized to 7
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigтак
has_linter_configні
has_precommit_configні

Документація

90Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://spatie.be/docs/laravel-query-builder
10/10Опис репозиторію
10/10Теми — 4 тем
0/10Wiki
Використані вхідні дані
topicsapi, laravel, php, hacktoberfest
has_wikiні
homepagehttps://spatie.be/docs/laravel-query-builder
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

54Помірний · 16% загального індексу

Стан безпеки

54Помірний
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
1.8/2.5CI-Tests — 10 out of 14 merged PRs checked by a CI test -- score normalized to 7
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
1.5/7.5Code-Review — Found 6/23 approved changesets -- score normalized to 2
2.5/2.5Contributors — project has 10 contributing companies or organizations
0/10Dangerous-Workflow — немає даних
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
6.8/7.5Maintained — 11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9
0/5Packaging — немає даних
0/5Pinned-Dependencies — немає даних
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 — немає даних
0/7.5Token-Permissions — немає даних
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated13
scorecard_versionv5.5.0
checks_inconclusive5
scorecard_aggregate5,4
Виключено з оцінювання (немає даних або не застосовно): dangerous_workflow, packaging, pinned_dependencies, signed_releases, token_permissions. Залишкові ваги перенормовано.

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

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

39У зоні ризику · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
23.6/40Читабельна історія комітів — намір зазначено у 38 з 86 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,442
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
0/11Статична перевірка типів
0/10Відтворюване середовище
10/10Підтверджена практика роботи з агентами — 6 з останніх 100 комітів створено агентом або з його зазначенням
8/8Автоматизоване супроводження — 11 з останніх 100 комітів — автоматичні оновлення залежностей
0/10OpenSSF Scorecard: Pinned-Dependencies — немає даних
Використані вхідні дані
has_nixні
has_testsтак
lockfiles
has_dockerfileні
typed_languageні
bootstrap_files
has_devcontainerні
has_linter_configні
typecheck_configs
agent_commit_share0,06
toolchain_manifests
dependency_bot_commit_share0,11
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Pinned-Dependencies. Залишкові ваги перенормовано.
Як обчислюється оцінка
0/45Типізований код — PHP без конфігурації перевірки типів
55/55Керовані розміри файлів — 0/74 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languagePHP
largest_source_bytes38 060
source_files_sampled74
oversized_source_files0

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

4 461зірок GitHub
98контриб'юторів
71комітів за останні 12 місяців
0днів від останнього пушу
100релізів
2бас-фактор
0відкритих issue
Packagistпакетних екосистем

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

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • No resolved dependencies carried a version and a supported ecosystem

Докладніше

Історія зірок і форків 0 ★ / 418 ⇿
0Зірки
418Форки
100Релізи

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

010020030040050040572018-012022-042026-07
Мажорні 6Мінорні 33Патчі 61

Кожна точка охоплює 8 днів.

OpenSSF Scorecard 5.4 / 10
5.4сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-29 16:05 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
7CI-Tests10 out of 14 merged PRs checked by a CI test -- score normalized to 7
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
2Code-ReviewFound 6/23 approved changesets -- score normalized to 2
10Contributorsproject has 10 contributing companies or organizations
н/дDangerous-Workflowno workflows found
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
9Maintained11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9
н/дPackagingpackaging workflow not detected
н/дPinned-Dependenciesno dependencies found
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
н/дSigned-Releasesno releases found
н/дToken-PermissionsNo tokens found
10Vulnerabilities0 existing vulnerabilities detected
Прямі залежності 4
РеєстрПакетОбмеження версіїМаніфест
Packagistilluminate/database^12.0|^13.0composer.json
Packagistilluminate/http^12.0|^13.0composer.json
Packagistilluminate/support^12.0|^13.0composer.json
Packagistspatie/laravel-package-tools^1.11composer.json
Усі залежності 12

Повний розв'язаний набір залежностей із графа залежностей GitHub: 4 прямих і 8 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
Packagistilluminate/databaseпряма
Packagistilluminate/httpпряма
Packagistilluminate/supportпряма
Packagistspatie/laravel-package-toolsпряма
Packagistext-jsonнепряма
Packagistlarastan/larastanнепряма
Packagistmockery/mockeryнепряма
Packagistorchestra/testbenchнепряма
Packagistpestphp/pestнепряма
Packagistphpнепряма
Packagistphpunit/phpunitнепряма
Packagistspatie/invadeнепряма
Сповіщення про залежності не оцінено

Звірка сповіщень не відбулася для цього звіту: No resolved dependencies carried a version and a supported ecosystem

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "api",
        "laravel",
        "php",
        "hacktoberfest"
      ],
      "is_fork": false,
      "size_kb": 1377,
      "has_wiki": false,
      "homepage": "https://spatie.be/docs/laravel-query-builder",
      "languages": {
        "PHP": 209847
      },
      "pushed_at": "2026-07-29T16:03:06Z",
      "created_at": "2018-01-15T16:14:37Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-29T06:16:43Z",
      "description": "Easily build Eloquent queries from API requests",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "PHP",
      "significant_languages": [
        "PHP"
      ]
    },
    "owner": {
      "blog": "https://spatie.be/open-source",
      "name": "Spatie",
      "type": "Organization",
      "login": "spatie",
      "company": null,
      "location": "Antwerp, Belgium",
      "followers": 3808,
      "avatar_url": "https://avatars.githubusercontent.com/u/7535935?v=4",
      "created_at": "2014-05-09T16:26:39Z",
      "is_verified": null,
      "public_repos": 524,
      "account_age_days": 4463
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "7.3.0",
          "kind": "minor",
          "published_at": "2026-05-02T11:22:39Z"
        },
        {
          "tag": "7.2.1",
          "kind": "patch",
          "published_at": "2026-04-17T07:58:54Z"
        },
        {
          "tag": "7.2.0",
          "kind": "minor",
          "published_at": "2026-04-08T12:52:18Z"
        },
        {
          "tag": "7.0.1",
          "kind": "patch",
          "published_at": "2026-03-16T10:22:19Z"
        },
        {
          "tag": "7.0.0",
          "kind": "major",
          "published_at": "2026-03-15T14:23:38Z"
        },
        {
          "tag": "6.4.4",
          "kind": "patch",
          "published_at": "2026-03-08T13:45:11Z"
        },
        {
          "tag": "6.4.3",
          "kind": "patch",
          "published_at": "2026-02-21T21:10:45Z"
        },
        {
          "tag": "6.4.2",
          "kind": "patch",
          "published_at": "2026-02-18T09:22:41Z"
        },
        {
          "tag": "6.4.1",
          "kind": "patch",
          "published_at": "2026-01-27T07:27:35Z"
        },
        {
          "tag": "6.4.0",
          "kind": "minor",
          "published_at": "2026-01-09T13:36:13Z"
        },
        {
          "tag": "6.3.6",
          "kind": "patch",
          "published_at": "2025-10-20T09:50:38Z"
        },
        {
          "tag": "6.3.5",
          "kind": "patch",
          "published_at": "2025-08-04T07:36:52Z"
        },
        {
          "tag": "6.3.4",
          "kind": "patch",
          "published_at": "2025-07-25T07:02:14Z"
        },
        {
          "tag": "6.3.3",
          "kind": "patch",
          "published_at": "2025-07-14T08:31:57Z"
        },
        {
          "tag": "6.3.2",
          "kind": "patch",
          "published_at": "2025-04-16T07:30:26Z"
        },
        {
          "tag": "6.3.1",
          "kind": "patch",
          "published_at": "2025-02-21T09:24:11Z"
        },
        {
          "tag": "6.3.0",
          "kind": "minor",
          "published_at": "2024-12-23T22:17:31Z"
        },
        {
          "tag": "6.2.3",
          "kind": "patch",
          "published_at": "2024-12-23T09:51:53Z"
        },
        {
          "tag": "6.2.2",
          "kind": "patch",
          "published_at": "2024-12-11T09:54:06Z"
        },
        {
          "tag": "6.2.1",
          "kind": "patch",
          "published_at": "2024-10-03T11:11:30Z"
        },
        {
          "tag": "6.2.0",
          "kind": "minor",
          "published_at": "2024-09-27T08:00:56Z"
        },
        {
          "tag": "6.1.0",
          "kind": "minor",
          "published_at": "2024-09-23T08:27:54Z"
        },
        {
          "tag": "6.0.1",
          "kind": "patch",
          "published_at": "2024-05-21T12:12:31Z"
        },
        {
          "tag": "6.0.0",
          "kind": "major",
          "published_at": "2024-05-10T09:08:28Z"
        },
        {
          "tag": "5.8.1",
          "kind": "patch",
          "published_at": "2024-05-10T08:22:19Z"
        },
        {
          "tag": "5.8.0",
          "kind": "minor",
          "published_at": "2024-02-06T20:09:40Z"
        },
        {
          "tag": "5.7.0",
          "kind": "minor",
          "published_at": "2024-01-08T10:08:44Z"
        },
        {
          "tag": "5.6.0",
          "kind": "minor",
          "published_at": "2023-10-05T11:28:59Z"
        },
        {
          "tag": "5.5.0",
          "kind": "minor",
          "published_at": "2023-09-12T09:08:20Z"
        },
        {
          "tag": "5.4.0",
          "kind": "minor",
          "published_at": "2023-09-08T14:45:57Z"
        },
        {
          "tag": "5.3.0",
          "kind": "minor",
          "published_at": "2023-08-21T10:59:17Z"
        },
        {
          "tag": "5.2.0",
          "kind": "minor",
          "published_at": "2023-02-24T16:11:33Z"
        },
        {
          "tag": "5.1.2",
          "kind": "patch",
          "published_at": "2023-01-24T23:33:29Z"
        },
        {
          "tag": "5.1.1",
          "kind": "patch",
          "published_at": "2022-12-02T21:29:00Z"
        },
        {
          "tag": "4.0.4",
          "kind": "patch",
          "published_at": "2022-11-28T13:51:45Z"
        },
        {
          "tag": "5.1.0",
          "kind": "minor",
          "published_at": "2022-11-28T11:24:23Z"
        },
        {
          "tag": "3.6.3",
          "kind": "patch",
          "published_at": "2022-08-30T06:54:01Z"
        },
        {
          "tag": "5.0.3",
          "kind": "patch",
          "published_at": "2022-07-29T14:20:02Z"
        },
        {
          "tag": "5.0.2",
          "kind": "patch",
          "published_at": "2022-04-25T07:07:57Z"
        },
        {
          "tag": "4.0.3",
          "kind": "patch",
          "published_at": "2022-03-23T14:26:35Z"
        },
        {
          "tag": "5.0.1",
          "kind": "patch",
          "published_at": "2022-03-18T07:45:48Z"
        },
        {
          "tag": "5.0.0",
          "kind": "major",
          "published_at": "2022-01-13T10:59:01Z"
        },
        {
          "tag": "3.6.2",
          "kind": "patch",
          "published_at": "2022-01-09T15:39:38Z"
        },
        {
          "tag": "4.0.2",
          "kind": "patch",
          "published_at": "2021-12-26T19:19:28Z"
        },
        {
          "tag": "3.6.1",
          "kind": "patch",
          "published_at": "2021-11-17T15:42:00Z"
        },
        {
          "tag": "4.0.1",
          "kind": "patch",
          "published_at": "2021-10-27T14:49:52Z"
        },
        {
          "tag": "4.0.0",
          "kind": "major",
          "published_at": "2021-10-20T12:46:26Z"
        },
        {
          "tag": "3.6.0",
          "kind": "minor",
          "published_at": "2021-09-06T08:04:13Z"
        },
        {
          "tag": "3.5.0",
          "kind": "minor",
          "published_at": "2021-07-05T14:17:56Z"
        },
        {
          "tag": "3.4.3",
          "kind": "patch",
          "published_at": "2021-07-05T12:47:39Z"
        },
        {
          "tag": "3.4.2",
          "kind": "patch",
          "published_at": "2021-07-05T12:41:19Z"
        },
        {
          "tag": "1.18.0",
          "kind": "minor",
          "published_at": "2021-06-10T22:29:45Z"
        },
        {
          "tag": "3.4.1",
          "kind": "patch",
          "published_at": "2021-05-24T10:13:46Z"
        },
        {
          "tag": "3.4.0",
          "kind": "minor",
          "published_at": "2021-05-20T09:44:39Z"
        },
        {
          "tag": "3.3.4",
          "kind": "patch",
          "published_at": "2020-11-26T14:55:31Z"
        },
        {
          "tag": "3.3.3",
          "kind": "patch",
          "published_at": "2020-10-27T16:14:58Z"
        },
        {
          "tag": "3.3.2",
          "kind": "patch",
          "published_at": "2020-10-27T15:24:36Z"
        },
        {
          "tag": "3.3.1",
          "kind": "patch",
          "published_at": "2020-10-11T08:33:24Z"
        },
        {
          "tag": "3.3.0",
          "kind": "minor",
          "published_at": "2020-10-05T19:31:21Z"
        },
        {
          "tag": "3.2.4",
          "kind": "patch",
          "published_at": "2020-10-01T13:53:09Z"
        },
        {
          "tag": "3.2.3",
          "kind": "patch",
          "published_at": "2020-09-30T12:44:19Z"
        },
        {
          "tag": "3.2.2",
          "kind": "patch",
          "published_at": "2020-09-09T16:43:46Z"
        },
        {
          "tag": "3.2.1",
          "kind": "patch",
          "published_at": "2020-09-09T16:28:06Z"
        },
        {
          "tag": "2.8.4",
          "kind": "patch",
          "published_at": "2020-10-02T15:31:06Z"
        },
        {
          "tag": "2.8.3",
          "kind": "patch",
          "published_at": "2020-09-08T22:42:14Z"
        },
        {
          "tag": "3.2.0",
          "kind": "minor",
          "published_at": "2020-09-08T22:38:43Z"
        },
        {
          "tag": "3.0.0",
          "kind": "major",
          "published_at": "2020-08-18T14:54:09Z"
        },
        {
          "tag": "2.8.2",
          "kind": "patch",
          "published_at": "2020-05-25T09:37:10Z"
        },
        {
          "tag": "2.8.0",
          "kind": "minor",
          "published_at": "2020-03-02T21:21:58Z"
        },
        {
          "tag": "2.7.2",
          "kind": "patch",
          "published_at": "2020-02-26T14:38:33Z"
        },
        {
          "tag": "2.7.1",
          "kind": "patch",
          "published_at": "2020-02-26T14:36:38Z"
        },
        {
          "tag": "2.7.0",
          "kind": "minor",
          "published_at": "2020-02-11T10:16:23Z"
        },
        {
          "tag": "2.6.1",
          "kind": "patch",
          "published_at": "2020-02-11T09:26:17Z"
        },
        {
          "tag": "2.6.0",
          "kind": "minor",
          "published_at": "2020-02-10T15:25:06Z"
        },
        {
          "tag": "2.5.1",
          "kind": "patch",
          "published_at": "2020-01-22T13:24:07Z"
        },
        {
          "tag": "2.5.0",
          "kind": "minor",
          "published_at": "2020-01-09T12:14:49Z"
        },
        {
          "tag": "2.4.0",
          "kind": "minor",
          "published_at": "2020-01-04T22:55:53Z"
        },
        {
          "tag": "2.3.0",
          "kind": "minor",
          "published_at": "2019-10-08T08:49:31Z"
        },
        {
          "tag": "2.2.1",
          "kind": "patch",
          "published_at": "2019-10-03T10:01:04Z"
        },
        {
          "tag": "2.2.0",
          "kind": "minor",
          "published_at": "2019-10-03T10:00:48Z"
        },
        {
          "tag": "2.1.0",
          "kind": "minor",
          "published_at": "2019-09-03T13:33:37Z"
        },
        {
          "tag": "2.0.1",
          "kind": "patch",
          "published_at": "2019-08-12T15:01:50Z"
        },
        {
          "tag": "2.0.0",
          "kind": "major",
          "published_at": "2019-08-12T10:01:18Z"
        },
        {
          "tag": "1.17.5",
          "kind": "patch",
          "published_at": "2019-07-08T09:12:49Z"
        },
        {
          "tag": "1.17.4",
          "kind": "patch",
          "published_at": "2019-06-03T09:48:32Z"
        },
        {
          "tag": "1.17.3",
          "kind": "patch",
          "published_at": "2019-04-16T15:36:31Z"
        },
        {
          "tag": "1.17.2",
          "kind": "patch",
          "published_at": "2019-04-12T16:52:07Z"
        },
        {
          "tag": "1.17.1",
          "kind": "patch",
          "published_at": "2019-04-09T14:30:11Z"
        },
        {
          "tag": "1.16.1",
          "kind": "patch",
          "published_at": "2019-04-09T14:29:53Z"
        },
        {
          "tag": "1.17.0",
          "kind": "minor",
          "published_at": "2019-03-11T10:02:32Z"
        },
        {
          "tag": "1.16.0",
          "kind": "minor",
          "published_at": "2019-03-06T10:14:20Z"
        },
        {
          "tag": "1.15.2",
          "kind": "patch",
          "published_at": "2019-02-28T11:44:36Z"
        },
        {
          "tag": "1.15.1",
          "kind": "patch",
          "published_at": "2019-02-28T09:51:47Z"
        },
        {
          "tag": "1.15.0",
          "kind": "minor",
          "published_at": "2019-02-27T15:12:27Z"
        },
        {
          "tag": "1.14.0",
          "kind": "minor",
          "published_at": "2019-02-27T13:51:26Z"
        },
        {
          "tag": "1.13.2",
          "kind": "patch",
          "published_at": "2019-02-27T13:34:33Z"
        },
        {
          "tag": "1.13.1",
          "kind": "patch",
          "published_at": "2019-01-18T22:09:29Z"
        },
        {
          "tag": "1.12.0",
          "kind": "minor",
          "published_at": "2018-11-27T09:11:04Z"
        },
        {
          "tag": "1.11.2",
          "kind": "patch",
          "published_at": "2018-10-30T09:11:10Z"
        },
        {
          "tag": "1.11.1",
          "kind": "patch",
          "published_at": "2018-10-09T15:22:01Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "1fbfd741e8b7bdd7039783455e5d0bd70285986a",
          "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[…]\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/checkout from 6 to 7 (#1063)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-26T09:51:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0a74159205cb4632e326b8d5b7ad94d4962e5846",
          "body": "github.actor reflects the actor that triggered the run, not the PR\nauthor, so it can read 'dependabot[bot]' on a PR whose code is not\nfrom Dependabot. Gate on the immutable PR author instead, and add a\nrepository guard so forks that copy this workflow do not auto-merge.\n\nReported by Volker Dusch (@edorian) and the PHP Foundation.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Harden Dependabot auto-merge actor check",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-06-02T10:33:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "78d3ee5821eead1989399590088b5b9b92e27877",
          "body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Use native GitHub Actions badges in README",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-06-02T06:36:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2005f8d86471d0ac9667953252c5e2f2dae159c5",
          "body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix code style badge to point at pint.yml workflow",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-06-01T22:57:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e54ef7d970fce43407e34b11abb2f2a57a703945",
          "body": "…s/checkout-6\n\nBump actions/checkout from 5 to 6",
          "is_bot": false,
          "headline": "Merge pull request #1061 from spatie/dependabot/github_actions/action…",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-05-11T08:13:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af04e4483fed9aa519ba0050e0ef820e4566a51d",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v5...v6)\n\n---\nupdated-dependenc\n[…]\n:\n- dependency-name: actions/checkout\n  dependency-version: '6'\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 5 to 6",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T22:02:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "04ec2d9ac2b6d3a2ab9867a46c09fd5061ebb080",
          "body": null,
          "is_bot": false,
          "headline": "Fix styling",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-05-02T18:16:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5897a3dff299fb574b0a58b287e40d9f5d242040",
          "body": null,
          "is_bot": false,
          "headline": "Switch to Laravel Pint",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-05-02T18:15:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "131858e0a536da590da99dd0a55f1b3f513256cd",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-05-02T11:22:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3554c005f778d9da89d44b9895d2cca149110fea",
          "body": "…060)\n\n* refactor(AllowedFilter): extract applyTo(Builder) primitive from filter()\n\n* feat(FiltersGroup): add filter class skeleton with constructor validation\n\n* test(FiltersGroup): rename test file to match Spatie convention (Filters* prefix)\n\n* feat(FiltersGroup): implement OR/AND dispatch with c\n[…]\ndrop incomplete filter type list to match README phrasing\n\n* fix(types): add PHPStan generic annotations for applyTo() and FiltersGroup\n\n* style: apply php-cs-fixer ordered imports in FiltersGroupTest",
          "is_bot": false,
          "headline": "feat: filter groups (OR/AND conjunction) — JSON:API Fancy Filters (#1…",
          "author_name": "Birtan Taşkın",
          "author_login": "taskinbirtan",
          "committed_at": "2026-05-02T11:22:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bab39543e4a4b0bc4466a64235e4a02bf642a4ed",
          "body": "* docs: add Angular front-end implementation\n\n* docs: add missing dot on typescript / typescript + react entries for consistency\n\n---------\n\nCo-authored-by: Andrea Tantimonaco <learning@andreatantimonaco.me>",
          "is_bot": false,
          "headline": "docs: add Angular front-end implementation (#1059)",
          "author_name": "Andrea Tantimonaco",
          "author_login": "AndreaAlhena",
          "committed_at": "2026-04-30T16:14:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa448a17d809c785c65766f3e3e6630769cf8755",
          "body": "…abot/fetch-metadata-3.1.0\n\nBump dependabot/fetch-metadata from 3.0.0 to 3.1.0",
          "is_bot": true,
          "headline": "Merge pull request #1058 from spatie/dependabot/github_actions/depend…",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-20T19:54:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "317dc292b37c68447124588b5fd4a5d0d5837752",
          "body": "Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 3.0.0 to 3.1.0.\n- [Release notes](https://github.com/dependabot/fetch-metadata/releases)\n- [Commits](https://github.com/dependabot/fetch-metadata/compare/v3.0.0...v3.1.0)\n\n---\nupdated-dependencies:\n- dependency-name: dependabot/fetch-metadata\n  dependency-version: 3.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump dependabot/fetch-metadata from 3.0.0 to 3.1.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-20T19:54:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ccccf2fb6e15a5da6cdfa5f767428703da34159",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-04-17T08:00:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72b8c2675b8b0642658b5ad83bfef3b6ee77b28f",
          "body": null,
          "is_bot": false,
          "headline": "Fix PHPStan errors on main (#1057)",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-04-17T07:37:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dceb56097f150d71d4d025158265c2f7cc03fd62",
          "body": "* wip\n\n* Run CI workflows on pull_request events\n\n---------\n\nCo-authored-by: Freek Van der Herten <freek@spatie.be>",
          "is_bot": false,
          "headline": "Add support for disabling global filter value splitting (#1056)",
          "author_name": "Paul A.",
          "author_login": "paulandroshchuk",
          "committed_at": "2026-04-17T07:16:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9ff7db6508f3affb9625c0baabb5f047664fbae",
          "body": null,
          "is_bot": false,
          "headline": "Update changelog for 7.2.0",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-04-08T12:52:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52db3a8e31d4a224679113649593ce1e8f472c62",
          "body": "* fix: query builder request should handle empty delimiter string gracefully\n\n* Rename maybeExplode to toParameterArray and improve test\n\n- Rename method to describe intent rather than implementation\n- Test with comma-containing values to verify delimiter is truly disabled\n- Fix test closure style (\n[…]\n test to better describe intent\n- Document disabling global delimiter in multi-value-delimiter docs\n- Add changelog entry for the fix\n\n---------\n\nCo-authored-by: Freek Van der Herten <freek@spatie.be>",
          "is_bot": false,
          "headline": "fix: handle empty delimiters gracefully in query builder (#1055)",
          "author_name": "flexponsive",
          "author_login": "flexponsive",
          "committed_at": "2026-04-08T12:51:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "12252d2962e3865b98fd0cbbd03f5b576fc7448b",
          "body": "Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.5.0 to 3.0.0.\n- [Release notes](https://github.com/dependabot/fetch-metadata/releases)\n- [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.5.0...v3.0.0)\n\n---\nupdated-dependencies:\n- dependency-name\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 dependabot/fetch-metadata from 2.5.0 to 3.0.0 (#1053)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-08T07:35:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e2d651dff2a1010aff315e82580a1dde998d104c",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-03-29T21:38:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ef0a1ff7c4331485b2056542875c60187e12d5f6",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add per-filter delimiter support via fluent delimiter() method",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-03-29T21:37:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a19293fd0e2b32ae31118cb0930211fa7a56735b",
          "body": "Bumps [ramsey/composer-install](https://github.com/ramsey/composer-install) from 3 to 4.\n- [Release notes](https://github.com/ramsey/composer-install/releases)\n- [Commits](https://github.com/ramsey/composer-install/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: ramsey/composer-instal\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 ramsey/composer-install from 3 to 4 (#1052)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-19T07:50:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3e973e363894ea812c02b667e13041d919b3d399",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-03-16T10:22:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ec7246a4c162499381a6e1ddb58a6f0debd8926",
          "body": "…(#1051)\n\n* fix: handle nullable filter edge cases for empty and not-null values\n\nFixes two edge cases in FiltersOperator when using dynamic operator filters\nwith nullable():\n\n1. Empty filter value (?filter[x]=) now defaults to EQUAL operator instead\n   of empty string, correctly producing WHERE x I\n[…]\nsion should only apply when a dynamic\noperator prefix is stripped (e.g. '<>' stripped from '<>' leaves ''),\nnot for all operator filters. Moves the check inside the isDynamic &&\nvalue !== null branch.",
          "is_bot": false,
          "headline": "fix: handle nullable filter edge cases for empty and not-null values …",
          "author_name": "isaackaara",
          "author_login": "isaackaara",
          "committed_at": "2026-03-16T10:22:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "109698599637acf838c6e46d75e80eeb67456373",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-03-15T14:24:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b3228b9e54bb53552c50574dc4466431a662b36",
          "body": "* Prepare v7 with modernized API and new features\n\nDrop Laravel 10/11, require Laravel 12+, Pest 4, PHPUnit 12.\nConvert SortDirection to PHP enum, use variadic parameters across all\nallowed* methods, extract HandlesRelationConstraints trait, move delimiter\nconfig from global static state to config f\n[…]\nred-By: Claude Opus 4.6 <noreply@anthropic.com>\n\n* v7\n\n* wip\n\n---------\n\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>\nCo-authored-by: freekmurze <483853+freekmurze@users.noreply.github.com>",
          "is_bot": false,
          "headline": "v7: Modernized API and aggregate includes (#1050)",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-03-15T14:23:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "27b8ce9167f3cf841335913ee06f184c99b88a92",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-03-08T13:45:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab9c4c369fc913d6c020a0f6776f3c82f3e523fb",
          "body": "When a filter is marked nullable and the request sends an empty value\n(resolving to null), FiltersOperator::getDynamicFilterOperator() was\ncalled with null despite its string type declaration, causing a TypeError.\n\nGuard the dynamic operator detection with a null check so that null\nvalues fall through to the where() call directly, which Laravel\ncorrectly translates to a WHERE IS NULL clause.\n\nFixes #1047",
          "is_bot": false,
          "headline": "Fix TypeError when nullable operator filter receives null value (#1048)",
          "author_name": "isaackaara",
          "author_login": "isaackaara",
          "committed_at": "2026-03-08T13:45:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f6b6797935c637beee0c0cc36b56251a12e6d73",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-02-21T21:14:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "317cf7e7146daec502241dd1cd1d8fd4bb6d5cff",
          "body": "* Bump dependencies for Laravel 13\n\n* Update GitHub Actions for Laravel 13\n\n---------\n\nCo-authored-by: Shift <shift@laravelshift.com>",
          "is_bot": false,
          "headline": "Add Laravel 13 support (#1046)",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-02-21T21:10:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f46f49626ba27b0d28bf59516fa6dd17c73c7c8",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-02-18T09:22:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d86f49fffa39d542753d15b741b83ca33087fc1",
          "body": null,
          "is_bot": false,
          "headline": "add generics types to methods (#1044)",
          "author_name": "lorenzolosa",
          "author_login": "lorenzolosa",
          "committed_at": "2026-02-18T09:22:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f61df0a2060251b9ace2662667fbb486f1845cba",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-01-27T07:27:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c7427c0dff87d7232beeecd2d33bf7d21952b43",
          "body": null,
          "is_bot": false,
          "headline": "fix typo (#1040)",
          "author_name": "Masatoshi Ogiwara",
          "author_login": "zigzagdev",
          "committed_at": "2026-01-27T07:27:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2042b684b8e5b94c944d1ab584dee49b461f1171",
          "body": "…abot/fetch-metadata-2.5.0\n\nBump dependabot/fetch-metadata from 2.4.0 to 2.5.0",
          "is_bot": true,
          "headline": "Merge pull request #1038 from spatie/dependabot/github_actions/depend…",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-01-12T21:33:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "553f03d9f051362bcf8ac6f82a09194c2580a5ad",
          "body": "Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.4.0 to 2.5.0.\n- [Release notes](https://github.com/dependabot/fetch-metadata/releases)\n- [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.4.0...v2.5.0)\n\n---\nupdated-dependencies:\n- dependency-name: dependabot/fetch-metadata\n  dependency-version: 2.5.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump dependabot/fetch-metadata from 2.4.0 to 2.5.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-01-12T21:33:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff2f73a7394e3bfeca8f8a50ce3a9f77b95f9375",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-01-09T13:36:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f73627028538bfa58d5437f79344fa93ae254a36",
          "body": null,
          "is_bot": false,
          "headline": "Fix styling",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2026-01-09T13:35:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49a260508aa9688d15dbd194d9f1abd10a5c08ac",
          "body": "…n-class\n\nfix: use instanceof for relation detection",
          "is_bot": false,
          "headline": "Merge pull request #1027 from zigzagdev/fix/type-judgement-in-relatio…",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-01-09T13:35:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45dd750d3cbed174bbb8c44e8dd0f421c4f9f9fe",
          "body": "…s/checkout-6\n\nBump actions/checkout from 5 to 6",
          "is_bot": false,
          "headline": "Merge pull request #1030 from spatie/dependabot/github_actions/action…",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-01-09T13:34:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "97c4135e2035201e1d90c3d0aac5a3d64776d77a",
          "body": "fix typo in docs",
          "is_bot": false,
          "headline": "Merge pull request #1035 from lorenzolosa/typo",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-01-09T13:34:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74fcfc8c1c94bad51cb0124d716a829d50fb1ed6",
          "body": "Compatibility of Laravel 12 scopes with model binding",
          "is_bot": false,
          "headline": "Merge pull request #1036 from lorenzolosa/laravel_12_scopes",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-01-09T13:34:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a0e7663cca9b9a8daeee420e33354d4b2ac80fb",
          "body": null,
          "is_bot": false,
          "headline": "test filters for Laravel 12 style scopes",
          "author_name": "Lorenzo Losa",
          "author_login": "lorenzolosa",
          "committed_at": "2026-01-08T14:41:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba8cab78998771f6e9923949848465cde175ce13",
          "body": null,
          "is_bot": false,
          "headline": "Fix styling",
          "author_name": "lorenzolosa",
          "author_login": "lorenzolosa",
          "committed_at": "2026-01-08T14:18:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6ebe0ab1637b6fd415e48dd59f317af8ea69270",
          "body": null,
          "is_bot": false,
          "headline": "check for Laravel 12 style scopes",
          "author_name": "Lorenzo Losa",
          "author_login": "lorenzolosa",
          "committed_at": "2026-01-08T14:17:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "220933e6e5e342c73009ca365d965582e13929ad",
          "body": null,
          "is_bot": false,
          "headline": "fix typo in docs",
          "author_name": "Lorenzo Losa",
          "author_login": "lorenzolosa",
          "committed_at": "2026-01-08T14:00:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "912276f9b5416db8bd024ee5440169a20f3bbeca",
          "body": "Update README.md to reference v6 documentation pages",
          "is_bot": false,
          "headline": "Merge pull request #1033 from cezar-popa/main",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2026-01-07T07:56:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5a5bd30056bb209f52f83bae05cf5fc66845731",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md to reference v6 documentation pages",
          "author_name": "cezar-popa",
          "author_login": "cezar-popa",
          "committed_at": "2026-01-06T09:21:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96700ac736a4c80d19de68cf82963e69e2f0e4ae",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v5...v6)\n\n---\nupdated-dependenc\n[…]\n:\n- dependency-name: actions/checkout\n  dependency-version: '6'\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 5 to 6",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-11-24T17:54:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "eb20789311c3ca400958186be6f2a85ccd313f51",
          "body": null,
          "is_bot": false,
          "headline": "fix: relation detection type check changed",
          "author_name": "zigzagdev",
          "author_login": "zigzagdev",
          "committed_at": "2025-11-05T08:33:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc6c69db1aaf26bae498e836ab3bc551eae1529b",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2025-10-20T09:51:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9a5af31c79ae8fb79ae0aa8ba2b9e7180f39481",
          "body": "…zweifel/git-auto-commit-action-7\n\nBump stefanzweifel/git-auto-commit-action from 6 to 7",
          "is_bot": false,
          "headline": "Merge pull request #1022 from spatie/dependabot/github_actions/stefan…",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-10-20T09:50:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a2d98b092c51795464ea000c2d6a57af5d711521",
          "body": "…ategy-none\n\nFix using convert_relation_table_name_strategy of \"none\"",
          "is_bot": false,
          "headline": "Merge pull request #1023 from wrurik/feature/fix-convert-relation-str…",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-10-20T09:50:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31a2fd5247828ed9333d6cec2304908f2dde2f43",
          "body": null,
          "is_bot": false,
          "headline": "Fix using convert_relation_table_name_strategy of \"none\"",
          "author_name": "Rurik Wind",
          "author_login": null,
          "committed_at": "2025-10-16T21:15:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9dd9f23f5c9c24259846396e26a23dadae7ce93b",
          "body": "Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 6 to 7.\n- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)\n- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)\n- [Co\n[…]\n stefanzweifel/git-auto-commit-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 stefanzweifel/git-auto-commit-action from 6 to 7",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-10-13T17:02:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3fc0dedd32abf201aa6bebb7bbb57d23e98c67f8",
          "body": "Test against php 8.5",
          "is_bot": false,
          "headline": "Merge pull request #1020 from sergiy-petrov/php-8.5",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-10-08T07:56:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9bc9db497d42493fd75eabf047ecaf2d6b52b7c1",
          "body": "* Test against php 8.5\n\n* Allow pest v4\n\n* Allow phpunit v12",
          "is_bot": false,
          "headline": "Test against php 8.5",
          "author_name": "Serhii Petrov",
          "author_login": "sergiy-petrov",
          "committed_at": "2025-10-04T11:22:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6498aef5354423b88970d2989558525e1a18f6f",
          "body": "Update issue template",
          "is_bot": false,
          "headline": "Merge pull request #1018 from spatie/fix-issue-template",
          "author_name": "Alex Vanderbist",
          "author_login": "AlexVanderbist",
          "committed_at": "2025-09-08T09:07:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c3503caa908da01f1f54e2f909b9707b3fadd0b",
          "body": null,
          "is_bot": false,
          "headline": "Update issue template",
          "author_name": "Alex Vanderbist",
          "author_login": "AlexVanderbist",
          "committed_at": "2025-09-08T06:55:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a7c73ac5d0eebe76419e7562087290e8c2679fb",
          "body": null,
          "is_bot": false,
          "headline": "Update config.yml",
          "author_name": "Alex Vanderbist",
          "author_login": "AlexVanderbist",
          "committed_at": "2025-09-06T20:24:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "935e8d20c9c2448ad26f4645c19c088042a81e3c",
          "body": null,
          "is_bot": false,
          "headline": "Remove Bug Report link from issue template",
          "author_name": "Alex Vanderbist",
          "author_login": "AlexVanderbist",
          "committed_at": "2025-09-05T14:57:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef3f2196b7728559ed2739786ba9f5b5cf772fdd",
          "body": null,
          "is_bot": false,
          "headline": "Enable blank issues in issue template configuration",
          "author_name": "Alex Vanderbist",
          "author_login": "AlexVanderbist",
          "committed_at": "2025-09-05T14:56:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "538b10080406081d8ef9707c9851bc76613def9a",
          "body": "…s/checkout-5\n\nBump actions/checkout from 4 to 5",
          "is_bot": false,
          "headline": "Merge pull request #1016 from spatie/dependabot/github_actions/action…",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-08-25T07:45:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5012cb0cad6788f629a7b278c31502876ad72bc",
          "body": "Update documentation in the config",
          "is_bot": false,
          "headline": "Merge pull request #1017 from alexkart/fix-docs-typos",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-08-25T07:44:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "edd01869505fd771e92fd035bd52d5cf851d08a5",
          "body": null,
          "is_bot": false,
          "headline": "fix: update example API requests in query builder documentation",
          "author_name": "Alexander Kartavenko",
          "author_login": "alexkart",
          "committed_at": "2025-08-22T21:13:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "606484864cc0ef0d1cd33fce6d79135b9ee237ea",
          "body": "Update reference to Laravel Pagination docs",
          "is_bot": false,
          "headline": "Merge pull request #1015 from timmch/patch-1",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-08-18T08:27:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e458f93a4726f2e5cb1298c400f69da96e99d05",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v4...v5)\n\n---\nupdated-dependenc\n[…]\n:\n- dependency-name: actions/checkout\n  dependency-version: '5'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump actions/checkout from 4 to 5",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-08-12T00:49:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1f048feb58a378047d4be5eabb9bcbb764afd937",
          "body": null,
          "is_bot": false,
          "headline": "Update reference to Laravel Pagination docs",
          "author_name": "Tim McHugh",
          "author_login": "timmch",
          "committed_at": "2025-08-11T17:31:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d201d286c024ae7d682bbc279398045890475227",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2025-08-04T07:37:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee3c98235616f88c11e75d3df5ea48dc7b20dd93",
          "body": "Make nullable parameter types explicit to avoid deprecation warnings",
          "is_bot": false,
          "headline": "Merge pull request #1013 from zigzagdev/feature/fix-nullable-argument",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-08-04T07:36:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0347519a4f9623e3fe29b20b99bbbc9b4f9d73f7",
          "body": null,
          "is_bot": false,
          "headline": "fix: nullable-argument-fix",
          "author_name": "Masatoshi Ogiwara",
          "author_login": null,
          "committed_at": "2025-08-04T02:04:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2abca2a1b77d03810e587ee1d1a4b3a48fb86ef9",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2025-07-25T07:02:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6c137391f1b5e7365cfaf0633a2ba1a97e79e53",
          "body": "Improve QueryBuilder Generic Support",
          "is_bot": false,
          "headline": "Merge pull request #1012 from liamduckett/main",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-07-25T07:01:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0fd2e4f33c36882b2acd8b50111179071187ed9c",
          "body": null,
          "is_bot": false,
          "headline": "add type assertion test for query builder for",
          "author_name": "Liam Duckett",
          "author_login": "liamduckett",
          "committed_at": "2025-07-23T18:24:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f42132e74ccf722124970d784d2fced09b96dac",
          "body": null,
          "is_bot": false,
          "headline": "fix incorrect generic on query builder for docblock",
          "author_name": "Liam Duckett",
          "author_login": "liamduckett",
          "committed_at": "2025-07-23T18:16:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b41ef2affb430160f40d2ff5539e0a0e83b7671",
          "body": "…tion",
          "is_bot": false,
          "headline": "allow inferring generic for query builder for when called with a rela…",
          "author_name": "Liam Duckett",
          "author_login": "liamduckett",
          "committed_at": "2025-07-19T20:39:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4cf2ee37aadc5ca22aa13939103e97e700cfb42",
          "body": "…an't use class level generic",
          "is_bot": false,
          "headline": "use method declared generic for query builder for, as static method c…",
          "author_name": "Liam Duckett",
          "author_login": "liamduckett",
          "committed_at": "2025-07-19T20:36:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f937d806afb63dc516f3ce2ea7a11857d0a0af5",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2025-07-14T08:32:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d80323d2b2ffc410f06bf73c2e3a6ad763e4b8d",
          "body": "Allow nested filters",
          "is_bot": false,
          "headline": "Merge pull request #1010 from bambamboole/feat/allow-filters-as-array",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-07-14T08:31:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ab103eb87266319c0c471433150a9cf88f53f6d",
          "body": null,
          "is_bot": false,
          "headline": "Allow nested filters",
          "author_name": "bambamboole",
          "author_login": "bambamboole",
          "committed_at": "2025-07-04T10:15:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e89e7de70c580ae631023722daca9e5b3a24d19",
          "body": "…zweifel/git-auto-commit-action-6\n\nBump stefanzweifel/git-auto-commit-action from 5 to 6",
          "is_bot": false,
          "headline": "Merge pull request #1009 from spatie/dependabot/github_actions/stefan…",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-06-23T07:28:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47541876c97b198c2648096e54ede0b598365275",
          "body": null,
          "is_bot": false,
          "headline": "Update Larastan dependency",
          "author_name": "Tim Van Dijck",
          "author_login": "timvandijck",
          "committed_at": "2025-06-20T14:00:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38aed93ec7ffc0093c640f6965aec5f5c8cd02e0",
          "body": "Add larastan and fix static analysis issue",
          "is_bot": false,
          "headline": "Merge pull request #1003 from alexkart/add-larastan",
          "author_name": "Tim Van Dijck",
          "author_login": "timvandijck",
          "committed_at": "2025-06-20T13:55:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48543e62cc6912490c7c430630054623740516f7",
          "body": null,
          "is_bot": false,
          "headline": "Add doc block",
          "author_name": "Tim Van Dijck",
          "author_login": "timvandijck",
          "committed_at": "2025-06-20T13:53:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2bbad969d7e3c1524c7088720f6423a9b1b417aa",
          "body": "Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 5 to 6.\n- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)\n- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)\n- [Co\n[…]\n stefanzweifel/git-auto-commit-action\n  dependency-version: '6'\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 stefanzweifel/git-auto-commit-action from 5 to 6",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-06-16T18:35:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1c111030018b02f0b9ca4b23009e1436f90643c2",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Jimi Robaer",
          "author_login": "jimirobaer",
          "committed_at": "2025-06-05T11:13:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed706e8469e1e608f7074e150920fa13c5529908",
          "body": "Docs: clarify selecting fields for included relations",
          "is_bot": false,
          "headline": "Merge pull request #1008 from amyavari/docs/select-include-fields",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-05-20T08:44:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86ba5ca4c0353f18063088f1696377b2c450d42f",
          "body": null,
          "is_bot": false,
          "headline": "docs: fix refering to old version of doc",
          "author_name": "Ali M. Yavari",
          "author_login": "amyavari",
          "committed_at": "2025-05-19T15:51:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa69a1357644403a67b7aa459e5a3847a65e07c3",
          "body": null,
          "is_bot": false,
          "headline": "docs: clarify selecting fields for included relations",
          "author_name": "Ali M. Yavari",
          "author_login": "amyavari",
          "committed_at": "2025-05-19T15:50:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b4822374e76b28e91e8eda207cd466029f6d272",
          "body": "…abot/fetch-metadata-2.4.0\n\nBump dependabot/fetch-metadata from 2.3.0 to 2.4.0",
          "is_bot": true,
          "headline": "Merge pull request #1006 from spatie/dependabot/github_actions/depend…",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2025-05-12T17:34:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7de97f9ebb0ffbdf88eda32dce30a6d7d9f851df",
          "body": "Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.3.0 to 2.4.0.\n- [Release notes](https://github.com/dependabot/fetch-metadata/releases)\n- [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.3.0...v2.4.0)\n\n---\nupdated-dependencies:\n- dependency-name: dependabot/fetch-metadata\n  dependency-version: 2.4.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-05-12T17:34:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9083970997296a58df9ce3b64d403ad480eec180",
          "body": "update some links so point to v6 docs",
          "is_bot": false,
          "headline": "Merge pull request #1004 from KnudH/patch-1",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-05-03T13:29:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff95255a136c4e9c9127325cac600dd3667af181",
          "body": null,
          "is_bot": false,
          "headline": "update some links so point to v6 docs",
          "author_name": "Knud Hollander",
          "author_login": "KnudH",
          "committed_at": "2025-05-03T08:58:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87e7a9671f4c9630f256ad1309cfc7bc14521e61",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Jimi Robaer",
          "author_login": "jimirobaer",
          "committed_at": "2025-04-22T07:34:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d9de6da8d1d61a1fcc12e6c6de9c3845836965d",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG",
          "author_name": "freekmurze",
          "author_login": "freekmurze",
          "committed_at": "2025-04-16T07:30:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3675f7bace346dc5243f58fa7c531e36471200f4",
          "body": "Enhance QueryBuilder with generics support for better type inference",
          "is_bot": false,
          "headline": "Merge pull request #1002 from alexkart/query-buikder-generic",
          "author_name": "Freek Van der Herten",
          "author_login": "freekmurze",
          "committed_at": "2025-04-16T07:30:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c4f9b3af1862015926b16d964be13764876024d",
          "body": null,
          "is_bot": false,
          "headline": "Add type hint for query builder in FiltersExact.php",
          "author_name": "Alexander Kartavenko",
          "author_login": "alexkart",
          "committed_at": "2025-04-15T18:33:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a39b523dd20cfd2a58ae67467e20b9c44c70d7c",
          "body": null,
          "is_bot": false,
          "headline": "Add larastan as a dev dependency",
          "author_name": "Alexander Kartavenko",
          "author_login": "alexkart",
          "committed_at": "2025-04-15T18:31:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc207334ca9738fa2576fda18293d1ce1e87b6af",
          "body": null,
          "is_bot": false,
          "headline": "revert some changes",
          "author_name": "Alexander Kartavenko",
          "author_login": "alexkart",
          "committed_at": "2025-04-15T18:27:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f73be49ce4a4781f74e4499edb1e14f21fbf2f0d",
          "body": "…erics",
          "is_bot": false,
          "headline": "Refactor clone method in QueryBuilder to improve type safety with gen…",
          "author_name": "Alexander Kartavenko",
          "author_login": "alexkart",
          "committed_at": "2025-04-15T17:37:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 71,
      "latest_release_at": "2026-05-02T11:22:39Z",
      "latest_release_tag": "7.3.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 24,
      "days_since_latest_release": 88,
      "mean_days_between_releases": 12.5
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "spatie/laravel-query-builder",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "spatie",
            "laravel-query-builder"
          ],
          "ecosystem": "packagist",
          "matches_repo": true,
          "registry_url": "https://packagist.org/packages/spatie/laravel-query-builder",
          "is_deprecated": false,
          "latest_version": "7.3.0",
          "repository_url": "https://github.com/spatie/laravel-query-builder",
          "versions_count": 133,
          "total_downloads": 31994583,
          "dependents_count": 256,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1327413,
          "first_published_at": null,
          "latest_published_at": "2026-05-02T11:22:31Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 88
        }
      ]
    },
    "popularity": {
      "forks": 418,
      "stars": 4461,
      "watchers": 47,
      "fork_history": {
        "days": [
          {
            "date": "2018-01-17",
            "count": 2
          },
          {
            "date": "2018-01-18",
            "count": 2
          },
          {
            "date": "2018-01-19",
            "count": 2
          },
          {
            "date": "2018-01-24",
            "count": 1
          },
          {
            "date": "2018-01-28",
            "count": 1
          },
          {
            "date": "2018-02-06",
            "count": 1
          },
          {
            "date": "2018-02-07",
            "count": 1
          },
          {
            "date": "2018-02-23",
            "count": 2
          },
          {
            "date": "2018-03-08",
            "count": 1
          },
          {
            "date": "2018-03-15",
            "count": 1
          },
          {
            "date": "2018-03-26",
            "count": 2
          },
          {
            "date": "2018-04-03",
            "count": 1
          },
          {
            "date": "2018-04-06",
            "count": 1
          },
          {
            "date": "2018-04-18",
            "count": 1
          },
          {
            "date": "2018-05-06",
            "count": 1
          },
          {
            "date": "2018-05-15",
            "count": 1
          },
          {
            "date": "2018-06-04",
            "count": 1
          },
          {
            "date": "2018-06-08",
            "count": 1
          },
          {
            "date": "2018-07-18",
            "count": 1
          },
          {
            "date": "2018-07-24",
            "count": 1
          },
          {
            "date": "2018-07-25",
            "count": 1
          },
          {
            "date": "2018-07-27",
            "count": 1
          },
          {
            "date": "2018-08-10",
            "count": 1
          },
          {
            "date": "2018-08-14",
            "count": 1
          },
          {
            "date": "2018-08-18",
            "count": 1
          },
          {
            "date": "2018-08-20",
            "count": 1
          },
          {
            "date": "2018-08-21",
            "count": 1
          },
          {
            "date": "2018-08-26",
            "count": 1
          },
          {
            "date": "2018-09-06",
            "count": 1
          },
          {
            "date": "2018-09-09",
            "count": 1
          },
          {
            "date": "2018-09-17",
            "count": 1
          },
          {
            "date": "2018-09-21",
            "count": 2
          },
          {
            "date": "2018-10-01",
            "count": 1
          },
          {
            "date": "2018-10-05",
            "count": 1
          },
          {
            "date": "2018-10-19",
            "count": 1
          },
          {
            "date": "2018-10-20",
            "count": 2
          },
          {
            "date": "2018-10-22",
            "count": 1
          },
          {
            "date": "2018-10-24",
            "count": 1
          },
          {
            "date": "2018-10-26",
            "count": 1
          },
          {
            "date": "2018-10-29",
            "count": 1
          },
          {
            "date": "2018-10-30",
            "count": 2
          },
          {
            "date": "2018-10-31",
            "count": 1
          },
          {
            "date": "2018-11-20",
            "count": 2
          },
          {
            "date": "2018-11-22",
            "count": 2
          },
          {
            "date": "2018-12-14",
            "count": 1
          },
          {
            "date": "2018-12-19",
            "count": 1
          },
          {
            "date": "2018-12-21",
            "count": 1
          },
          {
            "date": "2019-01-09",
            "count": 2
          },
          {
            "date": "2019-01-14",
            "count": 1
          },
          {
            "date": "2019-01-17",
            "count": 1
          },
          {
            "date": "2019-01-30",
            "count": 1
          },
          {
            "date": "2019-02-05",
            "count": 1
          },
          {
            "date": "2019-02-15",
            "count": 1
          },
          {
            "date": "2019-02-27",
            "count": 1
          },
          {
            "date": "2019-03-19",
            "count": 1
          },
          {
            "date": "2019-04-19",
            "count": 1
          },
          {
            "date": "2019-04-30",
            "count": 1
          },
          {
            "date": "2019-05-23",
            "count": 1
          },
          {
            "date": "2019-05-29",
            "count": 1
          },
          {
            "date": "2019-06-03",
            "count": 1
          },
          {
            "date": "2019-06-05",
            "count": 1
          },
          {
            "date": "2019-06-12",
            "count": 1
          },
          {
            "date": "2019-06-13",
            "count": 1
          },
          {
            "date": "2019-06-24",
            "count": 1
          },
          {
            "date": "2019-06-25",
            "count": 1
          },
          {
            "date": "2019-07-14",
            "count": 1
          },
          {
            "date": "2019-07-26",
            "count": 1
          },
          {
            "date": "2019-07-30",
            "count": 1
          },
          {
            "date": "2019-08-01",
            "count": 2
          },
          {
            "date": "2019-08-06",
            "count": 1
          },
          {
            "date": "2019-08-07",
            "count": 1
          },
          {
            "date": "2019-08-12",
            "count": 1
          },
          {
            "date": "2019-08-13",
            "count": 2
          },
          {
            "date": "2019-08-15",
            "count": 1
          },
          {
            "date": "2019-08-31",
            "count": 3
          },
          {
            "date": "2019-09-15",
            "count": 1
          },
          {
            "date": "2019-09-18",
            "count": 1
          },
          {
            "date": "2019-09-25",
            "count": 1
          },
          {
            "date": "2019-09-27",
            "count": 1
          },
          {
            "date": "2019-10-09",
            "count": 1
          },
          {
            "date": "2019-10-25",
            "count": 1
          },
          {
            "date": "2019-10-29",
            "count": 2
          },
          {
            "date": "2019-10-30",
            "count": 1
          },
          {
            "date": "2019-11-04",
            "count": 1
          },
          {
            "date": "2019-11-14",
            "count": 1
          },
          {
            "date": "2019-11-18",
            "count": 1
          },
          {
            "date": "2019-11-21",
            "count": 1
          },
          {
            "date": "2019-11-25",
            "count": 1
          },
          {
            "date": "2019-11-29",
            "count": 1
          },
          {
            "date": "2019-12-06",
            "count": 1
          },
          {
            "date": "2019-12-10",
            "count": 2
          },
          {
            "date": "2019-12-13",
            "count": 2
          },
          {
            "date": "2019-12-14",
            "count": 1
          },
          {
            "date": "2019-12-25",
            "count": 1
          },
          {
            "date": "2019-12-27",
            "count": 1
          },
          {
            "date": "2019-12-31",
            "count": 1
          },
          {
            "date": "2020-01-06",
            "count": 2
          },
          {
            "date": "2020-01-09",
            "count": 1
          },
          {
            "date": "2020-01-17",
            "count": 1
          },
          {
            "date": "2020-01-19",
            "count": 1
          },
          {
            "date": "2020-01-27",
            "count": 1
          },
          {
            "date": "2020-02-06",
            "count": 1
          },
          {
            "date": "2020-02-07",
            "count": 1
          },
          {
            "date": "2020-02-13",
            "count": 1
          },
          {
            "date": "2020-02-14",
            "count": 2
          },
          {
            "date": "2020-02-24",
            "count": 1
          },
          {
            "date": "2020-02-26",
            "count": 1
          },
          {
            "date": "2020-02-27",
            "count": 1
          },
          {
            "date": "2020-03-02",
            "count": 1
          },
          {
            "date": "2020-03-03",
            "count": 2
          },
          {
            "date": "2020-03-06",
            "count": 1
          },
          {
            "date": "2020-03-10",
            "count": 1
          },
          {
            "date": "2020-03-20",
            "count": 1
          },
          {
            "date": "2020-03-22",
            "count": 1
          },
          {
            "date": "2020-03-26",
            "count": 1
          },
          {
            "date": "2020-04-10",
            "count": 1
          },
          {
            "date": "2020-04-15",
            "count": 1
          },
          {
            "date": "2020-04-16",
            "count": 1
          },
          {
            "date": "2020-04-18",
            "count": 1
          },
          {
            "date": "2020-04-30",
            "count": 1
          },
          {
            "date": "2020-05-04",
            "count": 1
          },
          {
            "date": "2020-05-05",
            "count": 1
          },
          {
            "date": "2020-05-06",
            "count": 1
          },
          {
            "date": "2020-05-13",
            "count": 1
          },
          {
            "date": "2020-05-18",
            "count": 1
          },
          {
            "date": "2020-05-25",
            "count": 1
          },
          {
            "date": "2020-06-01",
            "count": 1
          },
          {
            "date": "2020-06-02",
            "count": 1
          },
          {
            "date": "2020-06-05",
            "count": 1
          },
          {
            "date": "2020-06-11",
            "count": 1
          },
          {
            "date": "2020-06-21",
            "count": 1
          },
          {
            "date": "2020-06-30",
            "count": 1
          },
          {
            "date": "2020-07-22",
            "count": 1
          },
          {
            "date": "2020-07-28",
            "count": 1
          },
          {
            "date": "2020-08-03",
            "count": 1
          },
          {
            "date": "2020-08-04",
            "count": 2
          },
          {
            "date": "2020-08-05",
            "count": 1
          },
          {
            "date": "2020-08-16",
            "count": 1
          },
          {
            "date": "2020-08-21",
            "count": 1
          },
          {
            "date": "2020-09-01",
            "count": 1
          },
          {
            "date": "2020-09-03",
            "count": 1
          },
          {
            "date": "2020-09-09",
            "count": 1
          },
          {
            "date": "2020-09-11",
            "count": 2
          },
          {
            "date": "2020-09-13",
            "count": 1
          },
          {
            "date": "2020-09-17",
            "count": 1
          },
          {
            "date": "2020-09-23",
            "count": 1
          },
          {
            "date": "2020-09-24",
            "count": 1
          },
          {
            "date": "2020-10-08",
            "count": 1
          },
          {
            "date": "2020-10-11",
            "count": 1
          },
          {
            "date": "2020-10-13",
            "count": 1
          },
          {
            "date": "2020-10-14",
            "count": 1
          },
          {
            "date": "2020-10-19",
            "count": 2
          },
          {
            "date": "2020-10-29",
            "count": 1
          },
          {
            "date": "2020-10-30",
            "count": 1
          },
          {
            "date": "2020-10-31",
            "count": 1
          },
          {
            "date": "2020-11-05",
            "count": 1
          },
          {
            "date": "2020-11-11",
            "count": 1
          },
          {
            "date": "2020-11-15",
            "count": 1
          },
          {
            "date": "2020-12-11",
            "count": 1
          },
          {
            "date": "2020-12-29",
            "count": 2
          },
          {
            "date": "2021-02-04",
            "count": 1
          },
          {
            "date": "2021-02-15",
            "count": 1
          },
          {
            "date": "2021-02-20",
            "count": 1
          },
          {
            "date": "2021-02-22",
            "count": 1
          },
          {
            "date": "2021-03-24",
            "count": 1
          },
          {
            "date": "2021-04-11",
            "count": 1
          },
          {
            "date": "2021-04-21",
            "count": 1
          },
          {
            "date": "2021-05-16",
            "count": 1
          },
          {
            "date": "2021-05-20",
            "count": 1
          },
          {
            "date": "2021-05-24",
            "count": 1
          },
          {
            "date": "2021-06-03",
            "count": 1
          },
          {
            "date": "2021-06-08",
            "count": 1
          },
          {
            "date": "2021-06-15",
            "count": 1
          },
          {
            "date": "2021-06-28",
            "count": 1
          },
          {
            "date": "2021-07-02",
            "count": 2
          },
          {
            "date": "2021-07-27",
            "count": 1
          },
          {
            "date": "2021-08-12",
            "count": 1
          },
          {
            "date": "2021-08-18",
            "count": 1
          },
          {
            "date": "2021-08-19",
            "count": 1
          },
          {
            "date": "2021-08-20",
            "count": 1
          },
          {
            "date": "2021-08-27",
            "count": 1
          },
          {
            "date": "2021-08-28",
            "count": 2
          },
          {
            "date": "2021-08-31",
            "count": 2
          },
          {
            "date": "2021-09-02",
            "count": 2
          },
          {
            "date": "2021-09-09",
            "count": 1
          },
          {
            "date": "2021-09-16",
            "count": 1
          },
          {
            "date": "2021-09-22",
            "count": 2
          },
          {
            "date": "2021-09-24",
            "count": 1
          },
          {
            "date": "2021-09-26",
            "count": 1
          },
          {
            "date": "2021-10-07",
            "count": 1
          },
          {
            "date": "2021-10-09",
            "count": 1
          },
          {
            "date": "2021-10-11",
            "count": 1
          },
          {
            "date": "2021-10-15",
            "count": 1
          },
          {
            "date": "2021-10-19",
            "count": 1
          },
          {
            "date": "2021-10-24",
            "count": 1
          },
          {
            "date": "2021-10-25",
            "count": 1
          },
          {
            "date": "2021-10-28",
            "count": 1
          },
          {
            "date": "2021-11-02",
            "count": 2
          },
          {
            "date": "2021-11-09",
            "count": 1
          },
          {
            "date": "2021-11-22",
            "count": 1
          },
          {
            "date": "2021-11-29",
            "count": 1
          },
          {
            "date": "2021-12-01",
            "count": 1
          },
          {
            "date": "2021-12-15",
            "count": 1
          },
          {
            "date": "2021-12-31",
            "count": 1
          },
          {
            "date": "2022-01-08",
            "count": 1
          },
          {
            "date": "2022-01-13",
            "count": 1
          },
          {
            "date": "2022-01-16",
            "count": 1
          },
          {
            "date": "2022-01-28",
            "count": 1
          },
          {
            "date": "2022-01-31",
            "count": 1
          },
          {
            "date": "2022-02-08",
            "count": 1
          },
          {
            "date": "2022-02-10",
            "count": 1
          },
          {
            "date": "2022-02-11",
            "count": 1
          },
          {
            "date": "2022-02-15",
            "count": 1
          },
          {
            "date": "2022-02-16",
            "count": 1
          },
          {
            "date": "2022-02-17",
            "count": 2
          },
          {
            "date": "2022-02-19",
            "count": 1
          },
          {
            "date": "2022-03-08",
            "count": 1
          },
          {
            "date": "2022-03-10",
            "count": 1
          },
          {
            "date": "2022-03-19",
            "count": 1
          },
          {
            "date": "2022-03-23",
            "count": 1
          },
          {
            "date": "2022-03-25",
            "count": 1
          },
          {
            "date": "2022-04-04",
            "count": 1
          },
          {
            "date": "2022-04-09",
            "count": 1
          },
          {
            "date": "2022-04-17",
            "count": 1
          },
          {
            "date": "2022-04-22",
            "count": 1
          },
          {
            "date": "2022-04-24",
            "count": 1
          },
          {
            "date": "2022-05-30",
            "count": 1
          },
          {
            "date": "2022-06-02",
            "count": 1
          },
          {
            "date": "2022-06-03",
            "count": 1
          },
          {
            "date": "2022-06-20",
            "count": 1
          },
          {
            "date": "2022-06-25",
            "count": 1
          },
          {
            "date": "2022-07-11",
            "count": 1
          },
          {
            "date": "2022-07-28",
            "count": 1
          },
          {
            "date": "2022-08-01",
            "count": 1
          },
          {
            "date": "2022-08-23",
            "count": 1
          },
          {
            "date": "2022-08-31",
            "count": 1
          },
          {
            "date": "2022-09-01",
            "count": 1
          },
          {
            "date": "2022-09-13",
            "count": 1
          },
          {
            "date": "2022-10-18",
            "count": 1
          },
          {
            "date": "2022-10-23",
            "count": 1
          },
          {
            "date": "2022-10-26",
            "count": 1
          },
          {
            "date": "2022-10-27",
            "count": 1
          },
          {
            "date": "2022-10-31",
            "count": 1
          },
          {
            "date": "2022-11-28",
            "count": 2
          },
          {
            "date": "2022-12-02",
            "count": 1
          },
          {
            "date": "2022-12-12",
            "count": 1
          },
          {
            "date": "2022-12-26",
            "count": 1
          },
          {
            "date": "2023-01-02",
            "count": 1
          },
          {
            "date": "2023-01-04",
            "count": 1
          },
          {
            "date": "2023-01-06",
            "count": 1
          },
          {
            "date": "2023-01-10",
            "count": 1
          },
          {
            "date": "2023-01-17",
            "count": 1
          },
          {
            "date": "2023-01-20",
            "count": 2
          },
          {
            "date": "2023-01-23",
            "count": 1
          },
          {
            "date": "2023-01-24",
            "count": 1
          },
          {
            "date": "2023-01-26",
            "count": 1
          },
          {
            "date": "2023-02-01",
            "count": 1
          },
          {
            "date": "2023-02-07",
            "count": 1
          },
          {
            "date": "2023-02-08",
            "count": 2
          },
          {
            "date": "2023-02-17",
            "count": 1
          },
          {
            "date": "2023-02-19",
            "count": 1
          },
          {
            "date": "2023-02-21",
            "count": 1
          },
          {
            "date": "2023-03-06",
            "count": 1
          },
          {
            "date": "2023-03-09",
            "count": 1
          },
          {
            "date": "2023-03-19",
            "count": 1
          },
          {
            "date": "2023-03-25",
            "count": 1
          },
          {
            "date": "2023-04-10",
            "count": 1
          },
          {
            "date": "2023-04-24",
            "count": 1
          },
          {
            "date": "2023-05-10",
            "count": 2
          },
          {
            "date": "2023-05-15",
            "count": 1
          },
          {
            "date": "2023-05-18",
            "count": 1
          },
          {
            "date": "2023-06-09",
            "count": 1
          },
          {
            "date": "2023-06-21",
            "count": 2
          },
          {
            "date": "2023-06-23",
            "count": 1
          },
          {
            "date": "2023-07-16",
            "count": 1
          },
          {
            "date": "2023-07-28",
            "count": 2
          },
          {
            "date": "2023-07-31",
            "count": 1
          },
          {
            "date": "2023-08-08",
            "count": 1
          },
          {
            "date": "2023-08-13",
            "count": 1
          },
          {
            "date": "2023-08-25",
            "count": 1
          },
          {
            "date": "2023-08-31",
            "count": 1
          },
          {
            "date": "2023-09-19",
            "count": 1
          },
          {
            "date": "2023-09-30",
            "count": 1
          },
          {
            "date": "2023-10-05",
            "count": 1
          },
          {
            "date": "2023-10-08",
            "count": 1
          },
          {
            "date": "2023-10-09",
            "count": 1
          },
          {
            "date": "2023-10-12",
            "count": 1
          },
          {
            "date": "2023-10-16",
            "count": 1
          },
          {
            "date": "2023-10-28",
            "count": 1
          },
          {
            "date": "2023-11-02",
            "count": 1
          },
          {
            "date": "2023-11-15",
            "count": 1
          },
          {
            "date": "2023-11-27",
            "count": 1
          },
          {
            "date": "2023-11-28",
            "count": 1
          },
          {
            "date": "2024-01-03",
            "count": 1
          },
          {
            "date": "2024-01-14",
            "count": 1
          },
          {
            "date": "2024-01-21",
            "count": 1
          },
          {
            "date": "2024-02-06",
            "count": 2
          },
          {
            "date": "2024-02-20",
            "count": 1
          },
          {
            "date": "2024-02-23",
            "count": 1
          },
          {
            "date": "2024-03-14",
            "count": 1
          },
          {
            "date": "2024-03-29",
            "count": 1
          },
          {
            "date": "2024-03-30",
            "count": 1
          },
          {
            "date": "2024-04-06",
            "count": 1
          },
          {
            "date": "2024-05-08",
            "count": 1
          },
          {
            "date": "2024-05-14",
            "count": 1
          },
          {
            "date": "2024-05-27",
            "count": 1
          },
          {
            "date": "2024-06-04",
            "count": 1
          },
          {
            "date": "2024-06-09",
            "count": 1
          },
          {
            "date": "2024-06-14",
            "count": 1
          },
          {
            "date": "2024-06-20",
            "count": 1
          },
          {
            "date": "2024-06-26",
            "count": 1
          },
          {
            "date": "2024-07-05",
            "count": 1
          },
          {
            "date": "2024-08-03",
            "count": 1
          },
          {
            "date": "2024-08-23",
            "count": 1
          },
          {
            "date": "2024-08-27",
            "count": 1
          },
          {
            "date": "2024-09-06",
            "count": 1
          },
          {
            "date": "2024-09-16",
            "count": 1
          },
          {
            "date": "2024-09-17",
            "count": 1
          },
          {
            "date": "2024-09-23",
            "count": 1
          },
          {
            "date": "2024-10-08",
            "count": 1
          },
          {
            "date": "2024-10-19",
            "count": 1
          },
          {
            "date": "2024-11-03",
            "count": 1
          },
          {
            "date": "2024-12-01",
            "count": 1
          },
          {
            "date": "2024-12-03",
            "count": 1
          },
          {
            "date": "2024-12-23",
            "count": 1
          },
          {
            "date": "2024-12-26",
            "count": 1
          },
          {
            "date": "2025-02-12",
            "count": 1
          },
          {
            "date": "2025-02-19",
            "count": 1
          },
          {
            "date": "2025-02-20",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 1
          },
          {
            "date": "2025-04-04",
            "count": 1
          },
          {
            "date": "2025-04-15",
            "count": 1
          },
          {
            "date": "2025-05-23",
            "count": 1
          },
          {
            "date": "2025-07-06",
            "count": 1
          },
          {
            "date": "2025-07-19",
            "count": 1
          },
          {
            "date": "2025-07-28",
            "count": 1
          },
          {
            "date": "2025-08-04",
            "count": 1
          },
          {
            "date": "2025-08-06",
            "count": 1
          },
          {
            "date": "2025-08-11",
            "count": 1
          },
          {
            "date": "2025-09-10",
            "count": 1
          },
          {
            "date": "2025-09-17",
            "count": 1
          },
          {
            "date": "2025-09-23",
            "count": 1
          },
          {
            "date": "2025-10-09",
            "count": 1
          },
          {
            "date": "2025-10-16",
            "count": 1
          },
          {
            "date": "2025-10-26",
            "count": 1
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-12-07",
            "count": 1
          },
          {
            "date": "2025-12-25",
            "count": 1
          },
          {
            "date": "2026-01-06",
            "count": 1
          },
          {
            "date": "2026-01-10",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 1
          },
          {
            "date": "2026-02-02",
            "count": 1
          },
          {
            "date": "2026-03-06",
            "count": 1
          },
          {
            "date": "2026-04-07",
            "count": 1
          },
          {
            "date": "2026-04-08",
            "count": 1
          },
          {
            "date": "2026-04-09",
            "count": 1
          },
          {
            "date": "2026-04-30",
            "count": 1
          },
          {
            "date": "2026-05-28",
            "count": 1
          },
          {
            "date": "2026-06-23",
            "count": 1
          },
          {
            "date": "2026-07-03",
            "count": 1
          },
          {
            "date": "2026-07-04",
            "count": 1
          },
          {
            "date": "2026-07-19",
            "count": 4
          },
          {
            "date": "2026-07-28",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 405,
        "total_forks": 418
      },
      "star_history": null,
      "open_issues_and_prs": 2
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 38060,
      "source_files_sampled": 74,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "composer.json"
      ],
      "advisories": {
        "error": "No resolved dependencies carried a version and a supported ecosystem",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 12,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "packagist"
      ],
      "dependencies": [
        {
          "name": "illuminate/database",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^12.0|^13.0"
        },
        {
          "name": "illuminate/http",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^12.0|^13.0"
        },
        {
          "name": "illuminate/support",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^12.0|^13.0"
        },
        {
          "name": "spatie/laravel-package-tools",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.11"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "illuminate/database",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "illuminate/http",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "illuminate/support",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/laravel-package-tools",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "ext-json",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "larastan/larastan",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "mockery/mockery",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "orchestra/testbench",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "pestphp/pest",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "php",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/invade",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 12,
        "direct_count": 4,
        "indirect_count": 8
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 2,
        "merged_prs": 300,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 339,
        "closed_unmerged_prs": 150
      },
      "bus_factor": 2,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "AlexVanderbist",
          "commits": 408,
          "avatar_url": "https://avatars.githubusercontent.com/u/6287961?v=4"
        },
        {
          "type": "User",
          "login": "freekmurze",
          "commits": 316,
          "avatar_url": "https://avatars.githubusercontent.com/u/483853?v=4"
        },
        {
          "type": "User",
          "login": "dominikb",
          "commits": 15,
          "avatar_url": "https://avatars.githubusercontent.com/u/28777818?v=4"
        },
        {
          "type": "User",
          "login": "laravel-shift",
          "commits": 12,
          "avatar_url": "https://avatars.githubusercontent.com/u/15991828?v=4"
        },
        {
          "type": "User",
          "login": "Nielsvanpach",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/10651054?v=4"
        },
        {
          "type": "User",
          "login": "stevebauman",
          "commits": 10,
          "avatar_url": "https://avatars.githubusercontent.com/u/6421846?v=4"
        },
        {
          "type": "User",
          "login": "AdrianMrn",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/12762044?v=4"
        },
        {
          "type": "User",
          "login": "alexkart",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/8249105?v=4"
        },
        {
          "type": "User",
          "login": "cornelp",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/10222052?v=4"
        },
        {
          "type": "User",
          "login": "lorenzolosa",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/11164571?v=4"
        }
      ],
      "contributors_sampled": 98,
      "top_contributor_share": 0.432
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "dependabot-auto-merge.yml",
        "phpstan.yml",
        "pint.yml",
        "run-tests.yml",
        "update-changelog.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 7,
            "reason": "10 out of 14 merged PRs checked by a CI test -- score normalized to 7",
            "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": 2,
            "reason": "Found 6/23 approved changesets -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 10 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": 9,
            "reason": "11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9",
            "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": null,
            "reason": "no releases found",
            "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": "1fbfd741e8b7bdd7039783455e5d0bd70285986a",
        "ran_at": "2026-07-29T16:05:27Z",
        "aggregate_score": 5.4,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-27T17:32:30Z",
      "oldest_open_prs": [
        {
          "number": 1065,
          "created_at": "2026-07-29T08:59:22Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1066,
          "created_at": "2026-07-29T16:03:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-06-26T09:51:05Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/spatie/laravel-query-builder",
    "host": "github.com",
    "name": "laravel-query-builder",
    "owner": "spatie"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 77,
      "inputs": {
        "security": 54,
        "vitality": 87,
        "community": 84,
        "governance": 77,
        "engineering": 77
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 87,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "commits_last_year": 71,
              "human_commit_share": 0.86,
              "days_since_last_push": 0,
              "active_weeks_last_year": 24
            },
            "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": "24/52 weeks with commits",
                "points": 16.6,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 24
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "71 commits in the last year",
                "points": 16.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 71
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9",
                "points": 9,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "7.3.0",
              "releases_from_tags": false,
              "days_since_latest_release": 88,
              "mean_days_between_releases": 12.5
            },
            "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 88 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 88
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~12.5 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 12.5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 57,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 57 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 57
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 84,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "forks": 418,
              "stars": 4461,
              "watchers": 47,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "4,461 stars",
                "points": 59.2,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 4461
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "418 forks",
                "points": 21.8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 418
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "47 watchers",
                "points": 9.2,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 47
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": null,
            "notes": [],
            "value": 96,
            "inputs": {
              "packages": [
                "spatie/laravel-query-builder"
              ],
              "dependents": 256,
              "ecosystems": "packagist",
              "total_downloads": 31994583,
              "monthly_downloads": 1327413
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "1,327,413 downloads/month across packagist",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 1327413,
                      "ecosystems": "packagist"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "256 packages depend on it",
                "points": 16.1,
                "status": "partial",
                "details": [
                  {
                    "code": "registry_dependents",
                    "params": {
                      "count": 256
                    }
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 77,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 98,
              "top_contributor_share": 0.432
            },
            "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": "98 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 98
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 10 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "merged_prs": 300,
              "open_issues": 0,
              "closed_issues": 339,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 150
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "300/450 decided PRs merged",
                "points": 25.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 300,
                      "decided": 450
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 6/23 approved changesets -- score normalized to 2",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "followers": 3808,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "spatie",
              "public_repos": 524,
              "account_age_days": 4463
            },
            "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": "3,808 followers of spatie",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 3808,
                      "login": "spatie"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "524 public repos, account ~12 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 524
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 12
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "spatie/laravel-query-builder"
              ],
              "ecosystems": "packagist",
              "any_deprecated": false,
              "min_days_since_publish": 88
            },
            "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 88 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 88
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "133 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 133
                    }
                  }
                ],
                "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": 77,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "5 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "10 out of 14 merged PRs checked by a CI test -- score normalized to 7",
                "points": 14,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "api",
                "laravel",
                "php",
                "hacktoberfest"
              ],
              "has_wiki": false,
              "homepage": "https://spatie.be/docs/laravel-query-builder",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://spatie.be/docs/laravel-query-builder",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "4 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 54,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "dangerous_workflow",
                    "packaging",
                    "pinned_dependencies",
                    "signed_releases",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 54,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 13,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 5,
              "scorecard_aggregate": 5.4
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "10 out of 14 merged PRs checked by a CI test -- score normalized to 7",
                "points": 1.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 6/23 approved changesets -- score normalized to 2",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 10 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": "11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "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": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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": "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": 13
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "at_risk",
        "name": "AI Readiness",
        "value": 39,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "critical",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 24,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.442,
              "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": "38 of 86 human commits state their intent (structured subject or explanatory body)",
                "points": 23.6,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 38,
                      "sampled": 86
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "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": 44,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.06,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.11
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "6 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 6,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "11 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 11,
                      "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": 55,
            "inputs": {
              "primary_language": "PHP",
              "largest_source_bytes": 38060,
              "source_files_sampled": 74,
              "oversized_source_files": 0
            },
            "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": "0/74 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 74,
                      "oversized": 0
                    }
                  }
                ],
                "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": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "No resolved dependencies carried a version and a supported ecosystem"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-29T16:05:51.517850Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/spatie/laravel-query-builder.svg",
  "full_name": "spatie/laravel-query-builder",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаPackagist.