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

hydraulic-software / conveyor

Gradle plugin, user guide and discussion forums for Conveyor

Kotlin · JavaScript · HTMLApache-2.0★ 175 зірок⑂ 16 форківз лют. 2022 р.Переглянути на GitHub ↗
ТипБібліотекаяк це визначено

hydraulic-software/conveyor має індекс здоров’я 41 зі 100, що відповідає смузі «Слабкий». Найвищий показник — Sustainability & Governance (57/100), найнижчий — Security (32/100). Останнє оновлення було 8 днів тому. Більшість нещодавньої роботи виконує один учасник.

41
загалом / 100
Слабкий

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

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

41
Винятковий93-100Верхній щабель реєстру (≈ топ-5%); відповідає практично всім перевіреним критеріям
Відмінний80-92Сильний за всіма напрямами; незначні прогалини
Добрий65-79Здоровий; прогалини обмежені та керовані
Помірний50-64Прийнятний, але з помітними прогалинами; рекомендовано перевірку
Слабкий35-49Суттєві недоліки в кількох сферах
У зоні ризику20-34Суттєві слабкі місця; впровадження потребує обережності
Критичний1-19Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

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

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

Зважений загальний бал 44 калібровано до 41 за шкалою опублікованого індексу (калібрування реєстру 2026-08-02).

Власність

HydraulicОрганізація
34 підписники16 публічних репозиторіївз трав. 2021 р.

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

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

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
npm@hydraulic/override-zip22.1.0264208 днів томуpackagingdeploymentelectronmacoswindowsdesktopsquirrel
npm@hydraulic/conveyor-control1.3.03 5204597 днів томуpackagingdeploymentelectronmacoswindowsdesktopconveyor
npm@hydraulic/migrate-to-conveyor22.1.01 523198 днів томуpackagingdeploymentelectronmacoswindowsdesktopsquirrel

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

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

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

33У зоні ризику · 21% загального індексу
Як обчислюється оцінка
28.8/36Свіжість push — останній push 8 дн. тому
9.7/36Ритм комітів — 14/52 тижнів із комітами
12.6/18Обсяг комітів — 24 комітів за останній рік
4/10OpenSSF Scorecard: Maintained — 3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4
Використані вхідні дані
commits_last_year24
human_commit_share1
days_since_last_push8
active_weeks_last_year14
Як обчислюється оцінка
0/27Випускає релізи — релізів не опубліковано
0/36Свіжість релізів — релізів немає
0/27Ритм релізів — релізів немає
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count0
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

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

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

52Помірний · 17% загального індексу
Як обчислюється оцінка
36.3/60Зірки — 175 зірок
9.8/25Форки — 16 форків
1.7/15Спостерігачі — 3 спостерігачів
Використані вхідні дані
forks16
stars175
watchers3
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (Apache-2.0)
0/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
readme_badges
has_contributingні
has_issue_templateні
has_code_of_conductні
readme_badge_services
has_pull_request_templateні
Як обчислюється оцінка
49.7/80Щомісячні завантаження — 5 307 завантажень/місяць у npm
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packages@hydraulic/override-zip, @hydraulic/conveyor-control, @hydraulic/migrate-to-conveyor
dependents
ecosystemsnpm
total_downloads
monthly_downloads5 307
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

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

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

57Помірний · 23% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
3.2/22.5Розподіл комітів — головний контриб’ютор — автор 86% комітів
9.5/13.5Широта контриб’юторів — 7 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Використані вхідні дані
bus_factor1
contributors_sampled7
top_contributor_share0,86
Як обчислюється оцінка
30.3/42Вирішення issue — закрито 72% issue
13.3/30Прийняття PR — злито 4/9 вирішених PR
0/13Newcomer PR acceptance — за 30 дн. не вирішено жодного PR від новачка
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs4
open_issues25
closed_issues65
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio0,722
closed_unmerged_prs5
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
Виключено з оцінювання (немає даних або не застосовно): newcomer_pr_acceptance. Залишкові ваги перенормовано.
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
11.1/25Охоплення власника — 34 підписників у hydraulic-software
19.4/25Послужний список — 16 публічних репозиторіїв, вік облікового запису ~5 р.
Використані вхідні дані
followers34
owner_typeOrganization
is_verified
owner_loginhydraulic-software
public_repos16
account_age_days1 905

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

100Винятковий
Як обчислюється оцінка
25/25Опубліковано й доступно — 3 пакет(ів) у npm
35/35Свіжість публікацій — остання публікація 8 дн. тому
20/20Історія версій — 20 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packages@hydraulic/override-zip, @hydraulic/conveyor-control, @hydraulic/migrate-to-conveyor
ecosystemsnpm
any_deprecatedні
min_days_since_publish8

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

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

40Слабкий · 19% загального індексу

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

30У зоні ризику
Як обчислюється оцінка
0/24Процеси CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — немає даних
Використані вхідні дані
has_ciні
has_testsтак
has_editorconfigні
has_linter_configні
has_precommit_configні
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: CI-Tests. Залишкові ваги перенормовано.

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

55Помірний
Як обчислюється оцінка
30/30README
0/25Каталог документації
15/15Сайт документації / домашня сторінка — https://conveyor.hydraulic.dev
10/10Опис репозиторію
0/10Теми
0/10Wiki
Використані вхідні дані
topics
has_wikiні
homepagehttps://conveyor.hydraulic.dev
has_readmeтак
has_docs_dirні
has_descriptionтак

Безпека

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

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

Стан безпеки

22У зоні ризику
Як обчислюється оцінка
6.8/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — немає даних
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 4 contributing companies or organizations
0/10Dangerous-Workflow — немає даних
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
3/7.5Maintained — 3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4
0/5Packaging — немає даних
0/5Pinned-Dependencies — немає даних
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — немає даних
0/7.5Vulnerabilities — 59 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated12
scorecard_versionv5.5.0
checks_inconclusive6
scorecard_aggregate2,2
Виключено з оцінювання (немає даних або не застосовно): ci_tests, dangerous_workflow, packaging, pinned_dependencies, signed_releases, token_permissions. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
6.2/25Непрямі залежності без відомих сповіщень — уражено 2: brace-expansion 1.1.16 (high 7.5), tar 6.2.1 (high 8.8)
32.8/40Немає задавнених сповіщень — 1 пакет(ів) зі сповіщеннями без реакції понад 90 дн.; найдавніше опубліковано 194 дн. тому
Використані вхідні дані
sourceosv
advisories13
affected_packages2
assessed_packages227
unassessed_packages0
affected_by_severityhigh 2
direct_affected_packages0
Звірено з runtime-замиканням залежностей npm:@hydraulic/override-zip@22.1.0 — тим, що тягне за собою встановлення опублікованого пакета, — 227 пакетів. Досяжність не аналізується.

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

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Має свідомо малу вагу (4%): агентний інструментарій — реальний сигнал супроводу, але репозиторій без нього все одно може отримати 100/100.

49Слабкий · 4% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
4.3/40Читабельна історія комітів — намір зазначено у 8 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,08
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
12.6/18Розгортання однією командою — build.gradle.kts, gradle-plugin/build.gradle.kts (домовленість інструментарію, без раннера задач)
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
11/11Статична перевірка типів — Kotlin (статично типізована)
10/10Відтворюване середовище — lockfile
2/10Підтверджена практика роботи з агентами — 1 з останніх 100 комітів створено агентом або з його зазначенням
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
0/10OpenSSF Scorecard: Pinned-Dependencies — немає даних
Використані вхідні дані
has_nixні
has_testsтак
lockfilesPipfile.lock, package-lock.json
has_dockerfileні
typed_languageтак
bootstrap_files
has_devcontainerні
has_linter_configні
typecheck_configs
agent_commit_share0,01
toolchain_manifestsbuild.gradle.kts, gradle-plugin/build.gradle.kts
dependency_bot_commit_share0
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Pinned-Dependencies. Залишкові ваги перенормовано.
Як обчислюється оцінка
45/45Типізований код — Kotlin (статично типізована)
55/55Керовані розміри файлів — 0/10 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageKotlin
largest_source_bytes18 444
source_files_sampled10
oversized_source_files0

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

