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

adyen-examples / adyen-magento2-hyva

PHP · HTMLMIT★ 10 зірок⑂ 19 форківз лют. 2024 р.Переглянути на GitHub ↗

adyen-examples/adyen-magento2-hyva має індекс здоров’я 45 зі 100, що відповідає смузі «У зоні ризику». Найвищий показник — Sustainability & Governance (69/100), найнижчий — Vitality (32/100). Останнє оновлення було 303 дні тому. Більшість нещодавньої роботи виконують 2 учасники.

45
загалом / 100
У зоні ризику

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

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

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

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

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

Abandonment Policy applies a 85% multiplier to weighted overall health.

Власність

Adyen ExamplesОрганізація
204 підписники34 публічні репозиторіїз вер. 2019 р.

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

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

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікація
Packagistadyen/module-hyva-checkout1.3.02 7058380 днів тому

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

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

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

32У зоні ризику · 22% загального індексу
Як обчислюється оцінка
3.6/36Свіжість push — останній push 303 дн. тому
2.1/36Ритм комітів — 3/52 тижнів із комітами
7/18Обсяг комітів — 5 комітів за останній рік
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Використані вхідні дані
commits_last_year5
human_commit_share0,91
days_since_last_push303
active_weeks_last_year3
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 8 релізів
7.2/36Свіжість релізів — останній реліз 380 дн. тому
19.8/27Ритм релізів — реліз кожні ~59,3 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count8
latest_release_tag1.3.0
releases_from_tagsні
days_since_latest_release380
mean_days_between_releases59,3
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

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

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

52Помірний · 18% загального індексу
Як обчислюється оцінка
15.5/60Зірки — 10 зірок
10.5/25Форки — 19 форків
1.7/15Спостерігачі — 3 спостерігачів
Використані вхідні дані
forks19
stars10
watchers3
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
18/18Настанови CONTRIBUTING
13.5/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ні
Як обчислюється оцінка
45.8/80Щомісячні завантаження — 2 705 завантажень/місяць у packagist
0/20Залежні пакети в реєстрі — залежних пакетів: 0
Використані вхідні дані
packagesadyen/module-hyva-checkout
dependents0
ecosystemspackagist
total_downloads70 665
monthly_downloads2 705

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

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

69Помірний · 24% загального індексу
Як обчислюється оцінка
25.2/54Бас-фактор — на 2 контриб’ютор(ів) припадає половина всіх комітів
15.7/22.5Розподіл комітів — головний контриб’ютор — автор 30% комітів
13.5/13.5Широта контриб’юторів — 16 контриб’юторів
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Використані вхідні дані
bus_factor2
contributors_sampled16
top_contributor_share0,304
Як обчислюється оцінка
33/46.8Вирішення issue — закрито 71% issue
31.5/38.3Прийняття PR — злито 56/68 вирішених PR
12/15OpenSSF Scorecard: Code-Review — Found 12/14 approved changesets -- score normalized to 8
Використані вхідні дані
merged_prs56
open_issues20
closed_issues48
issue_closed_ratio0,706
closed_unmerged_prs12
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
16.6/25Охоплення власника — 204 підписників у adyen-examples
23.2/25Послужний список — 34 публічних репозиторіїв, вік облікового запису ~6 р.
Використані вхідні дані
followers204
owner_typeOrganization
is_verified
owner_loginadyen-examples
public_repos34
account_age_days2 502
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у packagist
14/35Свіжість публікацій — остання публікація 380 дн. тому
20/20Історія версій — 8 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesadyen/module-hyva-checkout
ecosystemspackagist
any_deprecatedні
min_days_since_publish380

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

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

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

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

40У зоні ризику
Як обчислюється оцінка
30/30README
0/25Каталог документації
0/15Сайт документації / домашня сторінка
0/10Опис репозиторію
0/10Теми
10/10Wiki
Використані вхідні дані
topics
has_wikiтак
homepage
has_readmeтак
has_docs_dirні
has_descriptionні

Безпека

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

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

Стан безпеки

54Помірний
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — немає даних
0.8/2.5CI-Tests — 6 out of 20 merged PRs checked by a CI test -- score normalized to 3
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
6/7.5Code-Review — Found 12/14 approved changesets -- score normalized to 8
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
0/10Dangerous-Workflow — dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/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
1.5/5SAST — SAST tool is not run on all commits -- score normalized to 3
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — немає даних
6.8/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate5,4
Виключено з оцінювання (немає даних або не застосовно): branch_protection, packaging, signed_releases. Залишкові ваги перенормовано.

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

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

55Помірний · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
35.2/40Читабельна історія комітів — намір зазначено у 60 з 91 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,659
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
18/18Розгортання однією командою — .github/Makefile
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — phpcs.xml
0/11Статична перевірка типів
10/10Відтворюване середовище — Dockerfile
0/10Підтверджена практика роботи з агентами — серед останніх 100 комітів немає створених агентом
8/8Автоматизоване супроводження — 9 з останніх 100 комітів — автоматичні оновлення залежностей
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.github/Makefile
has_devcontainerні
has_linter_configтак
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0,09
Як обчислюється оцінка
0/45Типізований код — PHP без конфігурації перевірки типів
55/55Керовані розміри файлів — 0/64 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languagePHP
largest_source_bytes14 557
source_files_sampled64
oversized_source_files0

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

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

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

0481216201932024-092025-042025-11
Мажорні 0Мінорні 2Патчі 3

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

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

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

10Binary-Artifactsno binaries found in the repo
н/дBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
3CI-Tests6 out of 20 merged PRs checked by a CI test -- score normalized to 3
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
8Code-ReviewFound 12/14 approved changesets -- score normalized to 8
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
0Dangerous-Workflowdangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense 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
3SASTSAST tool is not run on all commits -- score normalized to 3
10Security-Policysecurity policy file detected
н/дSigned-Releasesno releases found
9Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Прямі залежності 4
РеєстрПакетОбмеження версіїМаніфест
Packagistadyen/module-payment^9.13.0composer.json
Packagisthyva-themes/magento2-default-theme^1.3composer.json
Packagisthyva-themes/magento2-hyva-checkout^1.3composer.json
Packagisthyva-themes/magento2-theme-module^1.3.11composer.json
Усі залежності 7

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

