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

robertfausk / behat-panther-extension

Run your behat tests in a headless chrome/firefox - Symfony Panther extension for Behat

PHPВласна ліцензія★ 34 зірки⑂ 10 форківз квіт. 2019 р.Переглянути на GitHub ↗

robertfausk/behat-panther-extension має індекс здоров’я 29 зі 100, що відповідає смузі «Критичний». Найвищий показник — Engineering Quality (59/100), найнижчий — AI Readiness (31/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконує один учасник.

29
загалом / 100
Критичний

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

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

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

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

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

Abandonment Policy applies a 60% multiplier to weighted overall health and gives it a ceiling of 49.

Власність

Robert FreigangОсобистий обліковий запис
15 підписників119 публічних репозиторіївз квіт. 2012 р.@projektmotor

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

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

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
Packagistrobertfausk/behat-panther-extensionv1.2.073 16612478 днів томуsymfonybehattestbrowserwebguigherkinchromecucumberfirefoxpanther

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

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

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

42У зоні ризику · 22% загального індексу

Активність розробки

36У зоні ризику
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
0/36Ритм комітів — 0/52 тижнів із комітами
0/18Обсяг комітів — 0 комітів за останній рік
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Використані вхідні дані
commits_last_year0
human_commit_share1
days_since_last_push0
active_weeks_last_year0
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 12 релізів
7.2/36Свіжість релізів — останній реліз 478 дн. тому
12.6/27Ритм релізів — реліз кожні ~184 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count12
latest_release_tagv1.2.0
releases_from_tagsні
days_since_latest_release478
mean_days_between_releases184
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

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

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

48У зоні ризику · 18% загального індексу
Як обчислюється оцінка
24.6/60Зірки — 34 зірок
8/25Форки — 10 форків
1.7/15Спостерігачі — 3 спостерігачів
Використані вхідні дані
forks10
stars34
watchers3
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

Здоров'я спільноти

44У зоні ризику
Як обчислюється оцінка
22.5/22.5README
16.9/22.5Ліцензія — файл ліцензії наявний, не є визнаною ліцензією
0/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ні
Як обчислюється оцінка
64.9/80Щомісячні завантаження — 73 166 завантажень/місяць у packagist
13/20Залежні пакети в реєстрі — залежних пакетів: 88
Використані вхідні дані
packagesrobertfausk/behat-panther-extension
dependents88
ecosystemspackagist
total_downloads2 086 031
monthly_downloads73 166

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

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

54Помірний · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
1.4/22.5Розподіл комітів — головний контриб’ютор — автор 94% комітів
5.4/13.5Широта контриб’юторів — 4 контриб’юторів
6/10OpenSSF Scorecard: Contributors — project has 2 contributing companies or organizations -- score normalized to 6
Використані вхідні дані
bus_factor1
contributors_sampled4
top_contributor_share0,937
Як обчислюється оцінка
40.9/46.8Вирішення issue — закрито 88% issue
28.7/38.3Прийняття PR — злито 3/4 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 2/27 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs3
open_issues2
closed_issues14
issue_closed_ratio0,875
closed_unmerged_prs1
Як обчислюється оцінка
10/30Підтримка власника — особистий (користувацький) обліковий запис
0/20Верифікований домен — не застосовно до користувацьких облікових записів
8.7/25Охоплення власника — 15 підписників у robertfausk
25/25Послужний список — 119 публічних репозиторіїв, вік облікового запису ~14 р.
Використані вхідні дані
followers15
owner_typeUser
is_verified
owner_loginrobertfausk
public_repos119
account_age_days5 213
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у packagist
14/35Свіжість публікацій — остання публікація 478 дн. тому
20/20Історія версій — 12 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesrobertfausk/behat-panther-extension
ecosystemspackagist
any_deprecatedні
min_days_since_publish478

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

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

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

Інженерні практики

48У зоні ризику
Як обчислюється оцінка
24/24Процеси CI — 1 процес(ів) CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 2 merged PRs checked by a CI test -- score normalized to 0
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configні
has_precommit_configні
Як обчислюється оцінка
30/30README
0/25Каталог документації
15/15Сайт документації / домашня сторінка — https://packagist.org/packages/robertfausk/behat-panther-extension
10/10Опис репозиторію
10/10Теми — 10 тем
10/10Wiki
Використані вхідні дані
topicsbehat-extension, symfony-panther, panther, symfony-panther-extension, behat, extension, panther-driver, mink, php, symfony
has_wikiтак
homepagehttps://packagist.org/packages/robertfausk/behat-panther-extension
has_readmeтак
has_docs_dirні
has_descriptionтак

Безпека

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

31У зоні ризику · 16% загального індексу

Стан безпеки

31У зоні ризику
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — 0 out of 2 merged PRs checked by a CI test -- score normalized to 0
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 2/27 approved changesets -- score normalized to 0
1.5/2.5Contributors — project has 2 contributing companies or organizations -- score normalized to 6
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5Ліцензія — license file detected
0/7.5Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
0/5Packaging — немає даних
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,1
Виключено з оцінювання (немає даних або не застосовно): packaging, signed_releases. Залишкові ваги перенормовано.

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

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

31У зоні ризику · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
19.3/40Читабельна історія комітів — намір зазначено у 30 з 83 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,361
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
0/11Статична перевірка типів
10/10Відтворюване середовище — Dockerfile
0/10Підтверджена практика роботи з агентами — серед останніх 83 комітів немає створених агентом
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Використані вхідні дані
has_nixні
has_testsтак
lockfiles
has_dockerfileтак
typed_languageні
bootstrap_files
has_devcontainerні
has_linter_configні
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Як обчислюється оцінка
0/45Типізований код — PHP без конфігурації перевірки типів
55/55Керовані розміри файлів — 0/6 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languagePHP
largest_source_bytes5 964
source_files_sampled6
oversized_source_files0

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

34зірок GitHub
4контриб'юторів
0комітів за останні 12 місяців
0днів від останнього пушу
12релізів
1бас-фактор
2відкритих 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 ★ / 10 ⇿
0Зірки
10Форки
11Релізи

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

02468101012020-032023-052026-07
Мажорні 0Мінорні 2Патчі 9

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

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

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

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
0CI-Tests0 out of 2 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 2/27 approved changesets -- score normalized to 0
6Contributorsproject has 2 contributing companies or organizations -- score normalized to 6
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
0Maintained0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
н/дPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
н/дSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Прямі залежності 4
РеєстрПакетОбмеження версіїМаніфест
Packagistbehat/behat^3.0.5composer.json
Packagistrobertfausk/mink-panther-driver^1.0composer.json
Packagistsymfony/config^3.4|^4.0|^5.0|^6.0|^7.0composer.json
Packagistfriends-of-behat/mink-extension^2.3.0composer.json
Усі залежності 9

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

РеєстрПакетВерсіяЗв'язок
Packagistbehat/behatпряма
Packagistfriends-of-behat/mink-extensionпряма
Packagistrobertfausk/mink-panther-driverпряма
Packagistsymfony/configпряма
Packagistg1a/composer-test-scenariosнепряма
Packagistmatthiasnoback/symfony-config-testнепряма
Packagistphpнепряма
Packagistphpunit/phpunitнепряма
Packagistroave/security-advisoriesнепряма
Сповіщення про залежності не оцінено

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

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "behat-extension",
        "symfony-panther",
        "panther",
        "symfony-panther-extension",
        "behat",
        "extension",
        "panther-driver",
        "mink",
        "php",
        "symfony"
      ],
      "is_fork": false,
      "size_kb": 79,
      "has_wiki": true,
      "homepage": "https://packagist.org/packages/robertfausk/behat-panther-extension",
      "languages": {
        "PHP": 17393,
        "Shell": 1320,
        "Gherkin": 171,
        "Dockerfile": 1789
      },
      "pushed_at": "2026-07-27T08:25:41Z",
      "created_at": "2019-04-28T11:09:31Z",
      "owner_type": "User",
      "updated_at": "2025-11-27T14:40:09Z",
      "description": "Run your behat tests in a headless chrome/firefox - Symfony Panther extension for Behat",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "PHP",
      "significant_languages": [
        "PHP"
      ]
    },
    "owner": {
      "blog": "https://streetworkapp.de",
      "name": "Robert Freigang",
      "type": "User",
      "login": "robertfausk",
      "company": "@projektmotor ",
      "location": "Dresden",
      "followers": 15,
      "avatar_url": "https://avatars.githubusercontent.com/u/1651297?v=4",
      "created_at": "2012-04-17T09:58:43Z",
      "is_verified": null,
      "public_repos": 119,
      "account_age_days": 5213
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2025-04-04T10:11:09Z"
        },
        {
          "tag": "v1.1.3",
          "kind": "patch",
          "published_at": "2024-05-07T18:08:21Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2024-04-18T07:36:19Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2022-09-17T11:09:12Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2022-02-16T20:11:27Z"
        },
        {
          "tag": "v1.0.6",
          "kind": "patch",
          "published_at": "2021-03-30T12:49:11Z"
        },
        {
          "tag": "v1.0.5",
          "kind": "patch",
          "published_at": "2021-03-14T08:26:34Z"
        },
        {
          "tag": "v1.0.4",
          "kind": "patch",
          "published_at": "2021-02-23T14:31:33Z"
        },
        {
          "tag": "v1.0.3",
          "kind": "patch",
          "published_at": "2020-09-21T13:51:36Z"
        },
        {
          "tag": "v1.0.2",
          "kind": "patch",
          "published_at": "2020-09-21T13:11:57Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2020-03-29T15:51:56Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2019-08-16T18:05:33Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "838984a60cd53d950382bee321f8b670c3a5d120",
          "body": "instead of v1.1.4 because we want to follow Semantic Versioning",
          "is_bot": false,
          "headline": "Prepare release v1.2.0",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2025-04-04T10:09:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "371c3b4d63de9801dad5d522f7b7b30f9d0b3287",
          "body": null,
          "is_bot": false,
          "headline": "Prepare release v1.1.4",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2025-04-04T10:00:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5d98328129994edab348861dc6f519f3c8c7ff0",
          "body": null,
          "is_bot": false,
          "headline": "Fix warnings about git dir and case in Dockerfile #19",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2025-04-04T09:55:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bcaf9e0e373b40d58ed805ccd9b54bc92b659b74",
          "body": null,
          "is_bot": false,
          "headline": "Update pyrech/composer-changelogs installation #19",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2025-04-04T09:55:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c089e16716883ce241a1a6de92d329c8b388651",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md to new year #19",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2025-04-04T09:54:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7c71ff354e657f6d73b22e9788d6d0b8f2e55db",
          "body": "which is available since symfony/panther 2.2.0 and not before",
          "is_bot": false,
          "headline": "Do not rely on PantherTestCase::SELENIUM #17",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2025-04-04T09:32:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cab6f2ae28f8eead46325b21a781669f69c05b51",
          "body": "fix: manager_options.capabilities should be an instance of DesiredCapabilities",
          "is_bot": false,
          "headline": "Merge pull request #18 from tucksaun/fix/17",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2025-04-04T08:00:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b090efbcbae4119b444d35599d9edfdc46f796db",
          "body": null,
          "is_bot": false,
          "headline": "Add support for PHP 8.4 #19",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2025-04-03T22:17:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21f066d6e5afe5dc643d9ff2b844145843c5bd18",
          "body": null,
          "is_bot": false,
          "headline": "Upgrade upload-artifact and actions/checkout from v2 to v4",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2025-04-03T22:11:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6689afcafb759b85932500bdd4f4c61af737c2fb",
          "body": null,
          "is_bot": false,
          "headline": "fix: FF and Chrome don't need to use DesiredCapabilities",
          "author_name": "Tugdual Saunier",
          "author_login": "tucksaun",
          "committed_at": "2025-03-04T09:14:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20dae407fd6dba67fef6b81f1115b65c32264e4b",
          "body": "…abilities\n\nfix #17",
          "is_bot": false,
          "headline": "fix: manager_options.capabilities should be an instance of DesiredCap…",
          "author_name": "Tugdual Saunier",
          "author_login": "tucksaun",
          "committed_at": "2025-02-27T16:30:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b3390b30877e31f4a61b8d00b614777213b8115",
          "body": "cause of different directory structure in github actions",
          "is_bot": false,
          "headline": "Use relative path for extension path #16",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2024-05-07T07:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "402b413da384ed49724bb6e8e9bb2fe9dbfc3ac7",
          "body": null,
          "is_bot": false,
          "headline": "Add support for `php-webdriver/webdriver >= 1.15.0` #16",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2024-05-07T07:00:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42b9ad869a6142a64bc38b51274d085b3617b2fd",
          "body": null,
          "is_bot": false,
          "headline": "Prepare new release v1.1.2",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2024-04-18T07:34:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52859622455f418847fec6dd0490e84cada43482",
          "body": "cause dbrekelmans/bdi has no support for older php version\n@see: https://github.com/marketplace/actions/setup-chromedriver",
          "is_bot": false,
          "headline": "Use github action setup-chromedriver instead of dbrekelmans/bdi #15",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2024-04-18T07:07:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5965a0e6e59900659122e674d55e4934123db175",
          "body": null,
          "is_bot": false,
          "headline": "Add php 8.3 to ci chain and add scenario for it #15",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2024-04-17T15:57:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f89aa07aa4c74d61a57e9c1b2587fdd433d6df8",
          "body": "Add Symfony 7 support",
          "is_bot": false,
          "headline": "Merge pull request #14 from ConstantBqt/feat/symfony_7_support",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2024-04-17T09:44:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f44ab2b354b2a01db9fd0a5b37c90428c45af3bf",
          "body": null,
          "is_bot": false,
          "headline": "Add symfony 7 support",
          "author_name": "Constant Bouquet",
          "author_login": "ConstantBqt",
          "committed_at": "2024-03-20T13:57:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fb3d470ac2c40d9ef766ba29879ab73aef36fa6",
          "body": null,
          "is_bot": false,
          "headline": "Use GitHub token in ci.yml",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2023-12-06T17:23:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e552f44feae442ef55a77dfb08cfcd2485c4154",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md maintenance badge to 2024",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2023-12-06T11:10:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3bc1bbbb712e2eadef36ff9c9c881f62d8165cd",
          "body": null,
          "is_bot": false,
          "headline": "Add doc about passing arguments to ChromeDriver",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-10-20T09:56:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b0f090a461914eb65bc392bbd73263a2a27dc82",
          "body": null,
          "is_bot": false,
          "headline": "Adopt readme for php8.2 usage #12",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-09-17T11:06:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e913a3d2e6907144a531e3e79d92b4ad950ced7a",
          "body": null,
          "is_bot": false,
          "headline": "Prepare release v1.1.1",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-09-17T11:05:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66b7b1aa15c0378f3dbd6f56a25d9ad0ef6f3111",
          "body": null,
          "is_bot": false,
          "headline": "Add changelog entry for \"Allow to pass variables/arrays to options\" #11",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-09-17T11:00:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "794ed42002cb4c697f4e3a0d9e52ca02026e4b20",
          "body": null,
          "is_bot": false,
          "headline": "Add support for PHP 8.2 #12",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-09-17T10:58:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d09b45b53c8945dd1a2ebdfe0e40fd9dbd994106",
          "body": "cause we do not extend class KernelTestCase",
          "is_bot": false,
          "headline": "Add hint about useless kernel_options config #11",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-09-17T10:37:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6840e577ca48762d055379c513433c011453289",
          "body": null,
          "is_bot": false,
          "headline": "Allow to pass variables/arrays to options #11",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-09-17T10:27:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "679a51aa3c2b948a188c3a5bdefb25ff2201ded2",
          "body": null,
          "is_bot": false,
          "headline": "Change branch-alias from dev-master to dev-main #9",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-09-17T10:25:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2096f095f84c601246082a0c22a508b316e5003",
          "body": null,
          "is_bot": false,
          "headline": "Allow global composer plugin pyrech/composer-changelogs",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-09-17T10:21:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9be5f07beb2148ca336a4d48e846c56c48fae732",
          "body": null,
          "is_bot": false,
          "headline": "Add changelog for renaming of branch master to main #9 #10",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2022-07-25T16:31:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a51c41dc5d5e772a75d2c6c5dbd1ab73194ac803",
          "body": null,
          "is_bot": false,
          "headline": "Prepare v1.1.0 release",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-02-16T20:10:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38d3b1dc445a58c476c595a7895f77d6a46034dd",
          "body": "cause it's not a patch release",
          "is_bot": false,
          "headline": "Use v1.1.0 instead of v1.0.7",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-02-16T20:08:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7498e38efcccf04df9e5cb5b3e391ca035e8ea44",
          "body": "Add support for PHP 8.1 and Symfony6; drop support for PHP 7.1; use GitHub Actions instead of Travis CI",
          "is_bot": false,
          "headline": "Merge pull request #7 from robertfausk/ga_php8.1_symfony6",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2022-02-16T19:59:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "853436492633a5b71d6346ceb9157c1b0de16320",
          "body": null,
          "is_bot": false,
          "headline": "Prepare release 1.0.7 and remove Travis CI",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2022-02-16T19:50:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e836a2af9494d88b651b68fe150b0643513c4c6",
          "body": null,
          "is_bot": false,
          "headline": "Prepare release 1.0.7 by adding info to changelog",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2022-02-16T19:30:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13d93b9c81dbedbc04c04b00d43bf9db230ad82f",
          "body": "* use dbrekelmans/bdi by default\n* force newest composer version to be able to allow plugins",
          "is_bot": false,
          "headline": "Drop PHP 7.1",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2022-02-16T19:28:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f920adf6f97ea24083a8eb338417487b31bb3c2",
          "body": null,
          "is_bot": false,
          "headline": "Init github actions with support of PHP 8.1 and symfony6",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2022-02-16T18:44:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6e2b80e543c0dddf25639eb0d3d04c4e80f0f40",
          "body": null,
          "is_bot": false,
          "headline": "Fix example for file download settings",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2021-12-16T18:57:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d67c14a3b2094e6e6d405583bcd3138809d0688c",
          "body": null,
          "is_bot": false,
          "headline": "Minor spelling fix",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2021-03-30T12:44:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb7def9400cc662e0d95b50d7ee604bc680c6b2d",
          "body": null,
          "is_bot": false,
          "headline": "Minor spelling fix in readme",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2021-03-30T12:43:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2446e2bb80cddc45d699248c9284a761d863cf75",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG as preparation for new tag v1.0.6",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2021-03-30T12:41:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a1be2ebcafa5691c33049d207bfc2da52c763f2",
          "body": null,
          "is_bot": false,
          "headline": "Provide example in readme on how to test if a file was downloaded",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2021-03-30T12:40:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "160da0265b64001a183f6d2558442a45bb8b2c22",
          "body": "… values",
          "is_bot": false,
          "headline": "Allow to pass variables/arrays to manager options and not just scalar…",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2021-03-30T12:40:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ebdb9df3be228633aca6228f9dc737ffe2c1a2c",
          "body": null,
          "is_bot": false,
          "headline": "Update CHANGELOG and README as preparation for new tag v1.0.5",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2021-03-14T08:23:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c163b73e85c93f4463a93d80ff21115fd68dfe64",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'phcorp-feat/all-panther-options'",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2021-03-14T08:05:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c111b111689d9ea71a64ddb1f6bbb99cfa51391",
          "body": null,
          "is_bot": false,
          "headline": "fix tests",
          "author_name": "phcorp",
          "author_login": "phcorp",
          "committed_at": "2021-03-14T08:05:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddde0418f3cdee3ec1d8aaf43da2e3c233ca9fe3",
          "body": null,
          "is_bot": false,
          "headline": "make kernel options and manager options configurable",
          "author_name": "Pierre Hennequart",
          "author_login": "phcorp",
          "committed_at": "2021-03-09T16:19:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b540bfd3d4b059425222850951b8317656c8bf65",
          "body": "and add missing changelogs tags for v1.0.2 and v1.0.3",
          "is_bot": false,
          "headline": "Add changelog as preparation for new tag v1.0.4",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2021-02-23T14:21:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a885792373fde72e339cb8acaecab76bc19f1221",
          "body": "… composer scenario:update",
          "is_bot": false,
          "headline": "Also allow phpunit/phpunit ^9.3 cause we need it for PHP 8.0; perform…",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2021-02-23T14:11:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83569a7d1719252dda988dc0671ab5be37edd41b",
          "body": null,
          "is_bot": false,
          "headline": "Add (testing) support for PHP 8.0",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2021-02-23T13:59:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3761371401fd1637281b2802cddfaa5e5ea040ad",
          "body": null,
          "is_bot": false,
          "headline": "Add (testing) support for PHP 8.0",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2021-02-23T13:20:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f34dde9af89822b589db2904dc702e944d2fbbd0",
          "body": null,
          "is_bot": false,
          "headline": "Fix link to robertfausk/mink-panther-driver",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2020-10-08T16:00:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20c112c11cb34c3dedc311627d11239409c520f8",
          "body": "…owser executable\n\nwhich will be used after e.g. \"apk add chromium\"",
          "is_bot": false,
          "headline": "Improve update panther chrome driver script by supporting chromium-br…",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-10-07T07:52:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a05c49d7db49071be46388f823606d2fed1cc9a1",
          "body": "…doned behat/mink-extension\n\nalso see:\nhttps://github.com/Behat/MinkExtension/pull/360#issuecomment-631583136",
          "is_bot": false,
          "headline": "Use friends-of-behat/mink-extension:^2.3.0 instead of deprecated/aban…",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T13:41:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db055d260dfc74e8ccff09f8166e10e2d1ef79a4",
          "body": "by using branch of\nas described in https://github.com/Behat/MinkExtension/pull/360\n\n(cherry picked from commit 40354e2ca18cdec7fb391d6ff33e3784816f9cd0)",
          "is_bot": false,
          "headline": "Add support for symfony 5 with symfony/config ...|^5.0",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T13:21:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "249957db4d3344fa35d04ec1b4f9817c3e990a92",
          "body": "This reverts commit 40354e2c",
          "is_bot": false,
          "headline": "Revert \"Add support for symfony 5 with symfony/config ...|^5.0\"",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T13:19:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e546e584c23df68f369e8d1496e30d7f35baa7e",
          "body": null,
          "is_bot": false,
          "headline": "Further reduce build jobs to overcome github api limit :-/",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T13:00:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36011acd6afbbf0377d8480d3bfe5c801c789ecb",
          "body": "This reverts commit a87e9f78",
          "is_bot": false,
          "headline": "Revert \"Try to use GH_TOKEN to overcome github rate limit\"",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T12:49:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a87e9f783c522f75f5bcad40399d6cdc63b8e78c",
          "body": "see:\nhttps://github.com/composer/composer/issues/1314#issuecomment-151310499\nhttps://docs.travis-ci.com/user/environment-variables/",
          "is_bot": false,
          "headline": "Try to use GH_TOKEN to overcome github rate limit",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T10:48:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f637ef6e8e53356e6e8def6eb059f5aa9fd8c12",
          "body": null,
          "is_bot": false,
          "headline": "Remove PHP 7.1 from non matrix definition",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T10:35:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4057bb9e267d40a8d43726f4282b5f2679f05ac",
          "body": "…in travis ci available",
          "is_bot": false,
          "headline": "Add updatePantherChromeDriver.sh to have corresponding chrome driver …",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T10:28:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "630ccbab216a09d407fed546f29a29303a12de54",
          "body": "cause I can not afford it's pricing",
          "is_bot": false,
          "headline": "Remove badges for sensio labs insight",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T09:50:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "40354e2ca18cdec7fb391d6ff33e3784816f9cd0",
          "body": "by using branch of\nas described in https://github.com/Behat/MinkExtension/pull/360",
          "is_bot": false,
          "headline": "Add support for symfony 5 with symfony/config ...|^5.0",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-09-21T09:49:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3c3c97dbabec8a58a95767d22d9beeb078e9752",
          "body": null,
          "is_bot": false,
          "headline": "Add version number in CHANGELOG.md to go for a new release",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T15:51:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "14f9d9eac9df6074f7643efdef9fa2828f33e800",
          "body": "by fixing\nError: Call to undefined method Symfony\\Component\\Config\\Definition\\Builder\\TreeBuilder::getRootNode()",
          "is_bot": false,
          "headline": "Add compatibility for symfony/config 3.4",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T15:45:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea2999affb5de7482acdbeffa0be9bebb44982e1",
          "body": null,
          "is_bot": false,
          "headline": "Use psr-4 instead of psr-0 autoload fixing provided namespace",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T15:36:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "943426a2ba92e815f053bc7510f63d1dee8bca1b",
          "body": null,
          "is_bot": false,
          "headline": "Use psr-4 instead of psr-0 autoload fixing provided namespace",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T15:27:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b57d03e8196675d0576d590caa30e19087e1e21",
          "body": null,
          "is_bot": false,
          "headline": "Use psr-4 instead of psr-0 autoload fixing provided namespace",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T15:22:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1bbe947136bfcbe815631529ec9033ae62188d09",
          "body": null,
          "is_bot": false,
          "headline": "Use psr-4 instead of psr-0 autoload and update test matrix",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T15:12:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a237a3daf4604747fa5ffa506c7efe6ffd73fae",
          "body": null,
          "is_bot": false,
          "headline": "Remove \"fast_finish: true\" from travis",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T14:47:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ccc934c6bcdc522dfc906ac92378529fb705e935",
          "body": null,
          "is_bot": false,
          "headline": "Add more test scenarios giving g1a/composer-test-scenarios a try",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T14:14:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44ba5f7ddfcd2da081bfb2e702d885b0cfeccab2",
          "body": null,
          "is_bot": false,
          "headline": "Fix test_build_driver_without_options Refs #3 Refs #1",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T13:09:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13cf16389140e561f88afe45335baa11de91df56",
          "body": null,
          "is_bot": false,
          "headline": "Add missing --config to .travis.yml Refs #3 Refs #1",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T12:21:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "338dab1552e96cdf0bc50318675602b54018694e",
          "body": "* add docker-compose support\n* req --dev phpunit/phpunit matthiasnoback/symfony-config-test\nso that they support at least php 7.1\n* add unit tests and one behat test with chrome\n* add PHP 7.4 to travis and adopt script section\n* init CHANGELOG.md",
          "is_bot": false,
          "headline": "Add tests and init configuration support Refs #3 Closes #1",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-29T12:16:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10087b4308e65730df4186d6212c65a759fa8cff",
          "body": null,
          "is_bot": false,
          "headline": "Minor fix of spelling",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2020-03-28T17:31:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca3da299b52fc71fe26e4cc17cd2b78c19f9f349",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2019-09-30T14:56:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "67992b3d66ff6d43d818664937e1a61ab558e92d",
          "body": null,
          "is_bot": false,
          "headline": "Display more badges",
          "author_name": "robertfausk",
          "author_login": "robertfausk",
          "committed_at": "2019-09-29T21:05:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ce04b1cf85c7157c8685a8189908a2b55b51f89",
          "body": "instead of ^1.0@dev",
          "is_bot": false,
          "headline": "Update robertfausk/mink-panther-driver to ^1.0",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2019-08-16T18:02:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bac64333f57ca1856173d058249048bef21ae594",
          "body": null,
          "is_bot": false,
          "headline": "Require robertfausk/mink-panther-driver",
          "author_name": "robertfausk",
          "author_login": null,
          "committed_at": "2019-04-29T09:16:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2303bec10749b77ff84881197a214479f9bbcac",
          "body": null,
          "is_bot": false,
          "headline": "Fix namespace of PantherFactory",
          "author_name": "robertfausk",
          "author_login": null,
          "committed_at": "2019-04-28T12:16:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0269bbd0b686abcd364a7eeb87bffc072e0acaed",
          "body": null,
          "is_bot": false,
          "headline": "Fix autoload namespace",
          "author_name": "robertfausk",
          "author_login": null,
          "committed_at": "2019-04-28T12:11:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8158cab0cef1ac322bfa873119d742de53a73bb9",
          "body": null,
          "is_bot": false,
          "headline": "Initial release :heart:",
          "author_name": "robertfausk",
          "author_login": null,
          "committed_at": "2019-04-28T11:52:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7786e97e0a7a343d4f669d91441380b10a0dfe8",
          "body": null,
          "is_bot": false,
          "headline": "Initial commit",
          "author_name": "Robert Freigang",
          "author_login": "robertfausk",
          "committed_at": "2019-04-28T11:09:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 12,
      "commits_last_year": 0,
      "latest_release_at": "2025-04-04T10:11:09Z",
      "latest_release_tag": "v1.2.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 0,
      "days_since_latest_release": 478,
      "mean_days_between_releases": 184
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "robertfausk/behat-panther-extension",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "symfony",
            "Behat",
            "test",
            "browser",
            "web",
            "gui",
            "gherkin",
            "chrome",
            "Cucumber",
            "firefox",
            "Panther"
          ],
          "ecosystem": "packagist",
          "matches_repo": true,
          "registry_url": "https://packagist.org/packages/robertfausk/behat-panther-extension",
          "is_deprecated": false,
          "latest_version": "v1.2.0",
          "repository_url": "https://github.com/robertfausk/behat-panther-extension",
          "versions_count": 12,
          "total_downloads": 2086031,
          "dependents_count": 88,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 73166,
          "first_published_at": null,
          "latest_published_at": "2025-04-04T10:09:14Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 478
        }
      ]
    },
    "popularity": {
      "forks": 10,
      "stars": 34,
      "watchers": 3,
      "fork_history": {
        "days": [
          {
            "date": "2020-03-25",
            "count": 1
          },
          {
            "date": "2020-09-09",
            "count": 1
          },
          {
            "date": "2021-03-09",
            "count": 1
          },
          {
            "date": "2024-02-19",
            "count": 1
          },
          {
            "date": "2024-03-20",
            "count": 1
          },
          {
            "date": "2025-02-27",
            "count": 1
          },
          {
            "date": "2025-08-24",
            "count": 1
          },
          {
            "date": "2026-01-05",
            "count": 1
          },
          {
            "date": "2026-07-13",
            "count": 1
          },
          {
            "date": "2026-07-16",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 10,
        "total_forks": 10
      },
      "star_history": null,
      "open_issues_and_prs": 9
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 5964,
      "source_files_sampled": 6,
      "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": 9,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "packagist"
      ],
      "dependencies": [
        {
          "name": "behat/behat",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.0.5"
        },
        {
          "name": "robertfausk/mink-panther-driver",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.0"
        },
        {
          "name": "symfony/config",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.4|^4.0|^5.0|^6.0|^7.0"
        },
        {
          "name": "friends-of-behat/mink-extension",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.3.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "behat/behat",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "friends-of-behat/mink-extension",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "robertfausk/mink-panther-driver",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/config",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "g1a/composer-test-scenarios",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "matthiasnoback/symfony-config-test",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "php",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "roave/security-advisories",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 9,
        "direct_count": 4,
        "indirect_count": 5
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 7,
        "merged_prs": 3,
        "open_issues": 2,
        "closed_ratio": 0.875,
        "closed_issues": 14,
        "closed_unmerged_prs": 1
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "robertfausk",
          "commits": 74,
          "avatar_url": "https://avatars.githubusercontent.com/u/1651297?v=4"
        },
        {
          "type": "User",
          "login": "tucksaun",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/870118?v=4"
        },
        {
          "type": "User",
          "login": "phcorp",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/725023?v=4"
        },
        {
          "type": "User",
          "login": "ConstantBqt",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/22151118?v=4"
        }
      ],
      "contributors_sampled": 4,
      "top_contributor_share": 0.937
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 0,
            "reason": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
            "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": 0,
            "reason": "Found 2/27 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 6,
            "reason": "project has 2 contributing companies or organizations -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 9,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "838984a60cd53d950382bee321f8b670c3a5d120",
        "ran_at": "2026-07-27T08:33:47Z",
        "aggregate_score": 3.1,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-04-19T16:17:45Z",
      "oldest_open_prs": [
        {
          "number": 20,
          "created_at": "2025-08-24T03:23:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 21,
          "created_at": "2025-08-24T03:47:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 23,
          "created_at": "2025-08-24T04:10:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 24,
          "created_at": "2025-08-24T04:24:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 25,
          "created_at": "2026-01-05T15:02:50Z",
          "last_comment_at": "2026-02-10T08:19:55Z",
          "last_comment_author": "loic425"
        },
        {
          "number": 26,
          "created_at": "2026-07-13T10:57:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 27,
          "created_at": "2026-07-27T08:25:50Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2025-04-04T08:00:14Z",
      "ci_last_conclusion": "FAILURE",
      "oldest_open_issues": [
        {
          "number": 13,
          "created_at": "2023-03-01T18:36:51Z",
          "last_comment_at": "2024-04-18T07:29:25Z",
          "last_comment_author": "robertfausk"
        },
        {
          "number": 22,
          "created_at": "2025-08-24T03:55:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/robertfausk/behat-panther-extension",
    "host": "github.com",
    "name": "behat-panther-extension",
    "owner": "robertfausk"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "critical",
      "name": "Overall health",
      "note": "Abandonment Policy applies a 60% multiplier to weighted overall health and gives it a ceiling of 49.",
      "notes": [
        {
          "code": "abandonment_overall_adjustment",
          "params": {
            "cap": 49,
            "pct": 60
          }
        }
      ],
      "value": 29,
      "inputs": {
        "security": 31,
        "vitality": 42,
        "community": 48,
        "governance": 54,
        "engineering": 59,
        "abandonment_cap": 49,
        "abandonment_state": "likely_abandoned",
        "abandonment_multiplier": 60,
        "weighted_overall_before_abandonment": 48,
        "overall_after_abandonment_multiplier": 29
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "at_risk",
        "name": "Vitality",
        "value": 42,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "at_risk",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 36,
            "inputs": {
              "commits_last_year": 0,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 0
            },
            "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": "0/52 weeks with commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "0 commits in the last year",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "moderate",
            "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": 52,
            "inputs": {
              "releases_count": 12,
              "latest_release_tag": "v1.2.0",
              "releases_from_tags": false,
              "days_since_latest_release": 478,
              "mean_days_between_releases": 184
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "12 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 478 days ago",
                "points": 7.2,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 478
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~184 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 184
                    }
                  }
                ],
                "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": "moderate",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "cap": 49,
              "state": "likely_abandoned",
              "guards": [],
              "signals": [
                "unanswered_contributions",
                "scorecard_unmaintained",
                "broken_ci"
              ],
              "red_flag": true,
              "multiplier_pct": 60,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": 5,
              "unanswered_open_issues": 0,
              "days_since_last_merged_pr": 479,
              "days_since_last_human_commit": 478,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "no human commit for 478 days; 3 unmet obligation(s): pull requests unanswered, Scorecard reports it unmaintained, CI broken",
                "points": 60,
                "status": "partial",
                "details": [
                  {
                    "code": "abandonment_flagged",
                    "params": {
                      "days": 478,
                      "count": 3,
                      "signals": "pull requests unanswered, Scorecard reports it unmaintained, CI broken"
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 48,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 34,
            "inputs": {
              "forks": 10,
              "stars": 34,
              "watchers": 3,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "34 stars",
                "points": 24.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 34
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "10 forks",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "3 watchers",
                "points": 1.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "at_risk",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "good",
            "name": "Ecosystem adoption (downloads)",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "packages": [
                "robertfausk/behat-panther-extension"
              ],
              "dependents": 88,
              "ecosystems": "packagist",
              "total_downloads": 2086031,
              "monthly_downloads": 73166
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "73,166 downloads/month across packagist",
                "points": 64.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 73166,
                      "ecosystems": "packagist"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "88 packages depend on it",
                "points": 13,
                "status": "partial",
                "details": [
                  {
                    "code": "registry_dependents",
                    "params": {
                      "count": 88
                    }
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 54,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 22,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 4,
              "top_contributor_share": 0.937
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 94% of commits",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 94
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "4 contributors",
                "points": 5.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "merged_prs": 3,
              "open_issues": 2,
              "closed_issues": 14,
              "issue_closed_ratio": 0.875,
              "closed_unmerged_prs": 1
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "88% of issues closed",
                "points": 40.9,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 88
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "3/4 decided PRs merged",
                "points": 28.7,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 3,
                      "decided": 4
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 2/27 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 55,
            "inputs": {
              "followers": 15,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "robertfausk",
              "public_repos": 119,
              "account_age_days": 5213
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "15 followers of robertfausk",
                "points": 8.7,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 15,
                      "login": "robertfausk"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "119 public repos, account ~14 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 119
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 14
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "good",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 79,
            "inputs": {
              "packages": [
                "robertfausk/behat-panther-extension"
              ],
              "ecosystems": "packagist",
              "any_deprecated": false,
              "min_days_since_publish": 478
            },
            "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 478 days ago",
                "points": 14,
                "status": "partial",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 478
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "12 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 59,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 48,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "1 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [
                "behat-extension",
                "symfony-panther",
                "panther",
                "symfony-panther-extension",
                "behat",
                "extension",
                "panther-driver",
                "mink",
                "php",
                "symfony"
              ],
              "has_wiki": true,
              "homepage": "https://packagist.org/packages/robertfausk/behat-panther-extension",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://packagist.org/packages/robertfausk/behat-panther-extension",
                "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": "10 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 31,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 31,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.1
            },
            "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": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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 2/27 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 8
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "at_risk",
        "name": "AI Readiness",
        "value": 31,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "critical",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 19,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.361,
              "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": "30 of 83 human commits state their intent (structured subject or explanatory body)",
                "points": 19.3,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 30,
                      "sampled": 83
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 32,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 83",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 83
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "PHP",
              "largest_source_bytes": 5964,
              "source_files_sampled": 6,
              "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/6 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 6,
                      "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-27T08:33:55.037701Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/robertfausk/behat-panther-extension.svg",
  "full_name": "robertfausk/behat-panther-extension",
  "license_state": "custom",
  "license_spdx": null
}

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

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

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