175зірок GitHub
7контриб'юторів
24комітів за останні 12 місяців
8днів від останнього пушу
0релізів
1бас-фактор
25відкритих issue
Maven, PyPIпакетних екосистем

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

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Докладніше

Історія зірок і форків 0 ★ / 16 ⇿
0Зірки
16Форки

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

04812161612022-072024-062026-04

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

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

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

9Binary-Artifactsbinaries present in source code
0Branch-Protectionbranch protection not enabled on development/release branches
н/дCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 4 contributing companies or organizations
н/дDangerous-Workflowno workflows found
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
4Maintained3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4
н/дPackagingpackaging workflow not detected
н/дPinned-Dependenciesno dependencies found
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
н/дSigned-Releasesno releases found
н/дToken-PermissionsNo tokens found
0Vulnerabilities59 existing vulnerabilities detected
Прямі залежності 5
РеєстрПакетОбмеження версіїМаніфест
npmkoffi^2.5.8electron/conveyor-control/package.json
npmdebug^4.3.4electron/migrate-to-conveyor/package.json
npmelectron-is-dev^2.0.0electron/migrate-to-conveyor/package.json
npmelectron-squirrel-startup^1.0.0electron/migrate-to-conveyor/package.json
npm@electron-forge/plugin-base^6.4.2electron/override-zip/package.json
Усі залежності 335

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