РеєстрПакетВерсіяЗв'язок
Packagistadyen/module-paymentпряма
Packagisthyva-themes/magento2-default-themeпряма
Packagisthyva-themes/magento2-hyva-checkoutпряма
Packagisthyva-themes/magento2-theme-moduleпряма
Packagistmagento/magento-coding-standardнепряма
Packagistphpunit/phpunitнепряма
Packagistsquizlabs/php_codesnifferнепряма
Сповіщення про залежності не оцінено

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

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 245,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "PHP": 147356,
        "HTML": 81669
      },
      "pushed_at": "2025-09-26T13:04:42Z",
      "created_at": "2024-02-01T08:41:52Z",
      "owner_type": "Organization",
      "updated_at": "2025-08-26T07:39:55Z",
      "description": null,
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "develop",
      "license_spdx_raw": "MIT",
      "primary_language": "PHP",
      "significant_languages": [
        "PHP",
        "HTML"
      ]
    },
    "owner": {
      "blog": "https://adyen.com",
      "name": "Adyen Examples",
      "type": "Organization",
      "login": "adyen-examples",
      "company": null,
      "location": "Amsterdam, Netherlands",
      "followers": 204,
      "avatar_url": "https://avatars.githubusercontent.com/u/55514737?v=4",
      "created_at": "2019-09-18T21:56:39Z",
      "is_verified": null,
      "public_repos": 34,
      "account_age_days": 2502
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "1.3.0",
          "kind": "minor",
          "published_at": "2025-07-11T12:01:07Z"
        },
        {
          "tag": "1.2.3",
          "kind": "patch",
          "published_at": "2025-02-20T08:12:20Z"
        },
        {
          "tag": "1.2.2",
          "kind": "patch",
          "published_at": "2025-01-08T13:43:09Z"
        },
        {
          "tag": "1.2.1",
          "kind": "patch",
          "published_at": "2024-10-08T09:33:27Z"
        },
        {
          "tag": "1.2.0",
          "kind": "minor",
          "published_at": "2024-10-03T14:47:13Z"
        },
        {
          "tag": "1.1.0",
          "kind": "minor",
          "published_at": "2024-09-09T10:07:29Z"
        },
        {
          "tag": "1.0.0",
          "kind": "major",
          "published_at": "2024-07-18T13:11:16Z"
        },
        {
          "tag": "1.0.0-rc1",
          "kind": "prerelease",
          "published_at": "2024-05-22T14:04:29Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "b73c960d638d4c8910c611e33c382c7320f1b968",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Ayodeji Ogundare",
          "author_login": "ayodejidev",
          "committed_at": "2025-08-26T07:39:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "415ffd9c770a4ec3a37991bfe0591b62f1e11003",
          "body": "Main",
          "is_bot": false,
          "headline": "Merge pull request #132 from adyen-examples/main",
          "author_name": "Ayodeji Ogundare",
          "author_login": "ayodejidev",
          "committed_at": "2025-08-26T07:38:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d2d6f8374e5a3707b9018a71191991854e162b5",
          "body": "Readme Update",
          "is_bot": false,
          "headline": "Merge pull request #129 from olga-adyen/patch-1",
          "author_name": "Ayodeji Ogundare",
          "author_login": "ayodejidev",
          "committed_at": "2025-08-26T07:37:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83bc44e2b4ef064d65f58de0b683edfb8ff8b17d",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "olga-adyen",
          "author_login": "olga-adyen",
          "committed_at": "2025-08-14T12:46:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6cd8ef363e4bae4f2e54954c3be5af6f0c5f6502",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Ayodeji Ogundare",
          "author_login": "ayodejidev",
          "committed_at": "2025-08-08T11:09:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "338c34c45db92dc1e7e1576c747305e4f35a18db",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Ayodeji Ogundare",
          "author_login": "ayodejidev",
          "committed_at": "2025-07-22T22:55:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d44bd3780bfaca73e5f8237e7af8efd30382d94",
          "body": "Release 1.3.0",
          "is_bot": false,
          "headline": "Merge pull request #124 from Adyen/develop",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-07-11T11:57:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0b8d091bece7d3e54c7ddaa383142020bfa8c8a",
          "body": "…ght-1.x\n\nchore(deps): update mcr.microsoft.com/playwright docker tag to v1.54.0",
          "is_bot": false,
          "headline": "Merge pull request #123 from Adyen/renovate/mcr.microsoft.com-playwri…",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-07-11T11:27:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "806ca2df53f3afa3dfa74de0c09deca60b570b7a",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into renovate/mcr.microsoft.com-playwright-1.x",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-07-11T11:12:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2182b55daf66d5a2fd04ac92cc2a04cc8c130c6b",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-07-11T11:12:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8c5dc41d9643d742b8b552f77e566b361e7cd1e",
          "body": null,
          "is_bot": true,
          "headline": "chore(deps): update mcr.microsoft.com/playwright docker tag to v1.54.0",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2025-07-11T11:11:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b44a19b0fa256d335c6e9d4593bc19a7cf2fd239",
          "body": null,
          "is_bot": false,
          "headline": "Version Bump 1.3.0",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-07-11T11:11:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa62f1f0c329e3303972fd8cd9ecf211e864a82d",
          "body": "* Adjust Sonarcube action version\n\n* Update Magento version to support CSP patch",
          "is_bot": false,
          "headline": "Use new version of the SonarCube action (#118)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-07-09T11:58:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9abe077a9932b9011174c99ffba3aa53d82ddf3",
          "body": "…#117)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update dependency squizlabs/php_codesniffer to ~3.13.0 (…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2025-07-09T11:57:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "649ddfb8662f4d295ecf83c22abdbabda493ee5b",
          "body": "Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": true,
          "headline": "chore(deps): update elasticsearch docker tag to v7.17.28 (#114)",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2025-07-09T11:55:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26174b2f346a26a9492e96759815bef2add21eb7",
          "body": "…2 (#119)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update mcr.microsoft.com/playwright docker tag to v1.53.…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2025-07-09T11:55:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "026abe43c03b375bbd6399133055c8a7948c1efd",
          "body": "* CSP migration\n\nThis will run several tools to optimize your code, find more about CSP\nRead our documentation for [theme](https://docs.hyva.io/hyva-themes/writing-code/csp/index.html) and [checkout](https://docs.hyva.io/checkout/hyva-checkout/devdocs/csp/index.html) changes\n\n- @TODO! means **work t\n[…]\n cc-vault\n\n* Add checkout validation to global scope\n\n* gracefully decline\n\n* Remove dependency on eventListeners in favor of alpinejs\n\n---------\n\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "CSP migration (#113)",
          "author_name": "Jeroen Boersma",
          "author_login": "JeroenBoersma",
          "committed_at": "2025-07-09T11:50:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8ea0b147ed4cbe976dedda125c4ecaf9a043ff78",
          "body": "* [ECP-9721] Enable explicit CodeQL configuration\n\n* [ECP-9721] Adjust Renovate stability days\n\n* Revert \"[ECP-9721] Enable explicit CodeQL configuration\"\n\nThis reverts commit 54a605445d8693976191d6cc3a93116178f8b50b.\n\n* [ECP-9721] Update workflow permissions",
          "is_bot": false,
          "headline": "[ECP-9721] Fix CodeQL issues and add workflow permissions (#116)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-06-04T13:39:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2014c7320a46b53ef225ead807306cfef3734cba",
          "body": "Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": true,
          "headline": "chore(deps): update elasticsearch docker tag to v7.17.27 (#106)",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2025-05-02T07:42:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c6ac8c0acb170456c5a6609ae781cf384817fce",
          "body": "…0 (#107)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": true,
          "headline": "chore(deps): update mcr.microsoft.com/playwright docker tag to v1.52.…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2025-05-02T07:41:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ce03a4e80f1bbe7f6cdac6018fea76f412377c6",
          "body": "…#112)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update dependency squizlabs/php_codesniffer to ~3.12.0 (…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2025-05-02T07:41:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1d91007229c257c10c775cfa37ec01487eb263c",
          "body": "Co-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9628] Implement timeout for workflows (#105)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-02-20T15:28:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "571f21be896baf6c2eb3749bd31211bab87b813d",
          "body": "Release 1.2.3",
          "is_bot": false,
          "headline": "Merge pull request #96 from Adyen/develop",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-02-20T08:11:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50b85a6c5416dc940801fdc76e5c849212aa61b8",
          "body": "…sing a property of it (#103)\n\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9627] Check the existence of the Magewire component before acces…",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-02-19T15:18:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0fb13ae29161ac02868a978b630b63f387c30a7b",
          "body": null,
          "is_bot": false,
          "headline": "Version bump",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-02-19T13:07:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72e15c3709fb53bf5cd8c421793eb8ec6a80a3f6",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-02-19T13:05:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7338c86f2436f00000f59d6a4650a184c94e8a7",
          "body": "* Update sorting payment method feature\r\n\r\n* Update the naming convention and return null-safe value\r\n\r\n* Write unit tests\r\n\r\n---------\r\n\r\nCo-authored-by: dunglv <dunglv@jajuma.de>\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "Update sorting payment method feature (#73)",
          "author_name": "dungptit98",
          "author_login": "dungptit1410",
          "committed_at": "2025-02-19T13:02:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5434da94e92ccad8fc6bebb95ba9e35aa75e0835",
          "body": "* [ECP-9572] Implement agreement acceptor for Terms & Conditions\r\n\r\n* [ECP-9572] Fix the unit tests\r\n\r\n* [ECP-9572] Write tests for StoredCards class\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9572] Implement agreement acceptor for Terms & Conditions (#91)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-02-19T09:43:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "597642f9112c90b6fae9c7d006c6033d41e5851f",
          "body": "Remove unnecessary setting/overriding of the page layout in the checkout\r\n\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": false,
          "headline": "Update remove page layout (#82)",
          "author_name": "Klaas van der Weij",
          "author_login": "kweij",
          "committed_at": "2025-02-18T13:38:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7905194ca8cfe011c3ee8544459dd092e2fb668e",
          "body": "Co-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9624] Add pull_request_target event to E2E test workflow (#102)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-02-18T13:27:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9a4e51c9efb8d28924e11459495e479d599cc1d",
          "body": "* [ECP-9544] Create an abstract method renderer for Oney/Facilypay variants\r\n\r\n* [ECP-9544] Bump the dependency version\r\n\r\n* [ECP-9544] Remove breakpoints\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9544] Support all Oney/Facilypay variants (#78)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-02-18T12:50:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "300001ae504723f65976871ca4884fdf903737ec",
          "body": "This reverts commit e4d59e3cd8ddf30ccd489bf07ee54ca20347fc35.",
          "is_bot": false,
          "headline": "Revert \"chore(deps): update mariadb docker tag to v10.10 (#99)\"",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2025-02-14T13:43:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4d59e3cd8ddf30ccd489bf07ee54ca20347fc35",
          "body": "Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": true,
          "headline": "chore(deps): update mariadb docker tag to v10.10 (#99)",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2025-02-14T13:32:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "877265e986ee65bcd319da7e11c5753630b2a129",
          "body": "…1 (#97)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update mcr.microsoft.com/playwright docker tag to v1.50.…",
          "author_name": "renovate[bot]",
          "author_login": "renovate[bot]",
          "committed_at": "2025-02-14T13:31:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "352fae23359d0f1e93463d1b7e6eaff5598426ca",
          "body": "* 84 translate issue\r\n\r\n* Implement JS escaper for PHP outputs\r\n\r\n---------\r\n\r\nCo-authored-by: dunglv <dunglv@jajuma.de>\r\nCo-authored-by: Khushboo <khushboo.singhvi@adyen.com>\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": false,
          "headline": "84 translate issue (#85)",
          "author_name": "dungptit98",
          "author_login": "dungptit1410",
          "committed_at": "2025-02-14T13:30:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "256390d42f1e61bc4b860aa25675ab98a5091845",
          "body": "Taken from https://github.com/Adyen/adyen-magento2/blob/main/.github/workflows/main.yml#L21",
          "is_bot": false,
          "headline": "Fix Main workflow ref (#95)",
          "author_name": "Justin van Elst",
          "author_login": "JustinElst",
          "committed_at": "2025-01-21T15:39:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d2953811a518b9d876cf8a3f14118b453875e68",
          "body": "Make compatible with adyen/module-payment 9.13.0",
          "is_bot": false,
          "headline": "Merge pull request #93 from JustinElst/make-compatible-9-13-0",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-01-21T09:30:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e42ef861d1403528d58d677d11ae7367ff0834d",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into make-compatible-9-13-0",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-01-15T12:12:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc880ae8cb9328e6310a014d05444cbbd31a12f2",
          "body": "[ECP-9588]Trigger the Workflow for external PRs",
          "is_bot": false,
          "headline": "Merge pull request #94 from Adyen/ECP-9588",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-01-15T12:11:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8fe5cd9b1c5d78d7a2ac445604f68ffb184dfcc",
          "body": "…w for external PR",
          "is_bot": false,
          "headline": "Adding `pull_request_target` to the `on` attribute to trigger workflo…",
          "author_name": "khushboos",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-01-15T09:11:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c64a2a999b31e55ad426a3f08462c1949d2da92",
          "body": null,
          "is_bot": false,
          "headline": "Make compatible with adyen/module-payment 9.13.0",
          "author_name": "Justin van Elst",
          "author_login": "JustinElst",
          "committed_at": "2025-01-14T12:30:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e9c1df6dc0098ed9141393a6672bad6c9cb72f4",
          "body": null,
          "is_bot": false,
          "headline": "Make compatible with adyen/module-payment 9.13.0",
          "author_name": "Justin van Elst",
          "author_login": "JustinElst",
          "committed_at": "2025-01-14T12:28:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c709562cc3c005ae13f1beba3b4f8da5d84a1bf",
          "body": "Release 1.2.2",
          "is_bot": false,
          "headline": "Merge pull request #75 from Adyen/develop",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2025-01-08T13:34:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7edc2604a5dc253b60e572b81ecfe03e7be5598a",
          "body": "* [ECP-9543] Enable Dependabot with basic configuration\r\n\r\n* [ECP-9543] Change target branch\r\n\r\n* [ECP-9543] Enable Renovate\r\n\r\n* [ECP-9543] Remove Dependabot config file\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9543] Configure Renovate with basic configurations (#80)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-12-24T09:35:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61464ebf352601fa3a7ff635be26d941acb56304",
          "body": "[ECP-9547] Adding BrandCodeDataAssigner to the other Klarna PM variants",
          "is_bot": false,
          "headline": "Merge pull request #79 from Adyen/ECP-9547",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-12-10T10:33:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58ed98745e2ef168230a4e79f5e026cedabf493b",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into ECP-9547",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-11-28T15:09:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51f44df452d519a7ad3dd9092fcf81153e797949",
          "body": null,
          "is_bot": false,
          "headline": "Adding BrandCodeDataAssigner to the other Klarna PM variants",
          "author_name": "khushboos",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-11-28T15:07:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f366a4c2fd058236992107ddf8e9f277ab72d39b",
          "body": "Co-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "Increase unit test coverage (#77)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-11-26T15:15:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4e8a0c0b5e23944bbf9562da37fe1b8da626748",
          "body": "Co-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "Fix unit tests (#76)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-11-20T08:53:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b622b4deeb51ba47f64ac94415772d0d054a846",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-11-18T09:57:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "77e750c680b5b27c5bb5aa25b5a75e00b59cf5e3",
          "body": null,
          "is_bot": false,
          "headline": "Version bump",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-11-18T09:56:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f24302168f323ff94386fc013acce8f73a6a2a4",
          "body": "* Add visual loading.. spinner to place order\r\n\r\n* Fix closing dispatchEvent\r\n\r\n* Dont use finish\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": false,
          "headline": "Add visual loading.. spinner to place order (#68)",
          "author_name": "Justin van Elst",
          "author_login": "JustinElst",
          "committed_at": "2024-11-08T10:09:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b0a5b4fb81f414112b8ef3f3a1917d608a04c6d",
          "body": "Co-authored-by: Khushboo <khushboo.singhvi@adyen.com>\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": false,
          "headline": "feat: use guest payment information on guest checkout (#57)",
          "author_name": "Philipp Sander",
          "author_login": "philippsander",
          "committed_at": "2024-11-08T10:09:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11e6f49e8324d50b73cfd760129c80a52ff7d09b",
          "body": "* #59 Configuration provider\r\n\r\n* Formatting\r\n\r\n* Write unit tests\r\n\r\n* Fix unit tests\r\n\r\n---------\r\n\r\nCo-authored-by: Sushmita Thakur <sushmitathakur1993@gmail.com>\r\nCo-authored-by: Khushboo <khushboo.singhvi@adyen.com>\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": false,
          "headline": "Issue Preventing Checkout with Configurable Products in Low Stock (#62)",
          "author_name": "Marjan Petkovski",
          "author_login": "pmarjan-onestic",
          "committed_at": "2024-11-08T08:19:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e318ec236289eeb93dd49b2ba7e1d66ab2b930db",
          "body": "* [ECP-9541] Add PHPUnit configuration file\r\n\r\n* [ECP-9541] Install Hyvä repositories and run unit tests\r\n\r\n* [ECP-9541] Create SSH directory\r\n\r\n* [ECP-9541] Use SSH sock for authentication\r\n\r\n* [ECP-9541] Add Magento composer repository\r\n\r\n* [ECP-9541] Allow composer plugins\r\n\r\n* [ECP-9541] Impleme\n[…]\nests\r\n\r\n* [ECP-9541] Fix unit tests\r\n\r\n* [ECP-9541] Fix unit tests\r\n\r\n* [ECP-9541] Fix the escaper\r\n\r\n* [ECP-9541] Fix the escaper\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9541] Enable unit tests and code sniffer on main workflow (#69)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-11-06T13:45:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "406ce2c86174faf917a9aa750ef7adb18070ebe5",
          "body": "Release V1.2.1",
          "is_bot": false,
          "headline": "Merge pull request #64 from Adyen/develop",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-10-08T09:32:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17fdb20080ef034d554c56f9bb1fd5b1067a9cbb",
          "body": null,
          "is_bot": false,
          "headline": "Version bump",
          "author_name": "khushboos",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-10-08T07:30:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c738e6225ff93d7539cd1216b75c465fd255778a",
          "body": null,
          "is_bot": false,
          "headline": "Reverting changes to disable Place Order button. (#63)",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-10-08T07:14:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f36b99879de348490e88a2364543a482877f9e8",
          "body": "* [ECP-9328] Docker files for creating installing magento with Hyva dependencies, playwright and workflow file for e2e tests\r\n\r\n* [ECP-9328] Customized Magento e2e files based on Hyva local files\r\n\r\n* [ECP-9328] Update workflow name\r\n\r\n* [ECP-9328] Add Makefile\r\n\r\n* [ECP-9328] Add key part for hyva\r\n[…]\n-----\r\n\r\nCo-authored-by: sushmita <sushmita.thakur@adyen.com>\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>\r\nCo-authored-by: sushmita <>\r\nCo-authored-by: Khushboo <khushboo.singhvi@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9328] E2E Test Pipeline Setup (#48)",
          "author_name": "Sushmita Thakur",
          "author_login": "SushmitaThakur",
          "committed_at": "2024-10-07T10:14:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "eec79f27bc34e2bea245fe0feb34f9320b06e5e1",
          "body": "Release 1.2.0",
          "is_bot": false,
          "headline": "Merge pull request #61 from Adyen/develop",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-10-03T14:41:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ad4c401faa0ae55cd76f034de806e6f4909e38e",
          "body": "* Adding main.yml and sonarcloud properties to hyva\r\n\r\n* Debugging\r\n\r\n* Removing phpcs\r\n\r\n* Removing php unit tests\r\n\r\n* Removing php unit tests\r\n\r\n* Update .github/workflows/main.yml\r\n\r\nRemoving scan on pull_request_target\r\n\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>\r\nCo-authored-by: Peter Ojo <peterojo@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Adding main.yml and sonarcloud properties to hyva (#56)",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-10-03T13:15:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "428f51e4cb304e87c4e4f51c72f92da376bd3ca5",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/develop' into develop",
          "author_name": "khushboos",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-10-03T12:13:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4c51492bb51939573d2e2696850a590fe8319fc",
          "body": null,
          "is_bot": false,
          "headline": "Version Bump 1.2.0",
          "author_name": "khushboos",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-10-03T12:13:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9d44f9c9c80b5d50c8644a4ebe6b1c0eb39c6d7",
          "body": "Disable button as default. Button gets enabled after all cc form fields\r\nare filled out correctly.\r\n\r\nCloses #55\r\n\r\nCo-authored-by: Khushboo <khushboo.singhvi@adyen.com>",
          "is_bot": false,
          "headline": "feat: disable place order button for adyen_cc (#58)",
          "author_name": "Felix Zemmel",
          "author_login": "fzemmel",
          "committed_at": "2024-10-03T09:37:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3299c38410a1b3870c0bac2a818a0c455e067102",
          "body": "* add support for facilypay-3x\r\n\r\n* cleanup logs\r\n\r\n* add nested data obj in component config obj\r\n\r\n* revert redundant line removal\r\n\r\n* polish after code review\r\n\r\n* Update view/frontend/templates/payment/model/adyen-payment-method.phtml\r\n\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": false,
          "headline": "[ECP-9298] Add support for facilypay-3x (#50)",
          "author_name": "Rok Popov Ledinski",
          "author_login": "RokPopov",
          "committed_at": "2024-10-03T07:21:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8230f3e5ac426680d95dd831d91d5eda0773ce9f",
          "body": "Release 1.1.0",
          "is_bot": false,
          "headline": "Merge pull request #49 from Adyen/develop",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-09-09T10:06:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e0f116194d574889322bed23974e7cbb9b9e874",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-09-03T13:18:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03a6e87913f6217f68a9a6a31f16a30b5dffc344",
          "body": null,
          "is_bot": false,
          "headline": "Version bump",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-09-03T13:18:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e26c1f47eefd22533ec3e77ec3cc63eb6eeaf5ce",
          "body": "* [ECP-9274] Implement Amazon Pay custom handlers\r\n\r\n* [ECP-9274] Fix super function usage\r\n\r\n* [ECP-9274] Add conditional address formatting\r\n\r\n* [ECP-9274] Add unhappy flow handling with redirect\r\n\r\n* [ECP-9274] Use const instead of let\r\n\r\n* [ECP-9274] Declare a new return array\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9296] Implement Amazon Pay (#47)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-07-30T12:30:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a45a9f92069931842b244a5ca6091878ebc8daf0",
          "body": "Release 1.0.0",
          "is_bot": false,
          "headline": "Merge pull request #46 from Adyen/develop",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-07-18T13:10:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "197a72429b6525786df997600f7c1f85566a1df8",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/develop' into develop",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-07-18T11:53:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "97515750130d3b29b332010a0f56ec8d43c96411",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-07-18T11:52:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3bfdb21884a4afe3f8a9f0fbb081489280ce062c",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-07-18T11:20:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aaa8dde21fe268b46e8a58d5220932cbfe63bc9a",
          "body": null,
          "is_bot": false,
          "headline": "Update version constraint in README.md",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-07-18T11:15:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a89a9a4624560e982126e22574fcd7a0f3cdee16",
          "body": null,
          "is_bot": false,
          "headline": "Version bump",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-07-18T11:15:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0fa15c91275072ac81847e5c7dcfac265f83f60",
          "body": "* [ECP-9218] Generate payment method blocks programmatically in the layout\r\n\r\n* [ECP-9218] Mount payments methods from module-payment\r\n\r\n* [ECP-9218] Add onChange event handler\r\n\r\n* [ECP-9218] Abstract template rendering\r\n\r\n* [ECP-9218] Remove unused wire classes\r\n\r\n* [ECP-9218] Define constant for \n[…]\nion for dependencies\r\n\r\n* [ECP-9218] Remove static adyen_cc definition and create an abstract way to implement custom wire classes\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-9218] Support alternative payment method (#44)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-07-18T09:19:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "423b6968803876bd14ff450ec90fd958a10b9618",
          "body": "* Update dependencies and Readme\r\n\r\n* Update README.md",
          "is_bot": false,
          "headline": "Update dependencies (#41)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-06-04T09:31:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7725d6becfad570a102eead72054f86ad6e6bb58",
          "body": "Release 1.0.0-rc1",
          "is_bot": false,
          "headline": "Merge pull request #35 from Adyen/develop",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-05-22T13:52:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "157eefecc009cd8c707ca3cc1af721f3acff9aff",
          "body": null,
          "is_bot": false,
          "headline": "add license in composer",
          "author_name": "Peter Ojo",
          "author_login": "peterojo",
          "committed_at": "2024-05-22T10:48:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8a27114f3fd60c1aa99eb37bbf3e348692f5bb7",
          "body": "* [ECP-9063] RC Release preparation - Adding .github directory and related files\r\n\r\n* [ECP-9063] RC Release preparation - removing version from composer.json, as we will have release candidate release\r\n\r\n* [ECP-9063] RC Release preparation - Adding correct version of module-payment that will support hyva",
          "is_bot": false,
          "headline": "[ECP-9063] Preparing release candidate  (#40)",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-05-21T14:52:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6df28e09031ec7a612e84336f30c0e8b3d194925",
          "body": "* #36: Unit tests\r\n\r\n* #36: Unit tests: Reduce ApplePayTest.php code duplication\r\n\r\n* #36: Unit tests: Reduce BrandsManagerTest.php code duplication\r\n\r\n* #36: Unit tests: Reduce PaymentMethodsTest.php code duplication\r\n\r\n* #36: Unit tests: Reduce StoredCardsTest.php code duplication\r\n\r\n* #36: Unit t\n[…]\n36: Unit tests: Reduce code duplication\r\n\r\n* #36: Unit tests: Reduce code duplication\r\n\r\n* #36: Unit tests: Remove non needed vars\r\n\r\n---------\r\n\r\nCo-authored-by: Khushboo <khushboo.singhvi@adyen.com>",
          "is_bot": false,
          "headline": "#36: Unit tests (#39)",
          "author_name": "Marjan Petkovski",
          "author_login": "pmarjan-onestic",
          "committed_at": "2024-05-21T14:41:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d94c3346c4fc50ae324c61b6878a1a0ba31001c9",
          "body": "* [ECP-9161] Provide frontendType tracking data on Hyva module\r\n\r\n* Update Magewire/Payment/Method/AdyenPaymentComponent.php\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <ecandemiralp@gmail.com>",
          "is_bot": false,
          "headline": "[ECP-9161] Provide frontendType tracking data on Hyva module (#38)",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-05-21T07:26:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "584fd49ae0ae1fab1a8be1ca59b7d1a1f69643f5",
          "body": "[ECP-9167] Bump the version of module-payment",
          "is_bot": false,
          "headline": "Merge pull request #37 from Adyen/ECP-9167",
          "author_name": "Khushboo",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-05-15T09:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84e80a9da42cd1d8c28b75f6349fba8c1de9f694",
          "body": null,
          "is_bot": false,
          "headline": "[ECP-9167] Bump the version of module-payment",
          "author_name": "khushboos",
          "author_login": "khushboo-singhvi",
          "committed_at": "2024-05-15T08:14:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e229c8cbc4d3fd21377f7eb38b8fd6ef0994569e",
          "body": "* [ECP-8952] Implement Klarna Pay Later\r\n\r\n* [ECP-8952] Convert wallet related functions into alternative payment methods\r\n\r\n---------\r\n\r\nCo-authored-by: Can Demiralp <can.demiralp@adyen.com>",
          "is_bot": false,
          "headline": "[ECP-8952] Implement Klarna Pay Later payment method (#34)",
          "author_name": "Can Demiralp",
          "author_login": "candemiralp",
          "committed_at": "2024-04-30T07:12:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b4fccbb97e0fb150f0880a285fca5b44ef9bab8",
          "body": null,
          "is_bot": false,
          "headline": "#7: Show thank you message after successful donation",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-04-08T15:04:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21c871053c3775ffd56026a8f6d7cd659b9e27e9",
          "body": "#28: Switch address for customer\n#29: Switch address for guest",
          "is_bot": false,
          "headline": "#33: Use explicit component unmount",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-04-03T18:43:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2cfda29bcdcded06d8abf5c3bbd0d5564f1cb37",
          "body": null,
          "is_bot": false,
          "headline": "#32: Revert Address Switch related coding coming from #28 and #29",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-30T12:13:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "839db133a430c7fd9bd7f80a0cf347bf9452d6f4",
          "body": "…ndency",
          "is_bot": false,
          "headline": "#10: Update of TECHNICAL.md: section that explains Adyen_Payment depe…",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-29T11:02:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef68ce7e43624d99147ae9192f1b01232722dcbc",
          "body": null,
          "is_bot": false,
          "headline": "#10: Update of TECHNICAL.md",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-29T10:36:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe681a1c783549bb13f30a55986938ea26c2f07b",
          "body": null,
          "is_bot": false,
          "headline": "#9: Get the CC title from Confgiuration provider",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-29T10:09:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5930b7532e41f2478a8e017853d9478cd5bcdd15",
          "body": null,
          "is_bot": false,
          "headline": "#19: Card state data is no longer needed for the success giving page",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-29T09:55:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c50000409abdfa783a34de505a4685389db40b06",
          "body": null,
          "is_bot": false,
          "headline": "#7: Use hyva hook for success page",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-24T16:44:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b362ae69cd667efd21f9fcefc3f18d4f39573196",
          "body": null,
          "is_bot": false,
          "headline": "#28: Update method list when switching addresses as a customer",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-24T10:41:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f139f8c563af2720f07b4655c085f7038fc7e85",
          "body": null,
          "is_bot": false,
          "headline": "#31: Refresh card brands when switching addresses for customer",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-24T09:47:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "077d122702c7fb39914c6f8a9e82d76a088c2579",
          "body": null,
          "is_bot": false,
          "headline": "#31: Refresh card brands when reloading the component",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-21T16:44:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32d33c04b89900cce01d499908e1b55954bff730",
          "body": null,
          "is_bot": false,
          "headline": "#29: Dispatch custom event upon html flush for payment method",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-21T10:02:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a660e311316d5fa454f417adb2305a065f1d4f2",
          "body": null,
          "is_bot": false,
          "headline": "Edits around userIsGuest question",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-18T13:11:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa625572b3e8ce106f03af3d17f457390471c96a",
          "body": null,
          "is_bot": false,
          "headline": "Checkout resolver: switch to after plugin",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-17T11:42:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bb3f8aed6dcd41d848e7e2c8a01156ccf2510ba7",
          "body": null,
          "is_bot": false,
          "headline": "#26: Re-use Payment Methods data",
          "author_name": "Marjan",
          "author_login": "pmarjan-onestic-2",
          "committed_at": "2024-03-17T11:25:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 8,
      "commits_last_year": 5,
      "latest_release_at": "2025-07-11T12:01:07Z",
      "latest_release_tag": "1.3.0",
      "releases_from_tags": false,
      "days_since_last_push": 303,
      "active_weeks_last_year": 3,
      "days_since_latest_release": 380,
      "mean_days_between_releases": 59.3
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": false,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "adyen/module-hyva-checkout",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "packagist",
          "matches_repo": true,
          "registry_url": "https://packagist.org/packages/adyen/module-hyva-checkout",
          "is_deprecated": false,
          "latest_version": "1.3.0",
          "repository_url": "https://github.com/adyen-examples/adyen-magento2-hyva",
          "versions_count": 8,
          "total_downloads": 70665,
          "dependents_count": 0,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 2705,
          "first_published_at": null,
          "latest_published_at": "2025-07-11T11:57:21Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 380
        }
      ]
    },
    "popularity": {
      "forks": 19,
      "stars": 10,
      "watchers": 3,
      "fork_history": {
        "days": [
          {
            "date": "2024-09-27",
            "count": 1
          },
          {
            "date": "2024-09-30",
            "count": 1
          },
          {
            "date": "2024-10-23",
            "count": 1
          },
          {
            "date": "2024-11-11",
            "count": 1
          },
          {
            "date": "2024-12-06",
            "count": 1
          },
          {
            "date": "2024-12-16",
            "count": 3
          },
          {
            "date": "2025-01-18",
            "count": 1
          },
          {
            "date": "2025-04-04",
            "count": 1
          },
          {
            "date": "2025-05-07",
            "count": 1
          },
          {
            "date": "2025-06-28",
            "count": 1
          },
          {
            "date": "2025-07-29",
            "count": 1
          },
          {
            "date": "2025-08-08",
            "count": 1
          },
          {
            "date": "2025-08-14",
            "count": 1
          },
          {
            "date": "2025-08-17",
            "count": 1
          },
          {
            "date": "2025-09-10",
            "count": 1
          },
          {
            "date": "2025-10-28",
            "count": 1
          },
          {
            "date": "2025-11-17",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 19,
        "total_forks": 19
      },
      "star_history": null,
      "open_issues_and_prs": 25
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        ".github/Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 14557,
      "source_files_sampled": 64,
      "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": 7,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "packagist"
      ],
      "dependencies": [
        {
          "name": "adyen/module-payment",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^9.13.0"
        },
        {
          "name": "hyva-themes/magento2-default-theme",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.3"
        },
        {
          "name": "hyva-themes/magento2-hyva-checkout",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.3"
        },
        {
          "name": "hyva-themes/magento2-theme-module",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.3.11"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "adyen/module-payment",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "hyva-themes/magento2-default-theme",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "hyva-themes/magento2-hyva-checkout",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "hyva-themes/magento2-theme-module",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "magento/magento-coding-standard",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "squizlabs/php_codesniffer",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 7,
        "direct_count": 4,
        "indirect_count": 3
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 5,
        "merged_prs": 56,
        "open_issues": 20,
        "closed_ratio": 0.706,
        "closed_issues": 48,
        "closed_unmerged_prs": 12
      },
      "bus_factor": 2,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "pmarjan-onestic-2",
          "commits": 34,
          "avatar_url": "https://avatars.githubusercontent.com/u/271287358?v=4"
        },
        {
          "type": "User",
          "login": "candemiralp",
          "commits": 30,
          "avatar_url": "https://avatars.githubusercontent.com/u/20255503?v=4"
        },
        {
          "type": "User",
          "login": "khushboo-singhvi",
          "commits": 25,
          "avatar_url": "https://avatars.githubusercontent.com/u/7098889?v=4"
        },
        {
          "type": "User",
          "login": "ayodejidev",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/63319309?v=4"
        },
        {
          "type": "User",
          "login": "JustinElst",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/249633?v=4"
        },
        {
          "type": "User",
          "login": "pmarjan-onestic",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/72909665?v=4"
        },
        {
          "type": "User",
          "login": "dungptit1410",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/44837418?v=4"
        },
        {
          "type": "User",
          "login": "elhanarinc",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/7025275?v=4"
        },
        {
          "type": "User",
          "login": "fzemmel",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/11528935?v=4"
        },
        {
          "type": "User",
          "login": "JeroenBoersma",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/1163348?v=4"
        }
      ],
      "contributors_sampled": 16,
      "top_contributor_share": 0.304
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "e2e-test.yml",
        "main.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        "phpcs.xml"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 3,
            "reason": "6 out of 20 merged PRs checked by a CI test -- score normalized to 3",
            "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": 8,
            "reason": "Found 12/14 approved changesets -- score normalized to 8",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 0,
            "reason": "dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 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": 3,
            "reason": "SAST tool is not run on all commits -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file 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": 9,
            "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": "b73c960d638d4c8910c611e33c382c7320f1b968",
        "ran_at": "2026-07-26T14:55:26Z",
        "aggregate_score": 5.4,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-06-14T07:33:04Z",
      "oldest_open_prs": [
        {
          "number": 125,
          "created_at": "2025-07-11T17:29:52Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 127,
          "created_at": "2025-07-29T05:48:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 128,
          "created_at": "2025-07-29T06:04:05Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 135,
          "created_at": "2025-09-26T07:28:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 137,
          "created_at": "2025-09-26T13:04:43Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2025-08-26T07:38:44Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 51,
          "created_at": "2024-09-11T08:41:46Z",
          "last_comment_at": "2025-12-10T10:06:13Z",
          "last_comment_author": "sebfie"
        },
        {
          "number": 52,
          "created_at": "2024-09-22T12:01:50Z",
          "last_comment_at": "2025-04-07T03:21:34Z",
          "last_comment_author": "GamesmenJordan"
        },
        {
          "number": 53,
          "created_at": "2024-09-24T14:38:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 60,
          "created_at": "2024-10-02T12:46:40Z",
          "last_comment_at": "2024-10-08T07:31:12Z",
          "last_comment_author": "RokPopov"
        },
        {
          "number": 74,
          "created_at": "2024-11-14T07:56:39Z",
          "last_comment_at": "2025-10-02T14:19:16Z",
          "last_comment_author": "coffejhon"
        },
        {
          "number": 83,
          "created_at": "2024-12-10T14:55:55Z",
          "last_comment_at": "2025-01-02T10:36:49Z",
          "last_comment_author": "khushboo-singhvi"
        },
        {
          "number": 86,
          "created_at": "2024-12-13T07:28:42Z",
          "last_comment_at": "2024-12-13T10:14:49Z",
          "last_comment_author": "khushboo-singhvi"
        },
        {
          "number": 98,
          "created_at": "2025-01-28T08:03:45Z",
          "last_comment_at": "2025-02-04T12:45:56Z",
          "last_comment_author": "khushboo-singhvi"
        },
        {
          "number": 104,
          "created_at": "2025-02-19T15:48:18Z",
          "last_comment_at": "2025-03-10T08:29:41Z",
          "last_comment_author": "olga-adyen"
        },
        {
          "number": 108,
          "created_at": "2025-03-13T15:00:46Z",
          "last_comment_at": "2025-05-01T07:37:56Z",
          "last_comment_author": "candemiralp"
        },
        {
          "number": 120,
          "created_at": "2025-06-20T10:34:14Z",
          "last_comment_at": "2025-06-25T07:10:49Z",
          "last_comment_author": "jeroenalewijns"
        },
        {
          "number": 121,
          "created_at": "2025-06-30T15:46:10Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 126,
          "created_at": "2025-07-22T13:47:16Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 130,
          "created_at": "2025-08-18T12:52:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 131,
          "created_at": "2025-08-21T13:36:39Z",
          "last_comment_at": "2025-10-03T12:37:22Z",
          "last_comment_author": "Nuranto"
        },
        {
          "number": 134,
          "created_at": "2025-09-26T07:20:49Z",
          "last_comment_at": "2025-09-26T07:29:49Z",
          "last_comment_author": "dungptit1410"
        },
        {
          "number": 136,
          "created_at": "2025-09-26T10:46:32Z",
          "last_comment_at": "2025-09-26T10:52:00Z",
          "last_comment_author": "modryk"
        },
        {
          "number": 139,
          "created_at": "2025-11-27T14:59:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 140,
          "created_at": "2025-12-05T00:08:45Z",
          "last_comment_at": "2026-03-11T16:25:51Z",
          "last_comment_author": "speedupmate"
        },
        {
          "number": 143,
          "created_at": "2026-04-09T16:10:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/adyen-examples/adyen-magento2-hyva",
    "host": "github.com",
    "name": "adyen-magento2-hyva",
    "owner": "adyen-examples"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": "Abandonment Policy applies a 85% multiplier to weighted overall health.",
      "notes": [
        {
          "code": "abandonment_overall_adjustment",
          "params": {
            "cap": 0,
            "pct": 85
          }
        }
      ],
      "value": 45,
      "inputs": {
        "security": 54,
        "vitality": 32,
        "community": 52,
        "governance": 69,
        "engineering": 58,
        "abandonment_cap": null,
        "abandonment_state": "at_risk",
        "abandonment_multiplier": 85,
        "weighted_overall_before_abandonment": 53,
        "overall_after_abandonment_multiplier": 45
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "at_risk",
        "name": "Vitality",
        "value": 32,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "critical",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 13,
            "inputs": {
              "commits_last_year": 5,
              "human_commit_share": 0.91,
              "days_since_last_push": 303,
              "active_weeks_last_year": 3
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 303 days ago",
                "points": 3.6,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 303
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "3/52 weeks with commits",
                "points": 2.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "5 commits in the last year",
                "points": 7,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "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": 60,
            "inputs": {
              "releases_count": 8,
              "latest_release_tag": "1.3.0",
              "releases_from_tags": false,
              "days_since_latest_release": 380,
              "mean_days_between_releases": 59.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "8 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 380 days ago",
                "points": 7.2,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 380
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~59.3 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 59.3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "cap": null,
              "state": "at_risk",
              "guards": [],
              "signals": [
                "issue_rot",
                "release_stall",
                "scorecard_unmaintained"
              ],
              "red_flag": true,
              "multiplier_pct": 85,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": 5,
              "unanswered_open_issues": 9,
              "days_since_last_merged_pr": 334,
              "days_since_last_human_commit": 334,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "no human commit for 334 days; 3 unmet obligation(s): issues unanswered, releases stalled, Scorecard reports it unmaintained",
                "points": 85,
                "status": "partial",
                "details": [
                  {
                    "code": "abandonment_flagged",
                    "params": {
                      "days": 334,
                      "count": 3,
                      "signals": "issues unanswered, releases stalled, Scorecard reports it unmaintained"
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 52,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 28,
            "inputs": {
              "forks": 19,
              "stars": 10,
              "watchers": 3,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "10 stars",
                "points": 15.5,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "19 forks",
                "points": 10.5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "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": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "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": "at_risk",
            "name": "Ecosystem adoption (downloads)",
            "note": null,
            "notes": [],
            "value": 46,
            "inputs": {
              "packages": [
                "adyen/module-hyva-checkout"
              ],
              "dependents": 0,
              "ecosystems": "packagist",
              "total_downloads": 70665,
              "monthly_downloads": 2705
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "2,705 downloads/month across packagist",
                "points": 45.8,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 2705,
                      "ecosystems": "packagist"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "0 packages depend on it",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "registry_dependents",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "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": 69,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 16,
              "top_contributor_share": 0.304
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 30% of commits",
                "points": 15.7,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 30
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "16 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 16
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "merged_prs": 56,
              "open_issues": 20,
              "closed_issues": 48,
              "issue_closed_ratio": 0.706,
              "closed_unmerged_prs": 12
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "71% of issues closed",
                "points": 33,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 71
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "56/68 decided PRs merged",
                "points": 31.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 56,
                      "decided": 68
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 12/14 approved changesets -- score normalized to 8",
                "points": 12,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "followers": 204,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "adyen-examples",
              "public_repos": 34,
              "account_age_days": 2502
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "204 followers of adyen-examples",
                "points": 16.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 204,
                      "login": "adyen-examples"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "34 public repos, account ~6 yr old",
                "points": 23.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 34
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 6
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "good",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 79,
            "inputs": {
              "packages": [
                "adyen/module-hyva-checkout"
              ],
              "ecosystems": "packagist",
              "any_deprecated": false,
              "min_days_since_publish": 380
            },
            "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 380 days ago",
                "points": 14,
                "status": "partial",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 380
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "8 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "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": 58,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": "phpcs.xml",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "phpcs.xml"
                    }
                  }
                ],
                "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": "6 out of 20 merged PRs checked by a CI test -- score normalized to 3",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "at_risk",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": false
            },
            "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 54,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 54,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 5.4
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "6 out of 20 merged PRs checked by a CI test -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 12/14 approved changesets -- score normalized to 8",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "dangerous workflow patterns detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "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 3",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "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": 6.8,
                "status": "partial",
                "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": 6
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 55,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 35,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.659,
              "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": "60 of 91 human commits state their intent (structured subject or explanatory body)",
                "points": 35.2,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 60,
                      "sampled": 91
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 69,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                ".github/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.09
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": ".github/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".github/Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": "phpcs.xml",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "phpcs.xml"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "9 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 9,
                      "sampled": 100
                    }
                  }
                ],
                "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": 14557,
              "source_files_sampled": 64,
              "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/64 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 64,
                      "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-26T14:55:48.410085Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/adyen-examples/adyen-magento2-hyva.svg",
  "full_name": "adyen-examples/adyen-magento2-hyva",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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