РеєстрПакетВерсіяЗв'язок
npm@electron-forge/plugin-base6.4.2пряма
npmdebug2.6.9пряма
npmdebug4.3.4пряма
npmelectron-is-dev2.0.0пряма
npmelectron-squirrel-startup1.0.0пряма
npmkoffi^2.5.8пряма
npm@electron-forge/shared-types6.4.2непряма
npm@electron/asar3.2.7непряма
npm@electron/get2.0.3непряма
npm@electron/notarize1.2.4непряма
npm@electron/osx-sign1.0.5непряма
npm@electron/rebuild3.3.0непряма
npm@electron/universal1.4.2непряма
npm@isaacs/cliui8.0.2непряма
npm@malept/cross-spawn-promise1.1.1непряма
npm@malept/cross-spawn-promise2.0.0непряма
npm@npmcli/fs3.1.0непряма
npm@pkgjs/parseargs0.11.0непряма
npm@sindresorhus/is4.6.0непряма
npm@szmarczak/http-timer4.0.6непряма
npm@tootallnate/once2.0.0непряма
npm@types/cacheable-request6.0.3непряма
npm@types/http-cache-semantics4.0.2непряма
npm@types/keyv3.1.4непряма
npm@types/node20.8.6непряма
npm@types/responselike1.0.1непряма
npm@types/yauzl2.10.1непряма
npm@xmldom/xmldom0.8.10непряма
npmabbrev1.1.1непряма
npmagent-base6.0.2непряма
npmagentkeepalive4.5.0непряма
npmaggregate-error3.1.0непряма
npmansi-escapes4.3.2непряма
npmansi-regex5.0.1непряма
npmansi-regex6.0.1непряма
npmansi-styles4.3.0непряма
npmansi-styles6.2.1непряма
npmaproba2.0.0непряма
npmare-we-there-yet3.0.1непряма
npmastral-regex2.0.0непряма
npmat-least-node1.0.0непряма
npmauthor-regex1.0.0непряма
npmbalanced-match1.0.2непряма
npmbase64-js1.5.1непряма
npmbl4.1.0непряма
npmbluebird3.7.2непряма
npmboolean3.2.0непряма
npmbrace-expansion1.1.11непряма
npmbrace-expansion2.0.1непряма
npmbuffer5.7.1непряма
npmbuffer-crc320.2.13непряма
npmbuffer-equal1.0.1непряма
npmcacache17.1.4непряма
npmcacheable-lookup5.0.4непряма
npmcacheable-request7.0.4непряма
npmchalk4.1.2непряма
npmchownr2.0.0непряма
npmclean-stack2.2.0непряма
npmcli-cursor3.1.0непряма
npmcli-spinners2.9.1непряма
npmcli-truncate2.1.0непряма
npmcliui8.0.1непряма
npmclone1.0.4непряма
npmclone-response1.0.3непряма
npmcolor-convert2.0.1непряма
npmcolor-name1.1.4непряма
npmcolor-support1.1.3непряма
npmcolorette2.0.20непряма
npmcommander5.1.0непряма
npmcompare-version0.1.2непряма
npmconcat-map0.0.1непряма
npmconsole-control-strings1.1.0непряма
npmcross-spawn7.0.3непряма
npmcross-spawn-windows-exe1.2.0непряма
npmdecompress-response6.0.0непряма
npmdefaults1.0.4непряма
npmdefer-to-connect2.0.1непряма
npmdefine-data-property1.1.1непряма
npmdefine-properties1.2.1непряма
npmdelegates1.0.0непряма
npmdetect-libc2.0.2непряма
npmdetect-node2.1.0непряма
npmdir-compare3.3.0непряма
npmeastasianwidth0.2.0непряма
npmelectron-packager17.1.2непряма
npmemoji-regex8.0.0непряма
npmemoji-regex9.2.2непряма
npmencoding0.1.13непряма
npmend-of-stream1.4.4непряма
npmenv-paths2.2.1непряма
npmerr-code2.0.3непряма
npmerror-ex1.3.2непряма
npmes6-error4.1.1непряма
npmescalade3.1.1непряма
npmescape-string-regexp1.0.5непряма
npmescape-string-regexp4.0.0непряма
npmexponential-backoff3.1.1непряма
npmextract-zip2.0.1непряма
npmfd-slicer1.1.0непряма
npmfilename-reserved-regex2.0.0непряма
npmfilenamify4.3.0непряма
npmfind-up2.1.0непряма
npmflora-colossus2.0.0непряма
npmforeground-child3.1.1непряма
npmfs-extra10.1.0непряма
npmfs-extra11.1.1непряма
npmfs-extra8.1.0непряма
npmfs-extra9.1.0непряма
npmfs-minipass2.1.0непряма
npmfs-minipass3.0.3непряма
npmfs.realpath1.0.0непряма
npmfunction-bind1.1.2непряма
npmgalactus1.0.0непряма
npmgauge4.0.4непряма
npmget-caller-file2.0.5непряма
npmget-intrinsic1.2.1непряма
npmget-package-info1.0.0непряма
npmget-stream5.2.0непряма
npmglob10.3.10непряма
npmglob7.2.3непряма
npmglobal-agent3.0.0непряма
npmglobalthis1.0.3непряма
npmgopd1.0.1непряма
npmgot11.8.6непряма
npmgraceful-fs4.2.11непряма
npmhas1.0.4непряма
npmhas-flag4.0.0непряма
npmhas-property-descriptors1.0.0непряма
npmhas-proto1.0.1непряма
npmhas-symbols1.0.3непряма
npmhas-unicode2.0.1непряма
npmhosted-git-info2.8.9непряма
npmhttp-cache-semantics4.1.1непряма
npmhttp-proxy-agent5.0.0непряма
npmhttp2-wrapper1.0.3непряма
npmhttps-proxy-agent5.0.1непряма
npmhumanize-ms1.2.1непряма
npmiconv-lite0.6.3непряма
npmieee7541.2.1непряма
npmimurmurhash0.1.4непряма
npmindent-string4.0.0непряма
npminflight1.0.6непряма
npminherits2.0.4непряма
npmip2.0.0непряма
npmis-arrayish0.2.1непряма
npmis-core-module2.13.0непряма
npmis-docker2.2.1непряма
npmis-fullwidth-code-point3.0.0непряма
npmis-interactive1.0.0непряма
npmis-lambda1.0.1непряма
npmis-unicode-supported0.1.0непряма
npmis-wsl2.2.0непряма
npmisbinaryfile4.0.10непряма
npmisexe2.0.0непряма
npmjackspeak2.3.6непряма
npmjson-buffer3.0.1непряма
npmjson-stringify-safe5.0.1непряма
npmjsonfile4.0.0непряма
npmjsonfile6.1.0непряма
npmjunk3.1.0непряма
npmkeyv4.5.4непряма
npmlistr25.0.8непряма
npmload-json-file2.0.0непряма
npmlocate-path2.0.0непряма
npmlodash.get4.4.2непряма
npmlog-symbols4.1.0непряма
npmlog-update4.0.0непряма
npmlowercase-keys2.0.0непряма
npmlru-cache10.0.1непряма
npmlru-cache6.0.0непряма
npmlru-cache7.18.3непряма
npmmake-fetch-happen11.1.1непряма
npmmatcher3.0.0непряма
npmmimic-fn2.1.0непряма
npmmimic-response1.0.1непряма
npmmimic-response3.1.0непряма
npmminimatch3.1.2непряма
npmminimatch9.0.3непряма
npmminimist1.2.8непряма
npmminipass3.3.6непряма
npmminipass5.0.0непряма
npmminipass7.0.4непряма
npmminipass-collect1.0.2непряма
npmminipass-fetch3.0.4непряма
npmminipass-flush1.0.5непряма
npmminipass-pipeline1.2.4непряма
npmminipass-sized1.0.3непряма
npmminizlib2.1.2непряма
npmmkdirp1.0.4непряма
npmms2.0.0непряма
npmms2.1.2непряма
npmnegotiator0.6.3непряма
npmnode-abi3.51.0непряма
npmnode-api-version0.1.4непряма
npmnode-gyp9.4.0непряма
npmnopt6.0.0непряма
npmnormalize-package-data2.5.0непряма
npmnormalize-url6.1.0непряма
npmnpmlog6.0.2непряма
npmobject-keys1.1.1непряма
npmonce1.4.0непряма
npmonetime5.1.2непряма
npmora5.4.1непряма
npmp-cancelable2.1.1непряма
npmp-limit1.3.0непряма
npmp-locate2.0.0непряма
npmp-map4.0.0непряма
npmp-try1.0.0непряма
npmparse-author2.0.0непряма
npmparse-json2.2.0непряма
npmpath-exists3.0.0непряма
npmpath-is-absolute1.0.1непряма
npmpath-key3.1.1непряма
npmpath-parse1.0.7непряма
npmpath-scurry1.10.1непряма
npmpath-type2.0.0непряма
npmpend1.2.0непряма
npmpify2.3.0непряма
npmplist3.1.0непряма
npmprogress2.0.3непряма
npmpromise-retry2.0.1непряма
npmpump3.0.0непряма
npmquick-lru5.1.1непряма
npmrcedit3.1.0непряма
npmread-pkg2.0.0непряма
npmread-pkg-up2.0.0непряма
npmreadable-stream3.6.2непряма
npmrequire-directory2.1.1непряма
npmresolve1.22.8непряма
npmresolve-alpn1.2.1непряма
npmresponselike2.0.1непряма
npmrestore-cursor3.1.0непряма
npmretry0.12.0непряма
npmrfdc1.3.0непряма
npmrimraf3.0.2непряма
npmroarr2.15.4непряма
npmrxjs7.8.1непряма
npmsafe-buffer5.2.1непряма
npmsafer-buffer2.1.2непряма
npmsemver5.7.2непряма
npmsemver6.3.1непряма
npmsemver7.5.4непряма
npmsemver-compare1.0.0непряма
npmserialize-error7.0.1непряма
npmset-blocking2.0.0непряма
npmshebang-command2.0.0непряма
npmshebang-regex3.0.0непряма
npmsignal-exit3.0.7непряма
npmsignal-exit4.1.0непряма
npmslice-ansi3.0.0непряма
npmslice-ansi4.0.0непряма
npmsmart-buffer4.2.0непряма
npmsocks2.7.1непряма
npmsocks-proxy-agent7.0.0непряма
npmspdx-correct3.2.0непряма
npmspdx-exceptions2.3.0непряма
npmspdx-expression-parse3.0.1непряма
npmspdx-license-ids3.0.16непряма
npmsprintf-js1.1.3непряма
npmssri10.0.5непряма
npmstring-width4.2.3непряма
npmstring-width5.1.2непряма
npmstring_decoder1.3.0непряма
npmstrip-ansi6.0.1непряма
npmstrip-ansi7.1.0непряма
npmstrip-bom3.0.0непряма
npmstrip-outer1.0.1непряма
npmsumchecker3.0.1непряма
npmsupports-color7.2.0непряма
npmsupports-preserve-symlinks-flag1.0.0непряма
npmtar6.2.0непряма
npmthrough2.3.8непряма
npmtrim-repeated1.0.0непряма
npmtslib2.6.2непряма
npmtype-fest0.13.1непряма
npmtype-fest0.21.3непряма
npmundici-types5.25.3непряма
npmunique-filename3.0.0непряма
npmunique-slug4.0.0непряма
npmuniversalify0.1.2непряма
npmuniversalify2.0.0непряма
npmutil-deprecate1.0.2непряма
npmvalidate-npm-package-license3.0.4непряма
npmwcwidth1.0.1непряма
npmwhich2.0.2непряма
npmwide-align1.1.5непряма
npmwrap-ansi6.2.0непряма
npmwrap-ansi7.0.0непряма
npmwrap-ansi8.1.0непряма
npmwrappy1.0.2непряма
npmxmlbuilder15.1.1непряма
npmy18n5.0.8непряма
npmyallist4.0.0непряма
npmyargs17.7.2непряма
npmyargs-parser21.1.1непряма
npmyauzl2.10.0непряма
PyPIbabel2.17.0непряма
PyPIbackrefs5.9непряма
PyPIcairocffi1.7.1непряма
PyPIcairosvg2.8.2непряма
PyPIcertifi2025.6.15непряма
PyPIcffi1.17.1непряма
PyPIcharset-normalizer3.4.2непряма
PyPIclick8.2.1непряма
PyPIcolorama0.4.6непряма
PyPIcssselect20.8.0непряма
PyPIdefusedxml0.7.1непряма
PyPIghp-import2.1.0непряма
PyPIidna3.10непряма
PyPIjinja23.1.6непряма
PyPImarkdown3.8.2непряма
PyPImarkdown-include0.8.1непряма
PyPImarkupsafe3.0.2непряма
PyPImergedeep1.3.4непряма
PyPImkdocs1.6.1непряма
PyPImkdocs-get-deps0.2.0непряма
PyPImkdocs-material9.6.15непряма
PyPImkdocs-material-extensions1.3.1непряма
PyPIpackaging25.0непряма
PyPIpaginate0.5.7непряма
PyPIpathspec0.12.1непряма
PyPIpillow10.4.0непряма
PyPIplatformdirs4.3.8непряма
PyPIpycparser2.22непряма
PyPIpygments2.19.2непряма
PyPIpymdown-extensions10.16непряма
PyPIpython-dateutil2.9.0.post0непряма
PyPIpyyaml6.0.2непряма
PyPIpyyaml-env-tag1.1непряма
PyPIrequests2.32.4непряма
PyPIsix1.17.0непряма
PyPItinycss21.4.0непряма
PyPIurllib32.5.0непряма
PyPIwatchdog6.0.0непряма
PyPIwebencodings0.5.1непряма
Сповіщення про залежності 2

Встановлення npm:@hydraulic/override-zip@22.1.0 тягне 227 пакетів, прямих і транзитивних: 2 мають відомі сповіщення, з них 0 — прямі залежності.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
brace-expansion1.1.16непрямависока15.0.8
tar6.2.1непрямависока127.5.21

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 4893,
      "has_wiki": false,
      "homepage": "https://conveyor.hydraulic.dev",
      "languages": {
        "CSS": 953,
        "HTML": 6905,
        "Kotlin": 25334,
        "JavaScript": 13266
      },
      "pushed_at": "2026-07-21T17:59:44Z",
      "created_at": "2022-02-08T16:56:04Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-28T19:42:27Z",
      "description": "Gradle plugin, user guide and discussion forums for Conveyor",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "master",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Kotlin",
      "significant_languages": [
        "Kotlin",
        "JavaScript",
        "HTML"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Hydraulic",
      "type": "Organization",
      "login": "hydraulic-software",
      "company": null,
      "location": null,
      "followers": 34,
      "avatar_url": "https://avatars.githubusercontent.com/u/84073196?v=4",
      "created_at": "2021-05-12T09:40:44Z",
      "is_verified": null,
      "public_repos": 16,
      "account_age_days": 1905
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [],
      "recent_commits": [
        {
          "oid": "5011cc412f9c3a67d8f72f9ea5db5f34c4a68e36",
          "body": null,
          "is_bot": false,
          "headline": "Update GH Action version to 22.1",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-07-21T17:51:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1b0869b58046c5a57fe22462254409739dcb34f",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'master' into release/22",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-07-21T16:41:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eafcafcbda2965997240438f4ef3ea91e0c181e1",
          "body": null,
          "is_bot": false,
          "headline": "Update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-07-21T16:18:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e14488581d9ed58a7b1a92c21c60544ea351de7a",
          "body": null,
          "is_bot": false,
          "headline": "Update NPM packages version to 22.0",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-03-21T17:16:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e90ce7c2a4356c99d68c63f41e4bc497da279c8",
          "body": null,
          "is_bot": false,
          "headline": "Update GH Action version to 22.0",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-03-21T17:09:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a473471b3cf1912bff115c1c87218c70ac82ad1e",
          "body": null,
          "is_bot": false,
          "headline": "Set version to 21.100.1 and update release notes for 22",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-03-21T13:48:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a94ba30d44ac47497021979a1686b135dbeaf42",
          "body": "A major version bump is required because this version takes away some properties that are likely to be rarely used.\n\nThis version:\n\n - Fixes a regression introduced by the new approach needed in Gradle 9.\n - Marks the plugin as incompatible with the configuration cache.\n - Ensures dependency configurations aren't resolved at configuration time.",
          "is_bot": false,
          "headline": "Gradle plugin: v2.0",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-03-01T19:34:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7953de8c0705884a21461fccc9233f25f57de99",
          "body": "The 1.13 Gradle 9 compatibility fix replaced extendsFrom() with a\nmanual file-set union when combining the common classpath with each\nmachine-specific configuration. This bypassed Gradle's dependency\nconflict resolution, causing multiple versions of the same library\n(e.g. kotlin-stdlib, kotlinx-coro\n[…]\need on versions.\n\nFix by resolving common and machine-specific dependencies together in\na single detachedConfiguration(), restoring the unified resolution\ngraph that extendsFrom() previously provided.",
          "is_bot": false,
          "headline": "gradle-plugin: fix duplicate JAR versions in packaged builds",
          "author_name": "Sean Proctor",
          "author_login": "sproctor",
          "committed_at": "2026-02-24T15:27:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2ac3ac7e9b1e42a28135f30606f875232470a1fd",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: make the list of allowed jvm options configurable.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-01-27T15:16:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37dae4da9e1d6eebe9eb82f26bbf9d94569dcaa0",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: bump Gradle plugin version to v1.13",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-01-20T15:27:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "303d21ee6f4521fd7a8b36e69d5c0d09f2c71a66",
          "body": null,
          "is_bot": false,
          "headline": "Gradle plugin: v1.13: support Gradle 9",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-01-20T15:27:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "683fe69fdf903518bb6cbd89291d082a8fb3e041",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update release notes for 21.1",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2026-01-16T19:26:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8c0249db123c22fd4319de42cc58ad4e54f2175",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: improved Maven command suggestion, courtesy of Wim Deblauwe",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-12-02T11:26:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11aae462fc6ad90e6c2082d27e6e6bf46f7931ca",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: add level 21 to the compatibility-levels.md doc.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-11-18T11:33:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "35d09a19db7d104de7d7f0dd267d477c745e9276",
          "body": null,
          "is_bot": false,
          "headline": "Update release notes for Conveyor 21",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-11-14T15:35:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5846b5c35d7dbe3da5aa2daef520fdeb96b0d4aa",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: upgrade to Sparkle 2.8.0",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-10-14T17:08:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4fc719cdae944c10c03176495f1d5b4484b7acb",
          "body": null,
          "is_bot": false,
          "headline": "Gudiebook: fix a 404 as the Sparkle homepage changed",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-10-14T15:54:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43f8651355c751d2526dcb600084fd1fc9b68985",
          "body": "…y from the right place.",
          "is_bot": false,
          "headline": "Conveyor: add another JNA property to encourage it to load the librar…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-10-14T15:54:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cea939a9d8796f49ff9cf10b92cf244c2909be64",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: infer MSIX caps for elevation and uiAccess from EXE manifests.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-10-07T14:55:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3abf1d16f82c254cded6b155bd5dc519e08bf94e",
          "body": "^CO-682 State Fixed",
          "is_bot": false,
          "headline": "Conveyor: add support for elevation to the installer.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-09-30T18:22:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3bbec29240b501474d68a2a3c80fcdb4b2cb47f",
          "body": null,
          "is_bot": false,
          "headline": "Refresh release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-09-19T18:44:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "359a5d1bef5993dae2635ec2319da9d30ac15df4",
          "body": null,
          "is_bot": false,
          "headline": "Update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-09-13T20:17:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87590f062039984166145b13c97b8aedb9195d04",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: implement a new aggressive-if-possible mode for Windows.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-08-09T19:57:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "515a8e1f7880e37dd1ca193e9a423bf19abecc29",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: implement a new aggressive-if-possible mode for macOS.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-08-09T13:44:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf1fdf6a2a897d79f7b0b1aeff985e80cbf64248",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update compatibility-levels.md",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-07-29T14:44:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61896d27c6bf16a28dea6d4e44032418cb3a1a73",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-07-22T13:19:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc89eeb43d13f98f5eb06c68d701a3582c128c88",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: allow packages to support >1 debian distribution.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-07-15T17:15:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "831d9973f14a07aaf8ebd120a36ff3e621611691",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: fix broken links.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-07-08T10:14:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9086edb4aa90c4aac6bb3c9cb023ea8fd6829a1",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: bump mkdocs-material version and update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-07-08T09:54:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b03aa8496ca685a992153ee42684e541201af34a",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: move ATS section up.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-07-08T09:54:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8559b07b5274381ff41144b8fdd53f5952150175",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: fix a mistake in the description of what && does",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-06-28T14:24:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a2f5c2749feeadf3c6ffe382e01b4b466aa24ba",
          "body": "…ons.\n\n^CO-672 State Fixed",
          "is_bot": false,
          "headline": "Conveyor: make API triggered updates on macOS skip all user interacti…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-06-24T17:23:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df788982bc53064a585c6505098e161786105fdf",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: fix name of the Sparkle input definition object.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-06-24T17:23:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad88d89dd820f44b6dfae9d265f6d72eaaaff5b8",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: generate access token using the az CLI tool.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-05-27T10:14:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4bf0eac3739afd49cd985a044ea02244e01114b",
          "body": "Add comprehensive documentation for Azure Trusted Signing to the user guide in the cloud remote signing section. The documentation includes:\n\n- Configuration syntax and examples\n- Setup requirements (Azure account, certificate profile, API token)\n- Azure CLI token acquisition instructions\n- Alias fo\n[…]\n users with clear step-by-step instructions for configuring Azure Trusted Signing with Conveyor.\n\n🤖 Generated with [Claude Code](https://claude.ai/code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Docs: add Azure Trusted Signing configuration guide",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-05-25T13:05:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7176bf47e3df21cd34e560d16ec405b8d23cceec",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update compatibility-levels.md",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-29T20:18:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a56a8c7324eeb755a54985890a3d759b59dc8540",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-29T10:44:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ad291214a27db651b99e0c6d0f47937141692b5",
          "body": null,
          "is_bot": false,
          "headline": "Configure JDK toolchain download in Gradle.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-13T11:25:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "65580db05b2d01d4211a71eab9978db07e2ece60",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: adjust default min sys requirements docs.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-08T16:17:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d951efead3661665a35c3298ef9756ec71d2fcd7",
          "body": "More trouble than it was worth.\n\n^CO-627 State Fixed",
          "is_bot": false,
          "headline": "Conveyor: Delete the framework symlink removal feature.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-08T14:58:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c37a9707f8bc21e74e9524fe3ba5bdb3f1bd4a8",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: add Truffle specific JVM options.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-06T14:07:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4448a3d3b7d1ed264cf5f955213b5991e8af4a1f",
          "body": "…ng \"steps\" to use proguard. Also it re-orders the `[PLATFORM_NAME].inputs` paths.\n\nAuthor: Colton Idle.",
          "is_bot": false,
          "headline": "Guidebook: Trims down some of the ProGuard-related copy while providi…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-06T14:07:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f63af56c90b6c82d62e6b9cc733fa143098a3ac5",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-04T20:24:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ebe1ddef55158767ec8771a10e61ec4717845cfc",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: allow force-path-style on s3",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-03T19:53:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0802f0d2892733e53dabc3347a0d4197c107b9f",
          "body": "This reverts commit 46706b79aa497a3288571e3c27d8f70922b67605.",
          "is_bot": false,
          "headline": "Revert \"Conveyor: allow force-path-style on s3 endpoints\"",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-04-03T19:50:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63cab8018dc93bb62ba461bb543af4c02e2e1bc8",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update GH action version.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-25T19:33:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85456cde72298b0200d41fcab3954093ffce3859",
          "body": "^CO-651 State Fixed",
          "is_bot": false,
          "headline": "Conveyor: allow force-path-style on s3 endpoints",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-25T17:20:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63f1cbcc2a11f00c9f067b7ee387de903a87f515",
          "body": "This makes applying it easier and means we can tell what the user's intent is from code, should we need that.\n\nAlso, set Mac distribution to MAS when using Squirrel migration.",
          "is_bot": false,
          "headline": "Conveyor: make squirrel migration config be a separate stdlib file.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-23T14:57:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f3d22eab8f0cdde4c4093a83409ec8faeddaafa",
          "body": "…win build.\n\n^CO-649",
          "is_bot": false,
          "headline": "Conveyor: don't crash when using the squirrel migration code with Dar…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-23T14:47:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d82ef64dd822c44f0d073b13958a59ddab2f3357",
          "body": "…ilde expansion in JVM options and the classpath.",
          "is_bot": false,
          "headline": "Conveyor: improve the launcher rebuild process, and add support for t…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-23T13:57:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b06e8e1400fef1f4cb1b42b9f902e83d38701434",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: reset release notes for v17",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-16T20:58:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "122234b0833fa30d28157d67f615f1e023bf84a2",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: move docs on uploads and add a tip for configuring Fastly",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-15T23:00:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b033360aa5e1b183bc673e60cffca1325538f79",
          "body": null,
          "is_bot": false,
          "headline": "Fix typo in platform specific file-associations keys in docs.",
          "author_name": "Michael Whapples",
          "author_login": null,
          "committed_at": "2025-03-09T18:35:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "daee02eb0f583d726c48a1ff4e82196a1b2dd75c",
          "body": null,
          "is_bot": false,
          "headline": "Link to the KMP sample repo.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-09T18:34:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05d91669f4ea921dbfb9e91ed9cabe8dbc15547b",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: Update Compose template app to latest Multiplatform standards.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-09T15:49:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "483cc8a24aa16fef7f7a15198eba92d2c6a1c09c",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update old Gradle plugin version numbers.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-03-09T15:49:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4133db9d8949919572e4c74fde48ac720ca5ef54",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update compatibility-levels.md page",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-02-18T12:28:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bacb2be71c0042ac7fadecdd2ed6a8014cf51b60",
          "body": null,
          "is_bot": false,
          "headline": "Refresh release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-02-16T17:09:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4db9f1d6f404f9aa95c9faf3d9548431c4314806",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: allow the AWS SDK to use default environment credentials.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-02-16T14:58:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f86482a4048373f564e5802ec4b1a045c2ef9f0",
          "body": null,
          "is_bot": false,
          "headline": "Factory: Add --silent flag to disable progress tracking output",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-02-16T14:27:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af5b5862713823aed6e2b467c92846a4985ace44",
          "body": "…ogging of diffs independently of the trace level logging.",
          "is_bot": false,
          "headline": "DiskCache: Improve robustness to deleted directories and enable the l…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-02-11T15:37:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b539dcef6b0849669453ce089d2d733172dfd71",
          "body": null,
          "is_bot": false,
          "headline": "Refresh release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-02-11T15:37:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bca4363577ccaf2a5b53f7716576f0d92f22b5d",
          "body": "This reverts commit df846252.\n\nThe approach caused a bad regression that's awkward to fix (we assume the JAR file names don't change after ProcessedJarsTask). And overall it's just not a good fix: version numbers in JARs can be useful when interpreting stack traces.",
          "is_bot": false,
          "headline": "Revert \"Conveyor: strip version numbers from JARs.\"",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-02-09T14:03:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1cddb799bc5475e850d05dabb399e3e5d9a78448",
          "body": "^CO-631 State Fixed",
          "is_bot": false,
          "headline": "Conveyor: strip version numbers from JARs.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-01-25T18:32:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37141968b63749239f2e8a039a13b3c4bf30cca5",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: build a newly generated project automatically.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-01-21T09:54:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e79a8fc4174222069aa7b77f6a8005edbbd85cb6",
          "body": "^CO-548 State Fixed",
          "is_bot": false,
          "headline": "Conveyor: document the S3 retries option.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2025-01-14T10:17:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "19acd079346fca256357d167a2a3bd4e17a10da3",
          "body": "…release.",
          "is_bot": false,
          "headline": "Guidebook: remove release notes for things that will go into a point …",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-30T15:22:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5500e37101583ecee803f719073fcc243dcc235c",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: allow ARM only builds for Mac.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-30T13:11:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "00835edf9e2a9dc429caa13ca32495365135bc92",
          "body": "…to detect path.",
          "is_bot": false,
          "headline": "Conveyor: make it easier to configure a YubiKey too, and unify the au…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-12T15:58:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88324c8e6c2533c6ab5e89204aea4acea16d228a",
          "body": "… scanning code from JSign.",
          "is_bot": false,
          "headline": "Conveyor: make it easier to configure a SafeNet eToken using the path…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-12T15:40:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "531c5e79493b947a260e26f2c2d24d99a42ed23d",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: add cargo.rs snippet for preparing native binaries.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-12T09:51:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1b2abaf069e06a41032e1581466b3260c40721e",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: add date to the release in the release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-12T09:49:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d52e712fac8fd5604e0296b4d36e8d54c08b54e",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: refresh release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-08T16:58:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c40dad141c5df2e06caf416c00755d7f795788f2",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update compatibility-levels.md",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-08T16:55:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51a7610518aae557e58a09e633c3a45f829831b8",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: refresh known issues list.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-03T16:37:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c34448e1ae3653febd4eec0a2c67f9e57e24503",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-03T16:25:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4105275ca02a819b7d7832ec263a30626d64f353",
          "body": "… the user guide.",
          "is_bot": false,
          "headline": "Guidebook: update release notes and mention `app.updates = manual` in…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-03T15:50:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87e2951fe1b942068354bff9e67c80665cd1d087",
          "body": null,
          "is_bot": false,
          "headline": "Update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-01T18:44:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68ed204baec6caaa62d022e831fc0448354d7282",
          "body": null,
          "is_bot": false,
          "headline": "Conveyor: add AUMID to package.json",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-01T18:20:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ee5aba532027faff85d3b9b2ec2edf53dfa7189",
          "body": "^CO-614 State Fixed",
          "is_bot": false,
          "headline": "Conveyor: expose the Windows AUMID in a JVM system property.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-12-01T16:49:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57585d703b3702f2ef9a615bd3d3895b3d5879fb",
          "body": null,
          "is_bot": false,
          "headline": "Merge open with upstream",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-11-26T14:50:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84bde3d856f2ba47ac22184c038d60dbeed0da17",
          "body": "…n-type-declarations\n\nAdd Typescript type declaration file to conveyor-control; Missing error message",
          "is_bot": false,
          "headline": "Merge pull request #133 from bonnyrivers/bonnyrivers/conveyor-electro…",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-11-26T14:46:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b0e76fb17a25d630e768d6335ba5dfbd6a81b98",
          "body": null,
          "is_bot": false,
          "headline": "fix spacing",
          "author_name": "Bonny Rivers",
          "author_login": "bonnyrivers",
          "committed_at": "2024-11-19T17:46:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84d7b5fca5bc84c9063a126cb3f4164086ef58e7",
          "body": null,
          "is_bot": false,
          "headline": "fix spacing",
          "author_name": "Bonny Rivers",
          "author_login": "bonnyrivers",
          "committed_at": "2024-11-19T17:40:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fe29c307e2813e0c4d2cd5ea0d73d0176c9c0b3",
          "body": null,
          "is_bot": false,
          "headline": "fix spacing",
          "author_name": "Bonny Rivers",
          "author_login": "bonnyrivers",
          "committed_at": "2024-11-19T17:40:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a88b429dec12f48a93aef348ef62a7c1e0ba4105",
          "body": "…rror messaging from canTriggerUpdateCheckUI()",
          "is_bot": false,
          "headline": "Add type declaration file for typescript applications. Adds missing e…",
          "author_name": "Bonny Rivers",
          "author_login": "bonnyrivers",
          "committed_at": "2024-11-19T17:35:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc966930ebb8a0507bd8c461aed8d9663862e163",
          "body": null,
          "is_bot": false,
          "headline": "Update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-11-14T22:15:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5189cc82c065799df1d809616498b37cac6bf92",
          "body": null,
          "is_bot": false,
          "headline": "Update release notes.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-11-14T22:00:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f712e052ab179a5931f5d0f05508a24024a9a8fc",
          "body": "^CO-541 State Fixed",
          "is_bot": false,
          "headline": "Conveyor: Add support for creating draft GitHub releases.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-11-12T18:05:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5584ce4a401f57036d43f846b6df19285e1d57e",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: mention stapling time limits in the performance docs.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-10-26T20:14:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9d7563bed34f9837eb919670b454676370e2afd",
          "body": null,
          "is_bot": false,
          "headline": "Gradle plugin: make it compatible with Gradle 8.10",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-10-26T20:14:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dbd060bd832c21baa6639a73810f3222157c1b56",
          "body": null,
          "is_bot": false,
          "headline": "Docs: mention that S3 buckets have to be public.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-10-26T20:14:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a11ff33e050f8bd6725efab8a6f87fb5db7d265",
          "body": null,
          "is_bot": false,
          "headline": "Update cache action to v4 from v3",
          "author_name": "Mark Burch",
          "author_login": "mark-burch",
          "committed_at": "2024-10-26T19:48:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74da19530d4cd0b5f0ae57d1bc7f323756f8d311",
          "body": "Update cache action to v4 from v3",
          "is_bot": false,
          "headline": "Merge pull request #131 from alwaysbemark/master",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-10-26T19:27:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d948e37cbac646547db6d4318dccc46be1721c1f",
          "body": null,
          "is_bot": false,
          "headline": "Update cache action to v4 from v3",
          "author_name": "Mark Burch",
          "author_login": "mark-burch",
          "committed_at": "2024-10-25T05:55:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c25f3b3cfb92891e355d44f0e7bc25d457888a31",
          "body": null,
          "is_bot": false,
          "headline": "Guidebook: mention stapling time limits in the performance docs.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-10-19T13:51:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb4f51b069b9385dbf49daa35a5eb354aceb6bdb",
          "body": null,
          "is_bot": false,
          "headline": "Gradle plugin: make it compatible with Gradle 8.10",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-10-19T12:06:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab9615021118e39615b44924782a0172b3f0d84d",
          "body": null,
          "is_bot": false,
          "headline": "Docs: mention that S3 buckets have to be public.",
          "author_name": "Mike Hearn",
          "author_login": "mikehearn",
          "committed_at": "2024-10-16T21:10:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1a7d7d5506a526a84183fc470b0b058089c0edb",
          "body": "Fixes #124",
          "is_bot": false,
          "headline": "Electron Control API: fix running outside of packaged context.",
          "author_name": "Mike Hearn (aider)",
          "author_login": "mikehearn",
          "committed_at": "2024-09-25T18:48:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01b786b2475aae39768307c1daff4ef05c8ef825",
          "body": "Fixes #124",
          "is_bot": false,
          "headline": "Electron Control API: fix running outside of packaged context.",
          "author_name": "Mike Hearn (aider)",
          "author_login": "mikehearn",
          "committed_at": "2024-09-25T18:47:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 0,
      "commits_last_year": 24,
      "latest_release_at": null,
      "latest_release_tag": null,
      "releases_from_tags": false,
      "days_since_last_push": 8,
      "active_weeks_last_year": 14,
      "days_since_latest_release": null,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@hydraulic/override-zip",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "packaging",
            "deployment",
            "electron",
            "macos",
            "windows",
            "desktop",
            "squirrel"
          ],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@hydraulic/override-zip",
          "is_deprecated": false,
          "latest_version": "22.1.0",
          "repository_url": null,
          "versions_count": 20,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 264,
          "first_published_at": "2023-10-18T14:30:55.464000Z",
          "latest_published_at": "2026-07-21T18:07:32.117000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 8
        },
        {
          "name": "@hydraulic/conveyor-control",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "packaging",
            "deployment",
            "electron",
            "macos",
            "windows",
            "desktop",
            "conveyor"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@hydraulic/conveyor-control",
          "is_deprecated": false,
          "latest_version": "1.3.0",
          "repository_url": "https://github.com/hydraulic-software/conveyor",
          "versions_count": 4,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 3520,
          "first_published_at": "2024-07-23T16:01:11.369000Z",
          "latest_published_at": "2024-12-09T20:34:20.779000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 597
        },
        {
          "name": "@hydraulic/migrate-to-conveyor",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "packaging",
            "deployment",
            "electron",
            "macos",
            "windows",
            "desktop",
            "squirrel"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@hydraulic/migrate-to-conveyor",
          "is_deprecated": false,
          "latest_version": "22.1.0",
          "repository_url": "https://github.com/hydraulic-software/conveyor",
          "versions_count": 19,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 1523,
          "first_published_at": "2023-11-02T15:09:28.953000Z",
          "latest_published_at": "2026-07-21T18:07:29.792000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 8
        }
      ]
    },
    "popularity": {
      "forks": 16,
      "stars": 175,
      "watchers": 3,
      "fork_history": {
        "days": [
          {
            "date": "2022-07-28",
            "count": 1
          },
          {
            "date": "2022-09-29",
            "count": 1
          },
          {
            "date": "2023-02-05",
            "count": 1
          },
          {
            "date": "2023-03-23",
            "count": 1
          },
          {
            "date": "2023-04-01",
            "count": 1
          },
          {
            "date": "2023-06-07",
            "count": 1
          },
          {
            "date": "2023-11-27",
            "count": 1
          },
          {
            "date": "2024-02-29",
            "count": 1
          },
          {
            "date": "2024-03-12",
            "count": 1
          },
          {
            "date": "2024-10-25",
            "count": 1
          },
          {
            "date": "2024-11-19",
            "count": 1
          },
          {
            "date": "2025-02-21",
            "count": 1
          },
          {
            "date": "2025-03-25",
            "count": 1
          },
          {
            "date": "2025-04-13",
            "count": 1
          },
          {
            "date": "2025-09-22",
            "count": 1
          },
          {
            "date": "2026-04-22",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 16,
        "total_forks": 16
      },
      "star_history": null,
      "open_issues_and_prs": 25
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "build.gradle.kts",
        "gradle-plugin/build.gradle.kts"
      ],
      "largest_source_bytes": 18444,
      "source_files_sampled": 10,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "build.gradle.kts",
        "gradle-plugin/build.gradle.kts",
        "guidebook/Pipfile"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.16",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 1,
            "oldest_advisory_days": 5
          },
          {
            "name": "tar",
            "direct": false,
            "version": "6.2.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 8.8,
            "advisory_ids": [
              "GHSA-23hp-3jrh-7fpw",
              "GHSA-34x7-hfp2-rc4v",
              "GHSA-83g3-92jg-28cx",
              "GHSA-8qq5-rm4j-mr97",
              "GHSA-8x88-c5mf-7j5w",
              "GHSA-9ppj-qmqm-q256",
              "GHSA-gvwx-54wh-qm9j",
              "GHSA-qffp-2rhf-9h96",
              "GHSA-r292-9mhp-454m",
              "GHSA-r6q2-hw4h-h46w"
            ],
            "fixed_version": "7.5.21",
            "advisory_count": 12,
            "oldest_advisory_days": 194
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 2
        },
        "advisory_count": 13,
        "affected_count": 2,
        "assessed_count": 227,
        "malicious_count": 0,
        "assessed_package": "npm:@hydraulic/override-zip@22.1.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "maven",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "koffi",
          "manifest": "electron/conveyor-control/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.5.8"
        },
        {
          "name": "debug",
          "manifest": "electron/migrate-to-conveyor/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.3.4"
        },
        {
          "name": "electron-is-dev",
          "manifest": "electron/migrate-to-conveyor/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.0.0"
        },
        {
          "name": "electron-squirrel-startup",
          "manifest": "electron/migrate-to-conveyor/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.0"
        },
        {
          "name": "@electron-forge/plugin-base",
          "manifest": "electron/override-zip/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.4.2"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@electron-forge/plugin-base",
            "direct": true,
            "version": "6.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": true,
            "version": "2.6.9",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": true,
            "version": "4.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "electron-is-dev",
            "direct": true,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "electron-squirrel-startup",
            "direct": true,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "koffi",
            "direct": true,
            "version": "^2.5.8",
            "ecosystem": "npm"
          },
          {
            "name": "@electron-forge/shared-types",
            "direct": false,
            "version": "6.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@electron/asar",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@electron/get",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@electron/notarize",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@electron/osx-sign",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@electron/rebuild",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@electron/universal",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/cliui",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@malept/cross-spawn-promise",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@malept/cross-spawn-promise",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@npmcli/fs",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@pkgjs/parseargs",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/is",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@szmarczak/http-timer",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@tootallnate/once",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/cacheable-request",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/http-cache-semantics",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/keyv",
            "direct": false,
            "version": "3.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/responselike",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yauzl",
            "direct": false,
            "version": "2.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@xmldom/xmldom",
            "direct": false,
            "version": "0.8.10",
            "ecosystem": "npm"
          },
          {
            "name": "abbrev",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "agentkeepalive",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "aggregate-error",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "aproba",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "are-we-there-yet",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "astral-regex",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "at-least-node",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "author-regex",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "bl",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "bluebird",
            "direct": false,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "boolean",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer",
            "direct": false,
            "version": "5.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-crc32",
            "direct": false,
            "version": "0.2.13",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-equal",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cacache",
            "direct": false,
            "version": "17.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "cacheable-lookup",
            "direct": false,
            "version": "5.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "cacheable-request",
            "direct": false,
            "version": "7.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chownr",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "clean-stack",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-spinners",
            "direct": false,
            "version": "2.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "cli-truncate",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "clone",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "clone-response",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "color-support",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "colorette",
            "direct": false,
            "version": "2.0.20",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "compare-version",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "console-control-strings",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn-windows-exe",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "decompress-response",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "defaults",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "defer-to-connect",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "define-properties",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "delegates",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-node",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "dir-compare",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "eastasianwidth",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "electron-packager",
            "direct": false,
            "version": "17.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "9.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "encoding",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "end-of-stream",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "env-paths",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "err-code",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "error-ex",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "es6-error",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "exponential-backoff",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "extract-zip",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fd-slicer",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "filename-reserved-regex",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "filenamify",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "flora-colossus",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "foreground-child",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "11.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "9.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs-minipass",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs-minipass",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "galactus",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "gauge",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-package-info",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "10.3.10",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "global-agent",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "globalthis",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "got",
            "direct": false,
            "version": "11.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "has",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-property-descriptors",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "has-unicode",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "hosted-git-info",
            "direct": false,
            "version": "2.8.9",
            "ecosystem": "npm"
          },
          {
            "name": "http-cache-semantics",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "http-proxy-agent",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "http2-wrapper",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "humanize-ms",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "indent-string",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ip",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-arrayish",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-interactive",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-lambda",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-unicode-supported",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "isbinaryfile",
            "direct": false,
            "version": "4.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jackspeak",
            "direct": false,
            "version": "2.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-stringify-safe",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonfile",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsonfile",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "junk",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "listr2",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "load-json-file",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.get",
            "direct": false,
            "version": "4.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "log-symbols",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "log-update",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lowercase-keys",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "7.18.3",
            "ecosystem": "npm"
          },
          {
            "name": "make-fetch-happen",
            "direct": false,
            "version": "11.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "matcher",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "3.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "minipass-collect",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "minipass-fetch",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "minipass-flush",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "minipass-pipeline",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "minipass-sized",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "minizlib",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "node-abi",
            "direct": false,
            "version": "3.51.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-api-version",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "node-gyp",
            "direct": false,
            "version": "9.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "nopt",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-package-data",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-url",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "npmlog",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "object-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "ora",
            "direct": false,
            "version": "5.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-cancelable",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-map",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-try",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse-author",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse-json",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pend",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pify",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "plist",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "progress",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "promise-retry",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pump",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "quick-lru",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "rcedit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "read-pkg",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "read-pkg-up",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.8",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-alpn",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "responselike",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "retry",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "rfdc",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "rimraf",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "roarr",
            "direct": false,
            "version": "2.15.4",
            "ecosystem": "npm"
          },
          {
            "name": "rxjs",
            "direct": false,
            "version": "7.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "5.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "semver-compare",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "serialize-error",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "set-blocking",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "smart-buffer",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "socks",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "socks-proxy-agent",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-correct",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-exceptions",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-expression-parse",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-license-ids",
            "direct": false,
            "version": "3.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "ssri",
            "direct": false,
            "version": "10.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-outer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "sumchecker",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tar",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "through",
            "direct": false,
            "version": "2.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "trim-repeated",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "5.25.3",
            "ecosystem": "npm"
          },
          {
            "name": "unique-filename",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unique-slug",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "validate-npm-package-license",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "wide-align",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "xmlbuilder",
            "direct": false,
            "version": "15.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yauzl",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel",
            "direct": false,
            "version": "2.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "backrefs",
            "direct": false,
            "version": "5.9",
            "ecosystem": "pypi"
          },
          {
            "name": "cairocffi",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cairosvg",
            "direct": false,
            "version": "2.8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2025.6.15",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "1.17.1",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "colorama",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "cssselect2",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "defusedxml",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "ghp-import",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.10",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-include",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mergedeep",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-get-deps",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-material",
            "direct": false,
            "version": "9.6.15",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-material-extensions",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "paginate",
            "direct": false,
            "version": "0.5.7",
            "ecosystem": "pypi"
          },
          {
            "name": "pathspec",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": "10.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.3.8",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "2.22",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.19.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pymdown-extensions",
            "direct": false,
            "version": "10.16",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dateutil",
            "direct": false,
            "version": "2.9.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml-env-tag",
            "direct": false,
            "version": "1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": "2.32.4",
            "ecosystem": "pypi"
          },
          {
            "name": "six",
            "direct": false,
            "version": "1.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tinycss2",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "watchdog",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "webencodings",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 335,
        "direct_count": 6,
        "indirect_count": 329
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 4,
        "open_issues": 25,
        "closed_ratio": 0.722,
        "closed_issues": 65,
        "closed_unmerged_prs": 5
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "mikehearn",
          "commits": 705,
          "avatar_url": "https://avatars.githubusercontent.com/u/971089?v=4"
        },
        {
          "type": "User",
          "login": "leo-hydraulic",
          "commits": 104,
          "avatar_url": "https://avatars.githubusercontent.com/u/116815597?v=4"
        },
        {
          "type": "User",
          "login": "bonnyrivers",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/46431602?v=4"
        },
        {
          "type": "User",
          "login": "mark-burch",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/56749912?v=4"
        },
        {
          "type": "User",
          "login": "oguse",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/7326379?v=4"
        },
        {
          "type": "User",
          "login": "iamcalledrob",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/87964?v=4"
        },
        {
          "type": "User",
          "login": "sproctor",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/217337?v=4"
        }
      ],
      "contributors_sampled": 7,
      "top_contributor_share": 0.86
    },
    "quality_signals": {
      "has_ci": false,
      "has_tests": true,
      "ci_workflows": [],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Pipfile.lock",
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 9,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 4 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 4,
            "reason": "3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": null,
            "reason": "no dependencies found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "59 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "5011cc412f9c3a67d8f72f9ea5db5f34c4a68e36",
        "ran_at": "2026-07-30T11:41:35Z",
        "aggregate_score": 2.2,
        "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": null,
      "oldest_open_prs": [],
      "last_merged_pr_at": "2024-11-26T14:46:23Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 4,
          "created_at": "2022-03-10T21:01:47Z",
          "last_comment_at": "2024-12-01T16:40:45Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 9,
          "created_at": "2022-04-01T16:22:01Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 27,
          "created_at": "2022-08-11T11:26:39Z",
          "last_comment_at": "2022-08-11T14:17:45Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 37,
          "created_at": "2022-10-18T06:32:33Z",
          "last_comment_at": "2022-11-17T18:51:16Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 52,
          "created_at": "2023-03-21T17:12:55Z",
          "last_comment_at": "2023-03-22T10:18:00Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 68,
          "created_at": "2023-07-14T12:57:54Z",
          "last_comment_at": "2023-07-14T13:33:09Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 73,
          "created_at": "2023-08-03T13:31:29Z",
          "last_comment_at": "2026-03-04T10:09:41Z",
          "last_comment_author": "mwhapples"
        },
        {
          "number": 85,
          "created_at": "2023-10-27T13:03:27Z",
          "last_comment_at": "2023-10-27T15:37:12Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 98,
          "created_at": "2024-02-01T11:24:15Z",
          "last_comment_at": "2024-02-01T18:01:34Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 117,
          "created_at": "2024-07-13T10:26:46Z",
          "last_comment_at": "2024-07-13T13:36:01Z",
          "last_comment_author": "guiyanakuang"
        },
        {
          "number": 141,
          "created_at": "2024-12-04T22:05:17Z",
          "last_comment_at": "2024-12-07T14:41:38Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 148,
          "created_at": "2025-02-07T00:23:56Z",
          "last_comment_at": "2025-02-11T16:33:23Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 169,
          "created_at": "2025-05-02T13:02:28Z",
          "last_comment_at": "2025-05-06T08:40:54Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 170,
          "created_at": "2025-05-06T18:48:57Z",
          "last_comment_at": "2025-06-14T15:13:04Z",
          "last_comment_author": "MohamedRejeb"
        },
        {
          "number": 173,
          "created_at": "2025-05-22T13:47:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 180,
          "created_at": "2025-08-27T14:29:27Z",
          "last_comment_at": "2025-08-31T18:18:58Z",
          "last_comment_author": "LiveNathan"
        },
        {
          "number": 181,
          "created_at": "2025-09-03T20:39:17Z",
          "last_comment_at": "2025-09-09T21:07:24Z",
          "last_comment_author": "likeich"
        },
        {
          "number": 184,
          "created_at": "2025-09-30T20:14:17Z",
          "last_comment_at": "2025-10-06T08:06:32Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 185,
          "created_at": "2025-11-04T22:33:18Z",
          "last_comment_at": "2025-11-06T17:12:51Z",
          "last_comment_author": "mikehearn"
        },
        {
          "number": 187,
          "created_at": "2025-11-24T15:02:33Z",
          "last_comment_at": "2025-11-25T16:31:33Z",
          "last_comment_author": "mikehearn"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/hydraulic-software/conveyor",
    "host": "github.com",
    "name": "conveyor",
    "owner": "hydraulic-software"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "weak",
      "name": "Overall health",
      "note": "The weighted overall 44 is calibrated to 41 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 44,
            "calibrated": 41,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 41,
      "inputs": {
        "security": 32,
        "vitality": 33,
        "community": 52,
        "governance": 57,
        "calibration": "2026-08-02",
        "engineering": 40,
        "ai_readiness": 49,
        "weighted_overall_raw": 44
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "at_risk",
        "name": "Vitality",
        "value": 33,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "commits_last_year": 24,
              "human_commit_share": 1,
              "days_since_last_push": 8,
              "active_weeks_last_year": 14
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 8 days ago",
                "points": 28.8,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 8
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "14/52 weeks with commits",
                "points": 9.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 14
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "24 commits in the last year",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 24
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4",
                "points": 4,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "critical",
            "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": 1,
            "inputs": {
              "releases_count": 0
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "no releases published",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases_published",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "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": "exceptional",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 12,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 12 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 12
                    }
                  }
                ],
                "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.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "weak",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 48,
            "inputs": {
              "forks": 16,
              "stars": 175,
              "watchers": 3,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "175 stars",
                "points": 36.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 175
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "16 forks",
                "points": 9.8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 16
                    }
                  }
                ],
                "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": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "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 (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 62,
            "inputs": {
              "packages": [
                "@hydraulic/override-zip",
                "@hydraulic/conveyor-control",
                "@hydraulic/migrate-to-conveyor"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 5307
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "5,307 downloads/month across npm",
                "points": 49.7,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 5307,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 57,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 32,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 7,
              "top_contributor_share": 0.86
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 86% of commits",
                "points": 3.2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 86
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "7 contributors",
                "points": 9.5,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 50,
            "inputs": {
              "merged_prs": 4,
              "open_issues": 25,
              "closed_issues": 65,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 0.722,
              "closed_unmerged_prs": 5,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "72% of issues closed",
                "points": 30.3,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 72
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "4/9 decided PRs merged",
                "points": 13.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 4,
                      "decided": 9
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "followers": 34,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "hydraulic-software",
              "public_repos": 16,
              "account_age_days": 1905
            },
            "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": "34 followers of hydraulic-software",
                "points": 11.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 34,
                      "login": "hydraulic-software"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "16 public repos, account ~5 yr old",
                "points": 19.4,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 16
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 5
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@hydraulic/override-zip",
                "@hydraulic/conveyor-control",
                "@hydraulic/migrate-to-conveyor"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 8
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "3 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 3,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 8 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 8
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "20 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "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": "weak",
        "name": "Engineering Quality",
        "value": 40,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 30,
            "inputs": {
              "has_ci": false,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": "https://conveyor.hydraulic.dev",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://conveyor.hydraulic.dev",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 32,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "dangerous_workflow",
                    "packaging",
                    "pinned_dependencies",
                    "signed_releases",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 22,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 12,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 6,
              "scorecard_aggregate": 2.2
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "59 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "good",
            "name": "Dependency advisories",
            "note": "Matched the npm:@hydraulic/override-zip@22.1.0 runtime dependency closure — what installing the published package pulls in — 227 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@hydraulic/override-zip@22.1.0",
                  "assessed": 227
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 74,
            "inputs": {
              "source": "osv",
              "advisories": 13,
              "affected_packages": 2,
              "assessed_packages": 227,
              "unassessed_packages": 0,
              "affected_by_severity": "high 2",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "2 affected: brace-expansion 1.1.16 (high 7.5), tar 6.2.1 (high 8.8)",
                "points": 6.2,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 2,
                      "packages": "brace-expansion 1.1.16 (high 7.5), tar 6.2.1 (high 8.8)"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 194 days ago",
                "points": 32.8,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 1,
                      "oldest": 194
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 227,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "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"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "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": "weak",
        "name": "AI Readiness",
        "value": 49,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "critical",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 4,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.08,
              "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": "8 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 4.3,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 8,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 64,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Pipfile.lock",
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.01,
              "toolchain_manifests": [
                "build.gradle.kts",
                "gradle-plugin/build.gradle.kts"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "build.gradle.kts, gradle-plugin/build.gradle.kts (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "build.gradle.kts, gradle-plugin/build.gradle.kts"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Kotlin (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Kotlin"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "1 of the last 100 commits agent-authored or agent-credited",
                "points": 2,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 1,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Kotlin",
              "largest_source_bytes": 18444,
              "source_files_sampled": 10,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Kotlin (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Kotlin"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/10 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 10,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "labels": [
        "library"
      ],
      "scores": {
        "plugin": 2,
        "library": 6,
        "desktop-app": 2
      },
      "primary": "library",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:npm",
          "weight": 6
        },
        {
          "tier": "tags",
          "label": "desktop-app",
          "source": "tag:desktop",
          "weight": 2
        },
        {
          "tier": "description",
          "label": "plugin",
          "source": "description:plugin",
          "weight": 2
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": false,
      "consumed_by_code": true
    },
    "metrics_version": "2.3.1"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-30T11:41:43.534999Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/h/hydraulic-software/conveyor.svg",
  "full_name": "hydraulic-software/conveyor",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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

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

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