公开记录
软件健康报告模式 0.30.0 · 指标 2.5.0 · 2026-08-03 04:16 UTC

SSC-ICT-Innovatie / nl-kat-coordination

OpenKAT scans networks, finds vulnerabilities and creates accessible reports. It integrates the most widely used network tools and scanning software into a modular framework, accesses external databases such as shodan, and combines the information from all these sources into clear reports. It also includes lots of cat hair.

Python · HTML · SCSSEUPL-1.2★ 153 星标⑂ 69 复刻始于 2022年6月在 GitHub 上查看 ↗
类型网络服务命令行工具如何判定

SSC-ICT-Innovatie/nl-kat-coordination 的健康指数为 100 分中的 93 分,处于「卓越」区间。 其得分最高的类别是Engineering Quality(92/100),最低的是AI Readiness(59/100)。 最近一次更新在 1 天前。 近期的大部分工作由 5 位贡献者完成。

93
总分 / 100
卓越

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均,再依据公开记录的分布进行校准,使各等级具有百分位含义;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 34(存在风险)的上限。

93
卓越93-100公开记录中的最高层级(约前 5%);基本满足所有检验标准
优秀80-92各方面均表现强劲;仅有少量不足
良好65-79健康;不足之处有限且可控
中等50-64可接受,但存在明显不足;建议进行审查
薄弱35-49多个领域存在实质性薄弱环节
存在风险20-34存在重大薄弱环节;采用时应保持审慎
危急1-19问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

加权总体分 79 经校准后在公布的指数量表上为 93(记录校准 2026-08-02)。

所有权

11 关注者25 个公开仓库始于 2018年5月

该仓库由组织支持——共同承担、可问责的托管责任,可延续于任何单一维护者之后。

软件包生态系统

注册表软件包版本月下载量版本数最近发布标签
PyPImula1.6.1-26435 天前
PyPIbytes指向其他仓库——不计分0.0.1.dev41,65854134 天前serializationdeserializationformatsmarshaling
PyPIrocky指向其他仓库——不计分1.0.214941578 天前

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

91优秀 · 占总体的 21%
评分方式
36/36推送新近度 — 最近一次推送于 1 天前
27.7/36提交节奏 — 52 周中有 40 周有提交
18/18提交量 — 最近一年 213 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year213
human_commit_share0.66
days_since_last_push1
active_weeks_last_year40

发布纪律

90优秀
评分方式
27/27有发布版本 — 已发布 75 个发布版本
36/36发布时效 — 最近一次发布版本于 19 天前
27/27发布节奏 — 约每 42.5 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — Project has not signed or included provenance with any releases.
所用输入
releases_count75
latest_release_tagv1.22.1
releases_from_tags
days_since_latest_release19
mean_days_between_releases42.5

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

66良好 · 占总体的 17%
评分方式
35.4/60星标 — 153 个星标
15.3/25复刻 — 69 个复刻
6.5/15关注者 — 16 位关注者
所用输入
forks69
stars153
watchers16
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

77良好
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(EUPL-1.2)
18/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
6.3/6.3PR 模板
所用输入
has_readme
has_license
readme_badges0
has_contributing
has_issue_template
has_code_of_conduct
readme_badge_services
has_pull_request_template

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

75良好 · 占总体的 23%
评分方式
45.9/54巴士系数 — 5 位贡献者贡献了半数提交
19/22.5提交分布 — 头号贡献者编写了 16% 的提交
13.5/13.5贡献者广度 — 49 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 28 contributing companies or organizations
所用输入
bus_factor5
contributors_sampled49
top_contributor_share0.155
评分方式
24.9/42议题解决 — 59% 的议题已关闭
23.5/30PR 接受 — 已裁定的 PR 中 2,205/2,817 已合并
0/13Newcomer PR acceptance — 30 天内没有首次贡献者的 PR 得到裁决
15/15OpenSSF Scorecard:Code-Review — all changesets reviewed
所用输入
merged_prs2,205
open_issues948
closed_issues1,382
prs_merged_7d7
prs_decided_7d7
prs_merged_30d16
prs_decided_30d19
issue_closed_ratio0.593
closed_unmerged_prs612
first_time_authors_30d0
first_time_prs_merged_30d0
first_time_prs_decided_30d0
已排除计分(无数据或不适用):newcomer_pr_acceptance。 其余权重已重新归一化。
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
7.8/25所有者影响力 — SSC-ICT-Innovatie 有 11 位关注者
22.3/25既往记录 — 25 个公开仓库,账户约 8 年
所用输入
followers11
owner_typeOrganization
is_verified
owner_loginSSC-ICT-Innovatie
public_repos25
account_age_days3,010
评分方式
25/25已发布且可解析 — pypi 上有 1 个软件包
14/35发布时效 — 最近一次发布于 435 天前
20/20版本历史 — 26 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesmula
ecosystemspypi
any_deprecated
min_days_since_publish435

工程质量

基础的工程与文档实践是否到位?

92优秀 · 占总体的 19%

工程实践

100卓越
评分方式
24/24CI 工作流 — 28 个工作流
24/24存在测试
16/16Linter 配置
9.6/9.6Pre-commit 钩子
6.4/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

80优秀
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — https://openkat.nl
10/10仓库描述
0/10主题标签
0/10Wiki
所用输入
topics
has_wiki
homepagehttps://openkat.nl
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

70良好 · 占总体的 16%

安全态势

62中等
评分方式
6/7.5Binary-Artifacts — binaries present in source code
1.5/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 28 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
1.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0.8/7.5Vulnerabilities — 9 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate6.2
评分方式
35/35直接依赖不含已知公告 — 没有直接依赖携带已知公告
25/25间接依赖不含已知公告 — 没有间接依赖携带已知公告
0/40没有长期未处理的公告 — 没有公告带有发布日期
所用输入
sourceosv
advisories0
affected_packages0
assessed_packages12
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
已排除计分(无数据或不适用):没有长期未处理的公告。 其余权重已重新归一化。 比对的是 pypi:mula@1.6.1 的运行时依赖闭包——安装已发布的软件包时真正被拉取进来的内容——共 12 个软件包。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?权重刻意设小(4%):代理工具链是一项真实的维护信号,但完全不具备的仓库仍可达到 100/100。

59中等 · 占总体的 4%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 66 次人类提交中有 58 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.879
agent_instruction_files
agent_instruction_max_bytes
评分方式
18/18一条命令的引导启动 — Makefile, boefjes/Makefile, boefjes/packaging/deb/Makefile, bytes/Makefile, bytes/packaging/deb/Makefile, cveapi/Makefile, mula/Makefile, mula/packaging/deb/Makefile, octopoes/Makefile, octopoes/packaging/deb/Makefile, rocky/Makefile
22/22自动化测试
11/11Lint / 格式化配置
0/11静态类型检查
10/10可复现环境 — Dockerfile, lockfile
10/10已体现的代理实践 — 最近 100 次提交中有 7 次由代理编写或署名代理
8/8自动化维护 — 最近 100 次提交中有 34 次为自动依赖更新
3/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
所用输入
has_nix
has_tests
lockfilespackage-lock.json, poetry.lock, uv.lock, yarn.lock
has_dockerfile
typed_language
bootstrap_filesMakefile, boefjes/Makefile, boefjes/packaging/deb/Makefile, bytes/Makefile, bytes/packaging/deb/Makefile, cveapi/Makefile, mula/Makefile, mula/packaging/deb/Makefile, octopoes/Makefile, octopoes/packaging/deb/Makefile, rocky/Makefile
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0.07
toolchain_manifests
dependency_bot_commit_share0.34
评分方式
0/45可类型检查的代码 — Python,未配置类型检查
54.9/55可控的文件大小 — 采样的 1,193 个源文件中有 2 个超过 60KB
所用输入
primary_languagePython
largest_source_bytes95,585
source_files_sampled1,193
oversized_source_files2
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
0/20MCP 服务器
40/40可运行示例 — examples
所用输入
example_dirsexamples
has_mcp_signal
api_schema_files

关键数据

153GitHub 星标
49贡献者
213最近 12 个月提交数
1距最近推送天数
75发布版本数
5巴士系数(bus factor)
948开放议题
npm, PyPI软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch pypi package 'openkat' from its registry
  • pypi package 'bytes' points at a different repository (https://github.com/code-museum/bytes); excluded from ecosystem scoring
  • pypi package 'rocky' points at a different repository (https://github.com/andersroos/rocky); excluded from ecosystem scoring
  • Could not fetch pypi package 'boefjes' from its registry
  • Could not fetch pypi package 'octopoes' from its registry
  • Could not fetch pypi package 'cveapi' from its registry

更多细节

Star 与 Fork 历史 0 ★ / 69 ⇿
0Star
69Fork
74发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

01325385063756852022-072024-072026-07
主版本 0次版本 22修订 19

每个点涵盖 4 天。

OpenSSF Scorecard 6.2 / 10
6.2综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-08-03 04:15 UTC

8Binary-Artifactsbinaries present in source code
2Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
10Contributorsproject has 28 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
3Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 3
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
1Vulnerabilities9 existing vulnerabilities detected
直接依赖 237
注册表软件包版本约束清单文件
PyPIalembic~=1.8boefjes/pyproject.toml
PyPIclick>=8.1.3,<9boefjes/pyproject.toml
PyPIjsonschema>=4.17.0,<5boefjes/pyproject.toml
PyPIpydantic>=2.7.1,<3boefjes/pyproject.toml
PyPIdocker>=7.1.0,<8boefjes/pyproject.toml
PyPIuvicorn>=0.29.0,<0.30boefjes/pyproject.toml
PyPIpsycopg2-binary>=2.9.10boefjes/pyproject.toml
PyPIpynacl>=1.5.0,<2boefjes/pyproject.toml
PyPIsqlalchemy>=1.4.48boefjes/pyproject.toml
PyPIpython-dateutil>=2.8.2,<3boefjes/pyproject.toml
PyPIpydantic-settings>=2.14.2,<3boefjes/pyproject.toml
PyPIopentelemetry-sdkboefjes/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-grpcboefjes/pyproject.toml
PyPIopentelemetry-instrumentation-fastapiboefjes/pyproject.toml
PyPIopentelemetry-instrumentation-psycopg2boefjes/pyproject.toml
PyPIopentelemetry-instrumentation-requestsboefjes/pyproject.toml
PyPIopentelemetry-instrumentationboefjes/pyproject.toml
PyPIrequests>=2.33.0,<3boefjes/pyproject.toml
PyPIbeautifulsoup4==4.11.1boefjes/pyproject.toml
PyPIdnspython>=2.6.1,<3boefjes/pyproject.toml
PyPItldextract>5boefjes/pyproject.toml
PyPIvalidators==0.20.0boefjes/pyproject.toml
PyPIpython-libnmap==0.7.3boefjes/pyproject.toml
PyPIcryptography>=48.0.1boefjes/pyproject.toml
PyPIforcediphttpsadapter==1.1.0boefjes/pyproject.toml
PyPIurllib3>=2.1.0,<3boefjes/pyproject.toml
PyPIwpscan-out-parse==1.9.3boefjes/pyproject.toml
PyPInetaddr>=1.3.0,<2boefjes/pyproject.toml
PyPIdefusedxml>=0.7.1,<0.8boefjes/pyproject.toml
PyPIpillow>=12.3.0boefjes/pyproject.toml
PyPIhttpx>=0.28.1,<0.29boefjes/pyproject.toml
PyPIopentelemetry-apiboefjes/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-commonboefjes/pyproject.toml
PyPIopentelemetry-instrumentation-asgiboefjes/pyproject.toml
PyPIopentelemetry-instrumentation-dbapiboefjes/pyproject.toml
PyPIopentelemetry-protoboefjes/pyproject.toml
PyPIopentelemetry-semantic-conventionsboefjes/pyproject.toml
PyPIopentelemetry-util-httpboefjes/pyproject.toml
PyPIfastapi-slim>=0.115.2boefjes/pyproject.toml
PyPIstructlog>=25.2.0,<26boefjes/pyproject.toml
PyPImaxminddb>=2.6.2,<3boefjes/pyproject.toml
PyPItanimachi>=0.0.6,<0.0.7boefjes/pyproject.toml
PyPIcpe>=1.3.1,<2boefjes/pyproject.toml
PyPIcroniter>=6.0.0,<7boefjes/pyproject.toml
PyPIsetuptools>=80.9.0boefjes/pyproject.toml
PyPIpygments>=2.20.0boefjes/pyproject.toml
PyPIwrapt>=2.1.2boefjes/pyproject.toml
PyPIattrs>=26.1.0boefjes/pyproject.toml
PyPImako>=1.3.12boefjes/pyproject.toml
PyPIurllib3>=2.7.0boefjes/pyproject.toml
PyPIidna>=3.15boefjes/pyproject.toml
PyPIstarlette>=1.3.1boefjes/pyproject.toml
PyPIalembic>=1.8.1,<2bytes/pyproject.toml
PyPIcachetools>6bytes/pyproject.toml
PyPIpasslib>=1.7.4,<2bytes/pyproject.toml
PyPIaio-pika>=9.5,<10bytes/pyproject.toml
PyPIprometheus-client>=0.16.0,<0.17bytes/pyproject.toml
PyPIpsycopg2-binary>=2.9.10bytes/pyproject.toml
PyPIpydantic>=2.7.1,<3bytes/pyproject.toml
PyPIpynacl>=1.5.0,<2bytes/pyproject.toml
PyPIrfc3161ng>=2.1.3,<3bytes/pyproject.toml
PyPIsqlalchemy>=1.4.48,<2bytes/pyproject.toml
PyPIuvicorn>=0.29.0,<0.30bytes/pyproject.toml
PyPIopentelemetry-sdkbytes/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-grpcbytes/pyproject.toml
PyPIopentelemetry-instrumentation-fastapibytes/pyproject.toml
PyPIopentelemetry-instrumentation-psycopg2bytes/pyproject.toml
PyPIopentelemetry-instrumentation-httpxbytes/pyproject.toml
PyPIopentelemetry-instrumentationbytes/pyproject.toml
PyPIopentelemetry-instrumentation-dbapibytes/pyproject.toml
PyPIpydantic-settings>=2.14.2,<3bytes/pyproject.toml
PyPIpython-multipart>=0.0.31bytes/pyproject.toml
PyPIhttpx>=0.28.1,<0.29bytes/pyproject.toml
PyPIopentelemetry-apibytes/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-commonbytes/pyproject.toml
PyPIopentelemetry-instrumentation-asgibytes/pyproject.toml
PyPIopentelemetry-protobytes/pyproject.toml
PyPIopentelemetry-semantic-conventionsbytes/pyproject.toml
PyPIopentelemetry-util-httpbytes/pyproject.toml
PyPIpyjwt>=2.13.0bytes/pyproject.toml
PyPIfastapi-slim>=0.115.2bytes/pyproject.toml
PyPIstructlog>=25.2.0,<26bytes/pyproject.toml
PyPIcryptography>=48.0.1bytes/pyproject.toml
PyPIboto3>=1.42.70,<3bytes/pyproject.toml
PyPIbcrypt<5bytes/pyproject.toml
PyPIrequests>=2.33.0,<3bytes/pyproject.toml
PyPIpygments>=2.20.0bytes/pyproject.toml
PyPIpyasn1>=0.6.4bytes/pyproject.toml
PyPIwrapt>=2.1.2bytes/pyproject.toml
PyPImako>=1.3.12bytes/pyproject.toml
PyPIurllib3>=2.7.0bytes/pyproject.toml
PyPIidna>=3.15bytes/pyproject.toml
PyPIstarlette>=1.3.1bytes/pyproject.toml
PyPIhttpx>=0.28.1cveapi/pyproject.toml
PyPIidna>=3.15cveapi/pyproject.toml
PyPIalembic>=1.12.1,<2mula/pyproject.toml
PyPIcroniter>=6.0.0,<7mula/pyproject.toml
PyPImmh3>=5.1.0,<6mula/pyproject.toml
PyPIpika>=1.3.2,<2mula/pyproject.toml
PyPIprometheus-client>=0.19.0,<0.20mula/pyproject.toml
PyPIpsycopg2-binary>=2.9.10mula/pyproject.toml
PyPIpydantic>=2.11.3,<3mula/pyproject.toml
PyPIpydantic-settings>=2.14.2,<3mula/pyproject.toml
PyPIpython-dotenv>=1.0.0,<2mula/pyproject.toml
PyPIretry2>=0.9.5,<0.10mula/pyproject.toml
PyPIsqlalchemy>=2.0.23,<3mula/pyproject.toml
PyPIstructlog>=25.2.0,<26mula/pyproject.toml
PyPIuvicorn>=0.29.0,<0.30mula/pyproject.toml
PyPIhttpx>=0.28.1,<0.29mula/pyproject.toml
PyPIfastapi-slim>=0.115.12mula/pyproject.toml
PyPIopentelemetry-sdkmula/pyproject.toml
PyPIopentelemetry-apimula/pyproject.toml
PyPIopentelemetry-protomula/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-grpcmula/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-commonmula/pyproject.toml
PyPIopentelemetry-util-httpmula/pyproject.toml
PyPIopentelemetry-instrumentationmula/pyproject.toml
PyPIopentelemetry-instrumentation-httpxmula/pyproject.toml
PyPIopentelemetry-instrumentation-asgimula/pyproject.toml
PyPIopentelemetry-instrumentation-dbapimula/pyproject.toml
PyPIopentelemetry-instrumentation-fastapimula/pyproject.toml
PyPIopentelemetry-instrumentation-psycopg2mula/pyproject.toml
PyPIopentelemetry-semantic-conventionsmula/pyproject.toml
PyPIpygments>=2.20.0mula/pyproject.toml
PyPIwrapt>=2.1.2mula/pyproject.toml
PyPImako>=1.3.12mula/pyproject.toml
PyPIidna>=3.15mula/pyproject.toml
PyPIstarlette>=1.3.1mula/pyproject.toml
PyPIpydantic>=2.7.1,<3octopoes/pyproject.toml
PyPIuvicorn>=0.29.0,<0.30octopoes/pyproject.toml
PyPIpika>=1.3.1,<2octopoes/pyproject.toml
PyPIPyYAML~=6.0octopoes/pyproject.toml
PyPIdnspython>=2.6.1,<3octopoes/pyproject.toml
PyPIkombu>=5.2.4,<6octopoes/pyproject.toml
PyPIcelery>=5.2.7,<6octopoes/pyproject.toml
PyPIpyparsing>=3.0.9,<4octopoes/pyproject.toml
PyPItldextract>5octopoes/pyproject.toml
PyPIopentelemetry-sdkoctopoes/pyproject.toml
PyPIopentelemetry-instrumentationoctopoes/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-grpcoctopoes/pyproject.toml
PyPIopentelemetry-instrumentation-fastapioctopoes/pyproject.toml
PyPIopentelemetry-instrumentation-psycopg2octopoes/pyproject.toml
PyPIopentelemetry-instrumentation-httpxoctopoes/pyproject.toml
PyPIsqlalchemy==1.4.48octopoes/pyproject.toml
PyPIjsonschema>=4.18.0,<5octopoes/pyproject.toml
PyPIpydantic-settings>=2.14.2,<3octopoes/pyproject.toml
PyPIhttpx>=0.28.1,<0.29octopoes/pyproject.toml
PyPIlink-shorteners>=1.11.0,<2octopoes/pyproject.toml
PyPIopentelemetry-apioctopoes/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-commonoctopoes/pyproject.toml
PyPIopentelemetry-instrumentation-asgioctopoes/pyproject.toml
PyPIopentelemetry-instrumentation-dbapioctopoes/pyproject.toml
PyPIopentelemetry-protooctopoes/pyproject.toml
PyPIopentelemetry-semantic-conventionsoctopoes/pyproject.toml
PyPIopentelemetry-util-httpoctopoes/pyproject.toml
PyPIfastapi-slim>=0.115.2octopoes/pyproject.toml
PyPIstructlog>=25.2.0,<26octopoes/pyproject.toml
PyPIasgiref>=3.8.1,<4octopoes/pyproject.toml
PyPIsetuptools>80,<82octopoes/pyproject.toml
PyPIrequests>=2.33.0,<3octopoes/pyproject.toml
PyPIpygments>=2.20.0octopoes/pyproject.toml
PyPIwrapt>=2.1.2octopoes/pyproject.toml
PyPIattrs>=26.1.0octopoes/pyproject.toml
PyPIurllib3>=2.7.0octopoes/pyproject.toml
PyPIidna>=3.15octopoes/pyproject.toml
PyPIwebob>=1.8.10octopoes/pyproject.toml
PyPIstarlette>=1.3.1octopoes/pyproject.toml
PyPIsoupsieve>=2.8.4octopoes/pyproject.toml
PyPIsphinx>=8.1.3,<9pyproject.toml
PyPIsphinx_rtd_theme>=3.0.2,<4pyproject.toml
PyPIsphinxcontrib-mermaid>=1.0.0,<3pyproject.toml
PyPImyst-parser>=4.0.1,<5pyproject.toml
PyPIsettings-doc>=4.3.2,<5pyproject.toml
PyPIcolorama==0.4.6pyproject.toml
PyPIautodoc-pydantic>=2.2.0,<3pyproject.toml
PyPIcroniter>=6.0.0,<7pyproject.toml
PyPIjsonschema>=4.17.0,<5pyproject.toml
PyPIpygments>=2.20.0pyproject.toml
PyPIrequests>=2.33.0,<3pyproject.toml
PyPIattrs>=26.1.0pyproject.toml
PyPIpython-dotenv>=1.2.2pyproject.toml
PyPIurllib3>=2.7.0pyproject.toml
PyPIidna>=3.15pyproject.toml
PyPIpydantic-settings>=2.14.2pyproject.toml
npm@minvws/manon16.1.0rocky/package.json
npmd3^7.4.3rocky/package.json
PyPIbeautifulsoup4>=4.11.2,<5rocky/pyproject.toml
PyPIdjango>=5.1.14,<5.2rocky/pyproject.toml
PyPIdjango-two-factor-auth>=1.17.0,<2rocky/pyproject.toml
PyPIdjango-environ>=0.12.0,<0.13rocky/pyproject.toml
PyPIjsonschema>=4.17.0,<5rocky/pyproject.toml
PyPIphonenumbers>=9.0.4,<10rocky/pyproject.toml
PyPIpsycopg2-binary>=2.9.10rocky/pyproject.toml
PyPIpydantic>=2.7.1,<3rocky/pyproject.toml
PyPIpython-dotenv>=1.0.0,<2rocky/pyproject.toml
PyPIdjango-password-validators>=1.7.1,<2rocky/pyproject.toml
PyPIdjango-csp~=4.0rocky/pyproject.toml
PyPIdjangorestframework>=3.16.0,<4rocky/pyproject.toml
PyPIdjango-tagulous>=2.1.0,<3rocky/pyproject.toml
PyPIdrf-standardized-errors>=0.14.1,<0.15rocky/pyproject.toml
PyPIdjango-weasyprint>=2.4.0,<3rocky/pyproject.toml
PyPIstrenum>=0.4.15,<0.5rocky/pyproject.toml
PyPIdjango-rest-knox>=5.0.2,<6rocky/pyproject.toml
PyPIopentelemetry-sdkrocky/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-grpcrocky/pyproject.toml
PyPIopentelemetry-instrumentation-djangorocky/pyproject.toml
PyPIopentelemetry-instrumentation-psycopg2rocky/pyproject.toml
PyPIwhitenoise>=6.5.0,<7rocky/pyproject.toml
PyPIopentelemetry-instrumentationrocky/pyproject.toml
PyPIopentelemetry-instrumentation-fastapirocky/pyproject.toml
PyPIgranian>=2.7.4rocky/pyproject.toml
PyPIdjango-components>=0.88,<0.89rocky/pyproject.toml
PyPIpyparsing>=3.1.1,<4rocky/pyproject.toml
PyPIpydantic-settings>=2.14.2,<3rocky/pyproject.toml
PyPIopentelemetry-instrumentation-httpxrocky/pyproject.toml
PyPIhttpx>=0.27.0,<0.28rocky/pyproject.toml
PyPIopentelemetry-apirocky/pyproject.toml
PyPIopentelemetry-exporter-otlp-proto-commonrocky/pyproject.toml
PyPIopentelemetry-instrumentation-asgirocky/pyproject.toml
PyPIopentelemetry-instrumentation-dbapirocky/pyproject.toml
PyPIopentelemetry-instrumentation-wsgirocky/pyproject.toml
PyPIopentelemetry-protorocky/pyproject.toml
PyPIopentelemetry-semantic-conventionsrocky/pyproject.toml
PyPIopentelemetry-util-httprocky/pyproject.toml
PyPIstructlog>=25.3.0,<26rocky/pyproject.toml
PyPIdjango-structlog>=9.1.1,<10rocky/pyproject.toml
PyPIcron-descriptor>=2rocky/pyproject.toml
PyPIstructlog>=25.3.0,<26rocky/pyproject.toml
PyPIdjango-structlog>=9.1.1,<10rocky/pyproject.toml
PyPIweasyprint>=66rocky/pyproject.toml
PyPIrequests>=2.33.0,<3rocky/pyproject.toml
PyPIattrs>=26.1.0rocky/pyproject.toml
PyPIpillow>=12.3.0rocky/pyproject.toml
PyPIbrotlicffi>=1.2.0.1rocky/pyproject.toml
PyPIurllib3>=2.7.0rocky/pyproject.toml
PyPIidna>=3.15rocky/pyproject.toml
PyPIsoupsieve>=2.8.4rocky/pyproject.toml
全部依赖 540

来自 GitHub 依赖图的完整解析依赖集合:125 个直接依赖与 415 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
npm@minvws/manon16.1.0直接
npmd37.5.0直接
PyPIaio-pika9.6.2直接
PyPIalembic1.18.4直接
PyPIasgiref3.11.1直接
PyPIattrs25.3.0直接
PyPIattrs26.1.0直接
PyPIautodoc-pydantic2.2.0直接
PyPIbcrypt4.3.0直接
PyPIbeautifulsoup44.11.1直接
PyPIbeautifulsoup44.14.3直接
PyPIboto31.42.89直接
PyPIbrotlicffi1.2.0.1直接
PyPIcachetools7.0.5直接
PyPIcelery5.6.3直接
PyPIclick8.2.1直接
PyPIclick8.3.1直接
PyPIclick8.3.2直接
PyPIcolorama0.4.6直接
PyPIcpe1.3.1直接
PyPIcron-descriptor2.0.8直接
PyPIcroniter6.0.0直接
PyPIcroniter6.2.2直接
PyPIcryptography49.0.0直接
PyPIdefusedxml0.7.1直接
PyPIdjango5.1.15直接
PyPIdjango-components0.88直接
PyPIdjango-csp4.0直接
PyPIdjango-environ0.12.1直接
PyPIdjango-password-validators1.7.3直接
PyPIdjango-rest-knox5.0.4直接
PyPIdjango-structlog9.1.1直接
PyPIdjango-tagulous2.1.1直接
PyPIdjango-two-factor-auth1.18.1直接
PyPIdjango-weasyprint2.5.0直接
PyPIdjangorestframework3.17.1直接
PyPIdnspython2.6.1直接
PyPIdnspython2.8.0直接
PyPIdocker7.1.0直接
PyPIdrf-standardized-errors0.14.1直接
PyPIfastapi-slim0.129.1直接
PyPIforcediphttpsadapter1.1.0直接
PyPIgranian2.7.4直接
PyPIhttpx0.27.2直接
PyPIhttpx0.28.1直接
PyPIidna3.10直接
PyPIidna3.15直接
PyPIjsonschema4.24.0直接
PyPIjsonschema4.26.0直接
PyPIkombu5.6.2直接
PyPIlink-shorteners1.14.1直接
PyPImako1.3.12直接
PyPImaxminddb2.6.2直接
PyPImaxminddb2.8.2直接
PyPImmh35.2.1直接
PyPImyst-parser4.0.1直接
PyPInetaddr0.9.0直接
PyPInetaddr1.3.0直接
PyPIopentelemetry-api1.41.0直接
PyPIopentelemetry-exporter-otlp-proto-common1.41.0直接
PyPIopentelemetry-exporter-otlp-proto-grpc1.41.0直接
PyPIopentelemetry-instrumentation0.62b0直接
PyPIopentelemetry-instrumentation-asgi0.62b0直接
PyPIopentelemetry-instrumentation-dbapi0.62b0直接
PyPIopentelemetry-instrumentation-django0.62b0直接
PyPIopentelemetry-instrumentation-fastapi0.62b0直接
PyPIopentelemetry-instrumentation-httpx0.62b0直接
PyPIopentelemetry-instrumentation-psycopg20.62b0直接
PyPIopentelemetry-instrumentation-requests0.62b0直接
PyPIopentelemetry-instrumentation-wsgi0.62b0直接
PyPIopentelemetry-proto1.41.0直接
PyPIopentelemetry-sdk1.41.0直接
PyPIopentelemetry-semantic-conventions0.62b0直接
PyPIopentelemetry-util-http0.62b0直接
PyPIpasslib1.7.4直接
PyPIphonenumbers9.0.28直接
PyPIpika1.3.2直接
PyPIpillow12.3.0直接
PyPIprometheus-client0.16.0直接
PyPIprometheus-client0.19.0直接
PyPIpsycopg2-binary2.9.11直接
PyPIpyasn10.6.4直接
PyPIpydantic2.11.7直接
PyPIpydantic2.12.5直接
PyPIpydantic2.13.0直接
PyPIpydantic-settings2.14.2直接
PyPIpygments2.20.0直接
PyPIpyjwt2.13.0直接
PyPIpynacl1.6.2直接
PyPIpyparsing3.3.2直接
PyPIpython-dateutil2.9.0.post0直接
PyPIpython-dotenv1.2.2直接
PyPIpython-libnmap0.7.3直接
PyPIpython-multipart0.0.32直接
PyPIpyyaml6.0.3直接
PyPIrequests2.33.0直接
PyPIrequests2.33.1直接
PyPIretry20.9.5直接
PyPIrfc3161ng2.1.3直接
PyPIsettings-doc4.3.2直接
PyPIsetuptools81.0.0直接
PyPIsetuptools82.0.1直接
PyPIsoupsieve2.8.4直接
PyPIsphinx8.1.3直接
PyPIsphinx8.2.3直接
PyPIsphinx-rtd-theme3.1.0直接
PyPIsphinxcontrib-mermaid2.0.0直接
PyPIsqlalchemy1.4.48直接
PyPIsqlalchemy1.4.54直接
PyPIsqlalchemy2.0.49直接
PyPIstarlette1.3.1直接
PyPIstrenum0.4.15直接
PyPIstructlog25.4.0直接
PyPIstructlog25.5.0直接
PyPItanimachi0.0.6直接
PyPItldextract5.3.1直接
PyPIurllib32.7.0直接
PyPIuvicorn0.29.0直接
PyPIvalidators0.20.0直接
PyPIweasyprint68.1直接
PyPIwebob1.8.10直接
PyPIwhitenoise6.12.0直接
PyPIwpscan-out-parse1.9.3直接
PyPIwrapt1.17.3直接
PyPIwrapt2.1.2直接
npm@babel/code-frame7.18.6间接
npm@babel/helper-validator-identifier7.18.6间接
npm@babel/highlight7.18.6间接
npm@jridgewell/gen-mapping0.3.2间接
npm@jridgewell/resolve-uri3.0.8间接
npm@jridgewell/set-array1.1.2间接
npm@jridgewell/source-map0.3.2间接
npm@jridgewell/sourcemap-codec1.4.14间接
npm@jridgewell/trace-mapping0.3.14间接
npm@lezer/common0.15.12间接
npm@lezer/lr0.15.8间接
npm@lmdb/lmdb-darwin-arm642.5.2间接
npm@lmdb/lmdb-darwin-x642.5.2间接
npm@lmdb/lmdb-linux-arm2.5.2间接
npm@lmdb/lmdb-linux-arm642.5.2间接
npm@lmdb/lmdb-linux-x642.5.2间接
npm@lmdb/lmdb-win32-x642.5.2间接
npm@mischnic/json-sourcemap0.1.0间接
npm@msgpackr-extract/msgpackr-extract-darwin-arm643.0.2间接
npm@msgpackr-extract/msgpackr-extract-darwin-x643.0.2间接
npm@msgpackr-extract/msgpackr-extract-linux-arm3.0.2间接
npm@msgpackr-extract/msgpackr-extract-linux-arm643.0.2间接
npm@msgpackr-extract/msgpackr-extract-linux-x643.0.2间接
npm@msgpackr-extract/msgpackr-extract-win32-x643.0.2间接
npm@parcel/bundler-default2.6.2间接
npm@parcel/cache2.6.2间接
npm@parcel/codeframe2.6.2间接
npm@parcel/compressor-raw2.6.2间接
npm@parcel/config-default2.6.2间接
npm@parcel/core2.6.2间接
npm@parcel/css1.10.1间接
npm@parcel/css-darwin-arm641.10.1间接
npm@parcel/css-darwin-x641.10.1间接
npm@parcel/css-linux-arm-gnueabihf1.10.1间接
npm@parcel/css-linux-arm64-gnu1.10.1间接
npm@parcel/css-linux-arm64-musl1.10.1间接
npm@parcel/css-linux-x64-gnu1.10.1间接
npm@parcel/css-linux-x64-musl1.10.1间接
npm@parcel/css-win32-x64-msvc1.10.1间接
npm@parcel/diagnostic2.6.2间接
npm@parcel/events2.6.2间接
npm@parcel/fs2.6.2间接
npm@parcel/fs-search2.6.2间接
npm@parcel/graph2.6.2间接
npm@parcel/hash2.6.2间接
npm@parcel/logger2.6.2间接
npm@parcel/markdown-ansi2.6.2间接
npm@parcel/namer-default2.6.2间接
npm@parcel/node-resolver-core2.6.2间接
npm@parcel/optimizer-css2.6.2间接
npm@parcel/optimizer-htmlnano2.6.2间接
npm@parcel/optimizer-image2.6.2间接
npm@parcel/optimizer-svgo2.6.2间接
npm@parcel/optimizer-terser2.6.2间接
npm@parcel/package-manager2.6.2间接
npm@parcel/packager-css2.6.2间接
npm@parcel/packager-html2.6.2间接
npm@parcel/packager-js2.6.2间接
npm@parcel/packager-raw2.6.2间接
npm@parcel/packager-svg2.6.2间接
npm@parcel/plugin2.6.2间接
npm@parcel/reporter-cli2.6.2间接
npm@parcel/reporter-dev-server2.6.2间接
npm@parcel/resolver-default2.6.2间接
npm@parcel/runtime-browser-hmr2.6.2间接
npm@parcel/runtime-js2.6.2间接
npm@parcel/runtime-react-refresh2.6.2间接
npm@parcel/runtime-service-worker2.6.2间接
npm@parcel/source-map2.0.5间接
npm@parcel/transformer-babel2.6.2间接
npm@parcel/transformer-css2.6.2间接
npm@parcel/transformer-html2.6.2间接
npm@parcel/transformer-image2.6.2间接
npm@parcel/transformer-js2.6.2间接
npm@parcel/transformer-json2.6.2间接
npm@parcel/transformer-postcss2.6.2间接
npm@parcel/transformer-posthtml2.6.2间接
npm@parcel/transformer-raw2.6.2间接
npm@parcel/transformer-react-refresh-wrap2.6.2间接
npm@parcel/transformer-sass2.6.2间接
npm@parcel/transformer-svg2.6.2间接
npm@parcel/types2.6.2间接
npm@parcel/utils2.6.2间接
npm@parcel/watcher2.0.5间接
npm@parcel/workers2.6.2间接
npm@swc/helpers0.4.3间接
npm@types/node22.1.0间接
npm@types/parse-json4.0.0间接
npmabortcontroller-polyfill1.7.3间接
npmacorn8.7.1间接
npmansi-styles3.2.1间接
npmansi-styles4.3.0间接
npmanymatch3.1.2间接
npmbase-x3.0.11间接
npmbinary-extensions2.2.0间接
npmboolbase1.0.0间接
npmbraces3.0.3间接
npmbrowserslist4.21.1间接
npmbuffer-from1.1.2间接
npmcallsites3.1.0间接
npmcaniuse-lite1.0.30001361间接
npmchalk2.4.2间接
npmchalk4.1.2间接
npmchokidar3.5.3间接
npmchrome-trace-event1.0.3间接
npmclone2.1.2间接
npmcolor-convert1.9.3间接
npmcolor-convert2.0.1间接
npmcolor-name1.1.3间接
npmcolor-name1.1.4间接
npmcommander2.20.3间接
npmcommander7.2.0间接
npmcosmiconfig7.0.1间接
npmcss-select4.3.0间接
npmcss-tree1.1.3间接
npmcss-what6.1.0间接
npmcsso4.2.0间接
npmd3-array3.1.6间接
npmd3-axis3.0.0间接
npmd3-brush3.0.0间接
npmd3-chord3.0.1间接
npmd3-color3.1.0间接
npmd3-contour3.1.0间接
npmd3-delaunay6.0.2间接
npmd3-dispatch3.0.1间接
npmd3-drag3.0.0间接
npmd3-dsv3.0.1间接
npmd3-ease3.0.1间接
npmd3-fetch3.0.1间接
npmd3-force3.0.0间接
npmd3-format3.1.0间接
npmd3-geo3.0.1间接
npmd3-hierarchy3.1.2间接
npmd3-interpolate3.0.1间接
npmd3-path3.0.1间接
npmd3-polygon3.0.1间接
npmd3-quadtree3.0.1间接
npmd3-random3.0.1间接
npmd3-scale4.0.2间接
npmd3-scale-chromatic3.0.0间接
npmd3-selection3.0.0间接
npmd3-shape3.1.0间接
npmd3-time3.0.0间接
npmd3-time-format4.1.0间接
npmd3-timer3.0.1间接
npmd3-transition3.0.1间接
npmd3-zoom3.0.0间接
npmdelaunator5.0.0间接
npmdetect-libc1.0.3间接
npmdom-serializer1.4.1间接
npmdomelementtype2.3.0间接
npmdomhandler4.3.1间接
npmdomutils2.8.0间接
npmdotenv7.0.0间接
npmdotenv-expand5.1.0间接
npmelectron-to-chromium1.4.174间接
npmentities2.2.0间接
npmentities3.0.1间接
npmerror-ex1.3.2间接
npmescalade3.1.1间接
npmescape-string-regexp1.0.5间接
npmfill-range7.1.1间接
npmfsevents2.3.2间接
npmget-port4.2.0间接
npmglob-parent5.1.2间接
npmglobals13.15.0间接
npmhas-flag3.0.0间接
npmhas-flag4.0.0间接
npmhtmlnano2.0.2间接
npmhtmlparser27.2.0间接
npmiconv-lite0.6.3间接
npmimmutable4.3.9间接
npmimport-fresh3.3.0间接
npminternmap2.0.3间接
npmis-arrayish0.2.1间接
npmis-binary-path2.1.0间接
npmis-extglob2.1.1间接
npmis-glob4.0.3间接
npmis-json2.0.1间接
npmis-number7.0.0间接
npmjs-tokens4.0.0间接
npmjson-parse-even-better-errors2.3.1间接
npmjson52.2.3间接
npmlines-and-columns1.2.4间接
npmlmdb2.5.2间接
npmmdn-data2.0.14间接
npmmsgpackr1.10.1间接
npmmsgpackr-extract3.0.2间接
npmnode-addon-api3.2.1间接
npmnode-addon-api4.3.0间接
npmnode-gyp-build4.4.0间接
npmnode-gyp-build-optional-packages5.0.3间接
npmnode-gyp-build-optional-packages5.0.7间接
npmnode-releases2.0.5间接
npmnormalize-path3.0.0间接
npmnth-check2.1.1间接
npmnullthrows1.1.1间接
npmordered-binary1.3.0间接
npmparcel2.6.2间接
npmparent-module1.0.1间接
npmparse-json5.2.0间接
npmpath-type4.0.0间接
npmpicocolors1.0.0间接
npmpicomatch2.3.2间接
npmpostcss-value-parser4.2.0间接
npmposthtml0.16.6间接
npmposthtml-parser0.10.2间接
npmposthtml-parser0.11.0间接
npmposthtml-render3.0.0间接
npmprettier2.7.1间接
npmreact-error-overlay6.0.9间接
npmreact-refresh0.9.0间接
npmreaddirp3.6.0间接
npmregenerator-runtime0.13.9间接
npmresolve-from4.0.0间接
npmrobust-predicates3.0.1间接
npmrw1.3.3间接
npmsafe-buffer5.2.1间接
npmsafer-buffer2.1.2间接
npmsass1.53.0间接
npmsax1.5.0间接
npmsemver5.7.2间接
npmsource-map0.6.1间接
npmsource-map-js1.0.2间接
npmsource-map-support0.5.21间接
npmstable0.1.8间接
npmsupports-color5.5.0间接
npmsupports-color7.2.0间接
npmsvgo2.8.3间接
npmterm-size2.2.1间接
npmterser5.15.1间接
npmtimsort0.3.0间接
npmto-regex-range5.0.1间接
npmtslib2.4.0间接
npmtype-fest0.20.2间接
npmundici-types6.13.0间接
npmupdate-browserslist-db1.0.4间接
npmutility-types3.10.0间接
npmv8-compile-cache2.3.0间接
npmweak-lru-cache1.2.2间接
npmxxhash-wasm0.4.2间接
npmyaml1.10.2间接
PyPIaiormq6.9.4间接
PyPIalabaster1.0.0间接
PyPIamqp5.3.1间接
PyPIannotated-doc0.0.4间接
PyPIannotated-types0.7.0间接
PyPIansicolors1.1.8间接
PyPIanyio4.12.1间接
PyPIanyio4.13.0间接
PyPIanyio4.9.0间接
PyPIbabel2.18.0间接
PyPIbilliard4.2.4间接
PyPIboefjes0.0.1.dev1间接
PyPIbotocore1.42.89间接
PyPIbrotli1.2.0间接
PyPIbytes0.0.1.dev1间接
PyPIcensys2.1.8间接
PyPIcertifi2025.4.26间接
PyPIcertifi2025.6.15间接
PyPIcertifi2026.1.4间接
PyPIcertifi2026.2.25间接
PyPIcffi2.0.0间接
PyPIcharset-normalizer3.4.4间接
PyPIcharset-normalizer3.4.7间接
PyPIclick-didyoumean0.3.1间接
PyPIclick-plugins1.1.1.2间接
PyPIclick-repl0.3.0间接
PyPIcoverage7.13.5间接
PyPIcssbeautifier1.15.4间接
PyPIcssselect20.9.0间接
PyPIcveapi0.0.1.dev1间接
PyPIdecorator5.2.1间接
PyPIdjango-admin-auto-tests0.1.2间接
PyPIdjango-formtools2.5.1间接
PyPIdjango-ipware7.0.1间接
PyPIdjango-otp1.7.0间接
PyPIdjango-phonenumber-field8.4.0间接
PyPIdjlint1.36.4间接
PyPIdocutils0.21.2间接
PyPIeditorconfig0.17.1间接
PyPIexceptiongroup1.3.1间接
PyPIfactory-boy3.3.3间接
PyPIfaker40.13.0间接
PyPIfastapi0.135.3间接
PyPIfilelock3.25.2间接
PyPIfonttools4.62.1间接
PyPIgoogleapis-common-protos1.74.0间接
PyPIgreenlet3.4.0间接
PyPIgrpcio1.75.1间接
PyPIgrpcio1.80.0间接
PyPIgrpcio-tools1.75.1间接
PyPIh110.16.0间接
PyPIhttpcore1.0.9间接
PyPIimagesize1.4.1间接
PyPIimportlib-metadata8.7.1间接
PyPIinflection0.3.1间接
PyPIiniconfig2.3.0间接
PyPIjinja23.1.6间接
PyPIjmespath1.1.0间接
PyPIjsbeautifier1.15.4间接
PyPIjson50.14.0间接
PyPIjsonpatch1.33间接
PyPIjsonpointer3.1.1间接
PyPIjsonschema-specifications2025.4.1间接
PyPIjsonschema-specifications2025.9.1间接
PyPIlazy-object-proxy1.12.0间接
PyPIlegacy-cgi2.6.4间接
PyPIloguru0.7.3间接
PyPImarkdown-it-py3.0.0间接
PyPImarkupsafe3.0.3间接
PyPImdit-py-plugins0.5.0间接
PyPImdurl0.1.2间接
PyPImodel-mommy2.0.0间接
PyPImula0.0.1.dev1间接
PyPImultidict6.7.1间接
PyPInatsort8.4.0间接
PyPIoctopoes0.0.1.dev1间接
PyPIopenkat0.0.1.dev1间接
PyPIoverrides7.7.0间接
PyPIpackaging26.0间接
PyPIpamqp3.3.0间接
PyPIpathspec1.0.4间接
PyPIpluggy1.6.0间接
PyPIprompt-toolkit3.0.52间接
PyPIpropcache0.4.1间接
PyPIprotobuf6.32.1间接
PyPIprotobuf6.33.6间接
PyPIpsutil7.2.2间接
PyPIpsycopg22.9.11间接
PyPIpyasn1-modules0.4.2间接
PyPIpybinaryedge0.5间接
PyPIpycparser3.0间接
PyPIpydantic-core2.33.2间接
PyPIpydantic-core2.41.5间接
PyPIpydantic-core2.46.0间接
PyPIpydicom2.4.5间接
PyPIpydyf0.12.1间接
PyPIpynetdicom2.0.2间接
PyPIpyphen0.17.2间接
PyPIpytest7.4.4间接
PyPIpytest9.0.3间接
PyPIpytest-assert-utils0.3.1间接
PyPIpytest-common-subject1.1.2间接
PyPIpytest-cov7.1.0间接
PyPIpytest-django4.12.0间接
PyPIpytest-drf1.1.3间接
PyPIpytest-env1.6.0间接
PyPIpytest-fixture-order0.1.5间接
PyPIpytest-httpx0.30.0间接
PyPIpytest-httpx0.36.2间接
PyPIpytest-lambda1.3.0间接
PyPIpytest-mock3.15.1间接
PyPIpytest-timeout2.4.0间接
PyPIpython-ipware3.0.0间接
PyPIpytz2025.2间接
PyPIpywin32311间接
PyPIqrcode8.2间接
PyPIreferencing0.36.2间接
PyPIreferencing0.37.0间接
PyPIregex2026.4.4间接
PyPIrequests-file3.0.1间接
PyPIreturns0.26.0间接
PyPIreturns0.27.0间接
PyPIrobotframework7.4.2间接
PyPIrobotframework-assertion-engine3.5.0间接
PyPIrobotframework-browser19.10.1间接
PyPIrobotframework-debuglibrary2.5.0间接
PyPIrobotframework-httplibrary0.4.2间接
PyPIrobotframework-otp1.1.0间接
PyPIrobotframework-postgresqldb2.0.0间接
PyPIrobotframework-pythonlibcore4.5.0间接
PyPIrobotframework-requests0.9.7间接
PyPIrocky0.0.1.dev1间接
PyPIroman-numerals4.1.0间接
PyPIroman-numerals-py4.1.0间接
PyPIrpds-py0.26.0间接
PyPIrpds-py0.30.0间接
PyPIs3transfer0.16.0间接
PyPIsectxt0.9.0间接
PyPIseedir0.5.1间接
PyPIselectolax0.4.7间接
PyPIshodan1.25.0间接
PyPIsix1.17.0间接
PyPIsniffio1.3.1间接
PyPIsnowballstemmer3.0.1间接
PyPIsphinxcontrib-applehelp2.0.0间接
PyPIsphinxcontrib-devhelp2.0.0间接
PyPIsphinxcontrib-htmlhelp2.1.0间接
PyPIsphinxcontrib-jquery4.1间接
PyPIsphinxcontrib-jsmath1.0.1间接
PyPIsphinxcontrib-qthelp2.0.0间接
PyPIsphinxcontrib-serializinghtml2.0.0间接
PyPIsqlparse0.5.5间接
PyPItinycss21.5.1间接
PyPItinyhtml52.1.0间接
PyPItomli2.4.0间接
PyPItomli2.4.1间接
PyPItqdm4.67.3间接
PyPItyping-extensions4.13.2间接
PyPItyping-extensions4.14.0间接
PyPItyping-extensions4.15.0间接
PyPItyping-inspection0.4.1间接
PyPItyping-inspection0.4.2间接
PyPItzdata2026.1间接
PyPItzlocal5.3.1间接
PyPIvine5.1.0间接
PyPIwaitress3.0.2间接
PyPIwcwidth0.6.0间接
PyPIwebencodings0.5.1间接
PyPIwebtest3.0.7间接
PyPIwin32-setctime1.2.0间接
PyPIyarl1.23.0间接
PyPIzipp3.23.1间接
PyPIzopfli0.4.1间接
依赖安全公告 0

安装 pypi:mula@1.6.1 会引入 12 个包(直接与传递):其中 0 个存在已知公告,0 个为直接依赖。

没有已知公告影响已评估的依赖。

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 120340,
      "has_wiki": false,
      "homepage": "https://openkat.nl",
      "languages": {
        "HTML": 2567870,
        "Mako": 1514,
        "SCSS": 759135,
        "Shell": 38853,
        "Python": 3260741,
        "PLpgSQL": 2048,
        "Makefile": 44151,
        "Dockerfile": 18905,
        "JavaScript": 66480,
        "RobotFramework": 41438
      },
      "pushed_at": "2026-08-01T11:24:38Z",
      "created_at": "2022-06-27T12:52:13Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-31T09:40:49Z",
      "description": "OpenKAT scans networks, finds vulnerabilities and creates accessible reports. It integrates the most widely used network tools and scanning software into a modular framework, accesses external databases such as shodan, and combines the information from all these sources into clear reports. It also includes lots of cat hair.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "EUPL-1.2",
      "default_branch": "main",
      "license_spdx_raw": "EUPL-1.2",
      "primary_language": "Python",
      "significant_languages": [
        "Python",
        "HTML",
        "SCSS"
      ]
    },
    "owner": {
      "blog": "https://www.ssc-ict.nl/",
      "name": "SSC-ICT Innovatie",
      "type": "Organization",
      "login": "SSC-ICT-Innovatie",
      "company": null,
      "location": "The Hague",
      "followers": 11,
      "avatar_url": "https://avatars.githubusercontent.com/u/39026699?v=4",
      "created_at": "2018-05-06T12:27:49Z",
      "is_verified": null,
      "public_repos": 25,
      "account_age_days": 3010
    },
    "license": {
      "state": "standard",
      "spdx_id": "EUPL-1.2",
      "raw_spdx": "EUPL-1.2",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.22.1",
          "kind": "patch",
          "published_at": "2026-07-14T12:34:38Z"
        },
        {
          "tag": "v1.22.0",
          "kind": "minor",
          "published_at": "2026-04-30T07:40:42Z"
        },
        {
          "tag": "v1.22.0rc1",
          "kind": "other",
          "published_at": "2026-04-10T19:21:29Z"
        },
        {
          "tag": "v1.21.0",
          "kind": "minor",
          "published_at": "2026-03-05T14:26:13Z"
        },
        {
          "tag": "v1.21.0rc1",
          "kind": "other",
          "published_at": "2026-02-17T08:22:00Z"
        },
        {
          "tag": "v1.20.1",
          "kind": "patch",
          "published_at": "2025-08-27T09:40:47Z"
        },
        {
          "tag": "v1.20.0",
          "kind": "minor",
          "published_at": "2025-08-01T11:01:52Z"
        },
        {
          "tag": "v1.20.0rc2",
          "kind": "other",
          "published_at": "2025-07-21T14:41:53Z"
        },
        {
          "tag": "v1.20.0rc1",
          "kind": "other",
          "published_at": "2025-07-18T09:03:14Z"
        },
        {
          "tag": "v1.19.1",
          "kind": "patch",
          "published_at": "2025-06-27T10:29:49Z"
        },
        {
          "tag": "v1.19.0",
          "kind": "minor",
          "published_at": "2025-06-16T12:45:11Z"
        },
        {
          "tag": "v1.19.0rc1",
          "kind": "other",
          "published_at": "2025-05-20T15:12:27Z"
        },
        {
          "tag": "v1.18.2",
          "kind": "patch",
          "published_at": "2025-04-14T10:58:08Z"
        },
        {
          "tag": "v1.18.1",
          "kind": "patch",
          "published_at": "2025-04-04T14:41:34Z"
        },
        {
          "tag": "v1.18.0",
          "kind": "minor",
          "published_at": "2025-03-04T15:11:24Z"
        },
        {
          "tag": "v1.18.0rc1",
          "kind": "other",
          "published_at": "2025-02-10T13:13:47Z"
        },
        {
          "tag": "v1.17.0",
          "kind": "minor",
          "published_at": "2024-10-03T15:30:01Z"
        },
        {
          "tag": "v1.17.0rc1",
          "kind": "other",
          "published_at": "2024-09-06T10:08:29Z"
        },
        {
          "tag": "v1.16.0",
          "kind": "minor",
          "published_at": "2024-08-13T13:40:46Z"
        },
        {
          "tag": "v1.16.0rc2",
          "kind": "other",
          "published_at": "2024-07-15T19:01:05Z"
        },
        {
          "tag": "v1.16.0rc1",
          "kind": "other",
          "published_at": "2024-07-08T19:04:10Z"
        },
        {
          "tag": "v1.15.1",
          "kind": "patch",
          "published_at": "2024-05-27T15:29:42Z"
        },
        {
          "tag": "v1.15.0",
          "kind": "minor",
          "published_at": "2024-04-15T11:33:44Z"
        },
        {
          "tag": "v1.15.0rc1",
          "kind": "other",
          "published_at": "2024-03-07T16:10:24Z"
        },
        {
          "tag": "v1.14.2",
          "kind": "patch",
          "published_at": "2024-03-05T11:31:09Z"
        },
        {
          "tag": "v1.14.1",
          "kind": "patch",
          "published_at": "2024-02-09T11:37:57Z"
        },
        {
          "tag": "v1.14.0",
          "kind": "minor",
          "published_at": "2023-12-31T17:55:58Z"
        },
        {
          "tag": "v1.14.0rc1",
          "kind": "other",
          "published_at": "2023-12-19T14:09:21Z"
        },
        {
          "tag": "v1.13.0",
          "kind": "minor",
          "published_at": "2023-12-15T15:19:59Z"
        },
        {
          "tag": "v1.13.0rc2",
          "kind": "other",
          "published_at": "2023-10-23T12:12:06Z"
        },
        {
          "tag": "v1.12.1",
          "kind": "patch",
          "published_at": "2023-10-19T09:24:18Z"
        },
        {
          "tag": "v1.13.0rc1",
          "kind": "other",
          "published_at": "2023-10-19T09:31:28Z"
        },
        {
          "tag": "v1.12.0",
          "kind": "minor",
          "published_at": "2023-10-05T16:12:09Z"
        },
        {
          "tag": "v1.11.1",
          "kind": "patch",
          "published_at": "2023-09-21T15:26:23Z"
        },
        {
          "tag": "v1.12.0rc2",
          "kind": "other",
          "published_at": "2023-09-21T15:05:19Z"
        },
        {
          "tag": "v1.12.0rc1",
          "kind": "other",
          "published_at": "2023-09-19T13:53:07Z"
        },
        {
          "tag": "v1.11.0",
          "kind": "minor",
          "published_at": "2023-08-31T11:53:22Z"
        },
        {
          "tag": "v1.11.0rc1",
          "kind": "other",
          "published_at": "2023-08-22T12:58:26Z"
        },
        {
          "tag": "v1.10.2",
          "kind": "patch",
          "published_at": "2023-08-22T12:52:27Z"
        },
        {
          "tag": "v1.10.1",
          "kind": "patch",
          "published_at": "2023-08-07T15:12:26Z"
        },
        {
          "tag": "v1.10.0",
          "kind": "minor",
          "published_at": "2023-07-31T13:27:31Z"
        },
        {
          "tag": "v1.10.0rc2",
          "kind": "other",
          "published_at": "2023-07-19T13:59:43Z"
        },
        {
          "tag": "v1.10.0rc1",
          "kind": "other",
          "published_at": "2023-06-27T11:54:24Z"
        },
        {
          "tag": "v1.9.0",
          "kind": "minor",
          "published_at": "2023-06-12T13:54:50Z"
        },
        {
          "tag": "v1.9.0rc2",
          "kind": "other",
          "published_at": "2023-06-02T12:29:27Z"
        },
        {
          "tag": "v1.8.1",
          "kind": "patch",
          "published_at": "2023-06-02T12:24:57Z"
        },
        {
          "tag": "v1.9.0rc1",
          "kind": "other",
          "published_at": "2023-05-23T14:35:25Z"
        },
        {
          "tag": "v1.8.0",
          "kind": "minor",
          "published_at": "2023-05-15T09:21:31Z"
        },
        {
          "tag": "v1.8.0rc2",
          "kind": "other",
          "published_at": "2023-04-25T09:56:18Z"
        },
        {
          "tag": "v1.7.1",
          "kind": "patch",
          "published_at": "2023-04-24T15:22:56Z"
        },
        {
          "tag": "v1.8.0rc1",
          "kind": "other",
          "published_at": "2023-04-19T07:53:32Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2023-04-08T09:44:55Z"
        },
        {
          "tag": "v1.7.0rc4",
          "kind": "other",
          "published_at": "2023-04-05T17:24:21Z"
        },
        {
          "tag": "v1.7.0rc3",
          "kind": "other",
          "published_at": "2023-03-23T09:54:16Z"
        },
        {
          "tag": "v1.7.0rc2",
          "kind": "other",
          "published_at": "2023-03-22T09:27:30Z"
        },
        {
          "tag": "v1.7.0rc1",
          "kind": "other",
          "published_at": "2023-03-09T13:44:11Z"
        },
        {
          "tag": "v1.6.2",
          "kind": "patch",
          "published_at": "2023-03-03T11:09:05Z"
        },
        {
          "tag": "v1.6.1",
          "kind": "patch",
          "published_at": "2023-03-03T09:22:00Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2023-03-02T09:42:40Z"
        },
        {
          "tag": "v1.6.0rc3",
          "kind": "other",
          "published_at": "2023-02-15T16:34:15Z"
        },
        {
          "tag": "v1.6.0rc2",
          "kind": "other",
          "published_at": "2023-02-02T09:31:05Z"
        },
        {
          "tag": "v1.6.0rc1",
          "kind": "other",
          "published_at": "2023-02-01T16:12:54Z"
        },
        {
          "tag": "v1.5.2",
          "kind": "patch",
          "published_at": "2023-02-13T16:17:18Z"
        },
        {
          "tag": "v1.5.1",
          "kind": "patch",
          "published_at": "2023-02-02T09:29:10Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2023-02-01T14:29:26Z"
        },
        {
          "tag": "v1.5.0rc3",
          "kind": "other",
          "published_at": "2023-01-20T16:52:28Z"
        },
        {
          "tag": "v1.5.0rc2",
          "kind": "other",
          "published_at": "2023-01-19T13:40:29Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2023-01-02T15:13:05Z"
        },
        {
          "tag": "v1.4.0rc2",
          "kind": "other",
          "published_at": "2022-12-23T10:02:50Z"
        },
        {
          "tag": "v1.4.0rc1",
          "kind": "other",
          "published_at": "2022-12-20T10:00:34Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2022-11-15T10:04:38Z"
        },
        {
          "tag": "v1.2.4",
          "kind": "patch",
          "published_at": "2022-10-20T15:07:53Z"
        },
        {
          "tag": "v1.2.3",
          "kind": "patch",
          "published_at": "2022-10-06T13:02:32Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2022-09-26T10:36:06Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2022-08-17T07:54:16Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "247b4429a081ba93766f98d23c62e7ff0589da35",
          "body": "Co-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": false,
          "headline": "Add bytes API coverage for /normalizer_metas and auth edge cases (#5114)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-07-31T09:39:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5357da7f77f22e778cbe02bd1a52803a0043df51",
          "body": "…ve (#5113)\n\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": false,
          "headline": "Add normalizer unit tests for kat_shodan, kat_wpscan and kat_nuclei_c…",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-07-31T09:32:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0275446810a065abeb79f6e72d5b3cc318a0d094",
          "body": "Use indemnification_present (provided by OrganizationView context)\ninstead of the never-set organization_indemnification on the OOI detail\npage, switch the past-due/historic gating from the never-set\nooi_past_due to historic_view across the detail templates and partials,\nfix the undefined member. references to organization_member., and fix\nget_current_ooi to use get_single_ooi for historic views.",
          "is_bot": false,
          "headline": "Fix incorrect indemnification present check in template (#5226)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-07-30T14:55:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e278c8d3199d1ab96e6edb251dbce23d07e0ff7",
          "body": null,
          "is_bot": false,
          "headline": "Also show the raw file when showing an ooi observation (#5236)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-07-29T13:12:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e4d3e30d6799005d547a4f4c1e5710770f61fa3",
          "body": "Co-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update various deps due to upstream security fixes (#5235)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-07-29T13:00:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d517b3f164fd5c4ae6b0fc6f395b76be10484b65",
          "body": "… (#5254)\n\nRe-add the 'Show clearance level inheritance' link and explanation\ntable on the clearance level tab of the OOI detail page, align the\nedit-clearance-level button and modal visibility conditions, and\nremove an unused form wrapper.",
          "is_bot": false,
          "headline": "Re-introduce the clearance level explanation table, as it was missing…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-07-29T12:44:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3250ea0ae8c34645e4d0ab0950e1ba32434d9a2b",
          "body": "… a non usefull mimetype (#5256)\n\nRemove the try/except in kat_webpage_analysis so a RequestException\nbubbles up and triggers the regular error flow (error/boefje raw +\ntask status failed) instead of storing a raw with the unconsumed\nopenkat-http/error mimetype and reporting the task as completed.",
          "is_bot": false,
          "headline": "Make the boefje crash when it sees an exception, instead of returning…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-07-29T12:22:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0ede8cb254bb5b7be43230a8288eb551c0f1261",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump immutable from 4.3.8 to 4.3.9 in /rocky (#5251)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-23T07:49:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b4fdc1fce909ef847858088f8302a13d6ca549c",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump svgo from 2.8.2 to 2.8.3 in /rocky (#5250)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-23T07:19:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d10f946fe4a257f51d1ae6a9e5501f3ff0b3d87",
          "body": null,
          "is_bot": false,
          "headline": "Add integration tests for scheduler bounded/partial counts (#5225)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-07-08T17:21:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b5edd4056141940d2b8abdc815af08d616a27f3",
          "body": "…… (#5166)\n\nCo-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Allow for bounded/unpartial counts to be returned from the scheduler …",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-07-08T14:03:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d41f7f37ba0e3872123009cd1a0e84fd0f11093",
          "body": null,
          "is_bot": false,
          "headline": "Remove duplicate mime-type append in Bytes create_raw (#5224)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-07-08T07:39:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac2062da2e49d5358ba59c2daa19684a2b761366",
          "body": "… (#5149)\n\nSwap the Katalogus organization-list dependency for direct XTDB\n`list_nodes()` queries in the scanprofiles propagation daemon and the\nmula scheduler, removing one inter-service dependency.\n\n- scanprofiles daemon queries XTDB for the org list (empty-state safe)\n- new octopoes GET /health/o\n[…]\nnow targets it\n- XTDBHTTPClient owns the /_xtdb base-url suffix consistently\n- list_nodes() hardened to return [] on empty state\n- mula scan_level filter made optional; post_pop() signature simplified",
          "is_bot": false,
          "headline": "Use direct XTDB client for the organization list instead of Katalogus…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-07-02T19:22:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bcd1bc284d0c22e8f68bf2d6bf1fcd6508fe7a20",
          "body": "Pin starlette>=1.3.1 and pydantic-settings>=2.14.2 across boefjes and the\nroot docs/tooling environment to clear the associated security advisories.\n\n- boefjes: starlette 1.0.0 -> 1.3.1 (FormParser DoS-limit hardening),\n  pydantic-settings 2.13.1 -> 2.14.2, starlette promoted to a direct dep\n- root: pydantic-settings resolves 2.12.0 -> 2.14.2 (GHSA-4xgf-cpjx-pc3j,\n  symlink traversal in NestedSecretsSettingsSource)\n\nCloses #5200\nCloses #5204\nCloses #5216",
          "is_bot": false,
          "headline": "Pin starlette and pydantic-settings to safe versions (#5218)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-07-02T18:49:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1be6378970ab6e811daf729436cc83d85b83a296",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump actions/checkout from 6.0.2 to 7.0.0 (#5221)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-02T11:45:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b53da5f34d04f0ab37e4242edabe64e50cd5f48",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump softprops/action-gh-release from 3.0.0 to 3.0.1 (#5219)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-02T11:39:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55b4a587ce1b5fad01a0ceb1f6faccc05cc27872",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump actions/setup-python from 6.2.0 to 6.3.0 (#5220)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-02T10:52:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f6271851183b5a0bd79878f2213236e3d1857a7",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump actions/cache from 5.0.5 to 6.1.0 (#5222)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-02T10:36:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01e781995dbc353b4a48d7394aecaf339eea5197",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump docker/metadata-action from 6.0.0 to 6.1.0 (#5223)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-02T10:34:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13322ba289ff36585ebf8db6a23cd470e052d9f0",
          "body": "Add compound indexes on the mula tasks/schedules tables and the bytes boefje_meta table to eliminate sequential scans behind the task-list and stats queries on large/long-running installs.\n\n- mula migrations 0012 + 0013 create the new task/schedule indexes (org+type+created_at, queue polling, stats,\n[…]\n_per_hour switches to COUNT(*) for index-only scans\n\nFollow-up: backport migrations 0012, 0013 and 2380422e773e to the 1.22 branch; note the index-build window in the release notes for large installs.",
          "is_bot": false,
          "headline": "Add compound indexes for task list and stats queries (#5165)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-06-30T19:23:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "67522ed8ca131b4c7e47ed01b5365a16b82bc141",
          "body": "…n versions (#5179)\n\nCo-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add debian13 / Ubuntu 24.04 build targets with their respective pytho…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-06-28T19:35:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4733d47a7da4691cb1793648017b5e5a9a0bd40",
          "body": "Co-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Refactor sed command to find and replace in services (#5211)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-06-28T19:17:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1424f47b0065cbcf16e45f25c5947c20c9d66da",
          "body": "Co-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": false,
          "headline": "Add unit tests for five high-impact octopoes bits (#5112)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-06-24T15:11:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83da99cd07788c7361443dfb4e2da6e6b00d33bd",
          "body": null,
          "is_bot": false,
          "headline": "Fix get_tree(search_types) dropping findings on descendant OOIs (#5213)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-06-24T10:58:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "06e84295c5986ce6152b019da14f311cf1f78a1c",
          "body": "…iles (#5212)\n\nPin dependencies to safe versions across all 5 Python components and regenerate uv lock + requirements files.\n\n- cryptography 46.0.7 -> 49.0.0 (boefjes, bytes)\n- starlette 1.0.0 -> 1.3.1, promoted to direct dependency (bytes, mula, octopoes)\n- pydantic-settings -> 2.14.2 (all components)\n- python-multipart 0.0.28 -> 0.0.32, pyjwt 2.12.1 -> 2.13.0 (bytes)\n- webob added as direct dependency (octopoes)\n\nCloses outstanding dependabot PRs.",
          "is_bot": false,
          "headline": "various dependency locked to safe versions, and created requirement f…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-06-23T15:15:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b281f4cd99ed357f1fd7f60d24b3ccdb70e54c1c",
          "body": null,
          "is_bot": false,
          "headline": "Fix nuclei-cve detection and harden nuclei normalizers (#5209)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-06-23T07:23:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98168f602dadc62524c2dc2360b31921b3de1d60",
          "body": "Add Debian 13 (trixie) and Ubuntu 24.04 (noble) build images and extend the build-debian-docker-image workflow matrix so the new images are built and pushed. Required by #5179.\n\nCloses #5194",
          "is_bot": false,
          "headline": "Chore/add debian13 ubuntu24.04 build image (#5195)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-06-17T18:41:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9aa2fb4f93a8fb64175281caef699c0732be90fa",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump docker/setup-buildx-action from 4.0.0 to 4.1.0 (#5180)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-11T13:23:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf2aa301dc991f52579830d2f4ec2fec714f7360",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump docker/login-action from 4.0.0 to 4.2.0 (#5182)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-10T19:27:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9db5c8c12c6b77a7c95013438147a696b412bf12",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump docker/build-push-action from 7.1.0 to 7.2.0 (#5184)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-10T17:56:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c2c44848eda04c34f245f521598cbbd6016f754",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump softprops/action-gh-release from 2.6.1 to 3.0.0 (#5183)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-10T17:10:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0ded9c2a02511afbaded7282535f9e3d82a5e69",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump github/codeql-action from 4.35.1 to 4.36.0 (#5181)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-10T11:09:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "323e699b30ce8633428e1e40d240f99c71898bc0",
          "body": "…e delete) (#5191)\n\nSigned-off-by: SAY-5 <say.apm35@gmail.com>\nCo-authored-by: SAY-5 <say.apm35@gmail.com>",
          "is_bot": false,
          "headline": "crisis_room: fix 500 after organization deletion (view guard + cascad…",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-06-05T07:15:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "012d2d4f28a994a83a19a6c123e2ec133c2e09ae",
          "body": "X509Certificate.expired raised TypeError (\"can't compare offset-naive and offset-aware datetimes\") whenever valid_until was tz-aware (e.g. \"Z\"-suffixed or \"+00:00\" timestamps coming back from XTDB), breaking the expiring_certificate bit on every run.\n\nParse valid_until with explicit \"Z\" -> \"+00:00\" \n[…]\nmatches X.509 notAfter semantics, RFC 5280 §4.1.2.5), and compare both sides in UTC.\n\nAdds a regression test asserting cert.expired is True for the \"Z\"-suffix format that breaks on main.\n\nCloses #5177",
          "is_bot": false,
          "headline": "Fix certificate expiration check to use UTC (#5178)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-06-03T15:01:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e3e052866b74d02224015597d7ad922109a530a4",
          "body": null,
          "is_bot": false,
          "headline": "upgrade various deps due upstream security fixes (#5157)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-06-03T11:02:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "760407b8f871360d5f544bc45700c126e71db0cb",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump idna from 3.10 to 3.15 in /boefjes/images (#5168)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-20T11:49:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "97d50138da710622825a46fd3d4da6f109073ecc",
          "body": "…age_analysis (#5161)\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump urllib3 from 2.6.3 to 2.7.0 in /boefjes/boefjes/plugins/kat_webp…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-12T12:32:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb551c707b9e91434a20c125bae699ad14e40950",
          "body": "…rity_txt_downloader (#5158)\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump urllib3 from 2.6.3 to 2.7.0 in /boefjes/boefjes/plugins/kat_secu…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-12T12:21:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "deb7526928aa9505d617b664680d5b269f292efe",
          "body": null,
          "is_bot": false,
          "headline": "Add octopoes_api_scanprofiles to release-example compose (#5147)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-05-05T09:45:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3e4bffe075617f4345ffbb011701fd6a2944f58",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump SonarSource/sonarqube-scan-action from 7.0.0 to 8.0.0 (#5142)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T11:40:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b02cdd474977e9e897bdc83a0edbd5290014c17",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump docker/build-push-action from 7.0.0 to 7.1.0 (#5143)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T11:25:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "73c72398d7781d3169cb18d917022c2de602363a",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/cache from 5.0.4 to 5.0.5 (#5141)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T10:12:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5bb10ce545f208f02b70122254e5cd5264c09907",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/upload-pages-artifact from 4.0.0 to 5.0.0 (#5144)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T09:43:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1414076c369f8169dc3220b7dbb4b69043139d31",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#5145)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T09:30:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48b358bfc7e4ebf0d28476897656386442fc098d",
          "body": "Co-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": false,
          "headline": "Make nikto boefje + normalizer work end-to-end on Nikto 2.6 (#5137)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-04-29T12:33:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5947a712fba34d34ecf0aff839024b0ee89528e",
          "body": null,
          "is_bot": false,
          "headline": "Fix BoefjeRanker priority decay using .total_seconds() (#5117)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-04-28T08:49:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3ebdbfbd3a5ab10eb70910f81739a8e24779023",
          "body": "Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix/bytes login (#5133)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-04-23T08:22:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ac32f029d8f81f52800412056e16e3bd37e304b0",
          "body": "Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Chore/upgrade dependencies (#5126)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-04-20T18:49:54Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "02e4533d660eaa2a5987b43c29aa863564aaa22c",
          "body": "The bundled freetsa.crt expired on 2026-03-11. Replace it with the\ncurrent cert (valid until 2040-02-02), which FreeTSA rotated from RSA\nto ECDSA P-384.\n\nAlso adds a 64-line monkey-patch around rfc3161ng.check_timestamp so\nthat TimeStampTokens signed with EC keys verify correctly. The upstream\nlibra\n[…]\nen a fix\nlands there, the monkey-patch can be dropped.\n\nVerified live against FreeTSA inside bytes:\n  Cert valid until: 2040-02-02 19:44:22+00:00\n  Public key type:  ECPublicKey\n  Store + verify:   OK",
          "is_bot": false,
          "headline": "Update FreeTSA certificate and add EC key support for RFC3161 (#5111)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-04-14T21:00:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6cd04299f4615c23bd08c31dffd106671220a943",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump pytest from 9.0.2 to 9.0.3 in /boefjes (#5124)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-14T10:09:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6c99df1e7047b84f0eee759fbcd606dbf140353",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump pytest from 9.0.2 to 9.0.3 in /bytes (#5125)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-14T09:30:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f15af67983168a62df8e6dadad4703b583ecb98a",
          "body": null,
          "is_bot": false,
          "headline": "Update various dependencies (wrapt, opentelemetry), pin attrs (#5110)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-04-10T19:18:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f7fff74499545dcf1e1cd8511270dbe32ea1175",
          "body": null,
          "is_bot": false,
          "headline": "Refactor SSH command execution to use subprocess (#5104)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-04-10T08:39:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff3641df63c22c1ea7aaedce537b3bb828a48d2b",
          "body": "Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>\nCo-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix/octopoes rtest (#5107)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-04-10T08:26:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "799fd023a93193ca42bbf9ed3713460baf778451",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump attrs from 25.4.0 to 26.1.0 (#5102)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-10T08:08:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b1140a0787e9492c20798c9154b4828843ba361",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump cryptography from 46.0.6 to 46.0.7 in /bytes (#5105)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-10T07:27:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a397d64496d59daa1ebc4724a602d8564517d5bb",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump cryptography from 46.0.6 to 46.0.7 in /boefjes (#5106)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-10T07:15:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "931a1efeddb06f3981c312659da816d192350c49",
          "body": "Optimize Octopoes queries to make OOI/finding list and detail pages noticeably faster:\n\n- Shortcut count queries when len(results) < limit\n- Make scan_level/scan_profile_type filters optional with None defaults\n- Replace unconditional ScanProfile INNER JOIN with or-join LEFT JOIN in load_bulk_as_lis\n[…]\ni_types() to guarantee set[type[OOI]] return type\n- Fix get_ooi_profile_types rename to get_ooi_scan_profile_types\n- Explicit bits/recalculate call in robot findings test for determinism\n\nCloses #3917",
          "is_bot": false,
          "headline": "Add optimizations to various Octopoes queries (#5088)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-04-08T11:46:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "57805ca7e03a8b08a970b4933301aa00c7f1a9fc",
          "body": "Add sync=true parameter to Set Scan Profile To Empty to prevent race condition where Recalculate Scan Profiles reads stale data from XTDB.",
          "is_bot": false,
          "headline": "Fix robot framework sync issue in scan profile propagation tests (#5101)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-04-03T12:18:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac7b25341ad6f40a4f3f357d6b939625aba799b2",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump github/codeql-action from 4.32.4 to 4.35.1 (#5095)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-01T15:58:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a566fc085133d75a8ca84af0276c2f7e4aba6c58",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump softprops/action-gh-release from 2.5.0 to 2.6.1 (#5094)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-01T15:55:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f15a1704f6301ba69d8aa6cbb87f024e1c9255dc",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>\nCo-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/deploy-pages from 4.0.5 to 5.0.0 (#5096)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-01T15:44:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fb624e8db10430e68eac79b06ba212355c32cd4d",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump picomatch from 2.3.1 to 2.3.2 in /rocky (#5066)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-01T15:34:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5e2fa6261191e1e5c981bb888d4222751ab89b1",
          "body": "Co-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "update a few dependencies, and also bump pytest (#5092)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-04-01T15:11:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e1d861add96bafb4cd967647f24f0d5d974d424",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump dorny/paths-filter from 3.0.2 to 4.0.1 (#5097)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-01T14:45:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9693ad93376cfaeb836f87f6efcb5612be822aa8",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/configure-pages from 5.0.0 to 6.0.0 (#5098)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-01T14:34:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd73160403e3fa38289ba5db6af194a8db43de1c",
          "body": "Co-authored-by: ammar92 <ammar.abdulamir@gmail.com>\nCo-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>\nCo-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>\nCo-authored-by: Edward <edward@hasecon.nl>",
          "is_bot": false,
          "headline": "Feat/raw files in tasklist (#4190)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-04-01T12:43:15Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f8f331ea6a3c5ad3216c536b4dfc2b81218f72d5",
          "body": "Co-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": false,
          "headline": "Fix nuclei boefjes crashing on HostnameHTTPURL inputs (#5052)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-04-01T08:48:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09abc5b993ea3e4aa88661b5791c8245abeae4db",
          "body": "Co-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Upgrade requests, pyjwt, cryptography, boto3, pygments (#5082)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-31T21:00:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9d739f8817b0a8f29cc5f2283ba0f52d16910fe",
          "body": "…sk lists (#5083)\n\nCo-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add proper task list filtering, and refactor the all organizations ta…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-31T20:17:27Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ab744c99e7b7699debb2de0373a05f808810664d",
          "body": null,
          "is_bot": false,
          "headline": "Fix LeakIX boefje to only return results for scanned asset (#4944)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-03-31T08:11:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea564deb4c1fb5c968bcdff03a4834c45d2b3a4c",
          "body": "Co-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": false,
          "headline": "Update django.pot after observed_at refactoring (#5077)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-03-30T07:27:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16172cc4b0a76561517b5a0117345894ad7087da",
          "body": null,
          "is_bot": false,
          "headline": "Fix check_requirements workflow for fork PRs (#5078)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-03-30T07:20:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84bbbc4ef9c27527f21634ae4fd032a630699e65",
          "body": "Co-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Refactor observed_at handling / forms (#5057)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-28T14:21:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd92fd6166a257a23c12abbf41b5cae45ac636b4",
          "body": "Co-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": false,
          "headline": "Replace pika with aio-pika in Bytes service (#5061)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-03-28T13:52:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0346844c54a6b5db7cb878948b50b47b9bf6c303",
          "body": null,
          "is_bot": false,
          "headline": "Upgrade actions to node24 variants and version pin all actions (#5065)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-27T21:00:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59a31ab3521f0ba6c070ab8623dc1ee3f8e45397",
          "body": "Co-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": false,
          "headline": "Fix invalid JSON Schema keywords in kat_rpki schema (#5064)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-03-25T13:54:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "00c03130e7276a5a115a3fd373993a472b3bf5a5",
          "body": null,
          "is_bot": false,
          "headline": "Update schema.json, fix max/maximum (#5063)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-25T13:42:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f41e5cb6b6d8b280c4a8ce2f58fbf49c7d3d2c0",
          "body": "…run again. (#5055)",
          "is_bot": false,
          "headline": "Use the new Deschedule mimetype to signal jobs that never need a new …",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-23T20:50:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71a7ae9ab737ba15a83dc66fa526892ba9b25aa3",
          "body": "…5056)",
          "is_bot": false,
          "headline": "Add a bit more clarification to the scan profile propagation table (#…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-23T08:19:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96cdab465eb34724fd3ff754a9feef4b26983a53",
          "body": "…m (#5058)\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump pydicom from 2.4.4 to 2.4.5 in /boefjes/boefjes/plugins/kat_dico…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-23T08:06:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7719d8edf87bb99d30cc4e2027418982440281fb",
          "body": "…… (#5054)",
          "is_bot": false,
          "headline": "Use existing organization property on request.user, and dont filter i…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-20T08:32:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0d1766ab711278cd54aa2907fc0bd29f01f4050",
          "body": null,
          "is_bot": false,
          "headline": "Change cve-finding-types default to public API (#5053)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-03-19T08:02:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe6370a20958322015766f4c77563f7ed00ec82c",
          "body": "…nnects (#5051)",
          "is_bot": false,
          "headline": "Make error handling more robust, we saw some some crashes around reco…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-18T14:54:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5ebad76bb729ecf4b1f79d0229a402d6665e78a",
          "body": null,
          "is_bot": false,
          "headline": "optimize various parts of the scheduler (#5007)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-18T14:42:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d6215482c86796d86985b03f11093f872800a5e",
          "body": "…(#5040)",
          "is_bot": false,
          "headline": "make paginator smarter, avoid double lookups, cache results on page. …",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-18T14:23:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a713622d8fc330f01003ba67bfe6cf63244c392",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Jan Klopper <janklopper+underdark@gmail.com>",
          "is_bot": true,
          "headline": "Bump sphinxcontrib-mermaid from 1.2.3 to 2.0.0 (#5014)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-18T14:01:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "751d24138b541cdfc450d7a9c7329a3f3f9fac16",
          "body": "Signed-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump pyasn1 from 0.6.2 to 0.6.3 in /bytes (#5050)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-18T08:18:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a7ceb730382a003d1addd6deddb2531cf260ec75",
          "body": "…… (#5039)\n\nCo-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>\nCo-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Move scanprofile propagation from celery to daemon, and use xtdb's la…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-17T10:37:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d71663d6669bfbd54e8b07eddc86be23b440dbdf",
          "body": "Co-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Use the newly available sync param in rocky (#5049)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-17T10:13:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0b4e2aa4ade1ccbfd9db293dc1fdbee11f73bd8",
          "body": null,
          "is_bot": false,
          "headline": "Fix nikto boefje: bug fixes and performance improvements (#4943)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-03-16T20:38:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b6a70898110dde10f0da736f7d792213e8e5830",
          "body": "Co-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Remove CSS/JS compressor. Its not compatible with JS modules (#5032)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-16T09:24:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b03072974aee9cbb5dd6eaef2813bc60b07a2d96",
          "body": "…5046)\n\nCo-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add Optional sync flags to octopoes service, router and xtdbclient (#…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-16T08:46:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "004b8c16780eb2f48e7125b24310d46a74dd2bda",
          "body": null,
          "is_bot": false,
          "headline": "Skip Docker registry login for fork PRs (#5047)",
          "author_name": "hasecon",
          "author_login": "hasecon",
          "committed_at": "2026-03-13T16:00:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21b68aa93d81551686d12e29b25f7a351c1fc941",
          "body": null,
          "is_bot": false,
          "headline": "Include User-Agent header in HTTP requests (#5044)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-13T15:16:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7abb7fc83e220487d5bf8c78a48394d32bdcad33",
          "body": null,
          "is_bot": false,
          "headline": "Feat/bytes normalizer metas endpoint (#4994)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-10T09:56:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6056e41312567e568172ec98b484567d493132dd",
          "body": "… (#5019)",
          "is_bot": false,
          "headline": "add ignore stanza for boefje.json.tmp files existing after a test run…",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-08T18:10:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d692d18a88ee9f3479d0d789b878be973173adf",
          "body": "Co-authored-by: hasecon <123255331+hasecon@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Adds some new endpoints to the xtdb cli and client (#4975)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-06T14:11:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb8bcf9f87c13c76d7f27db6276a53f06fdffd24",
          "body": null,
          "is_bot": false,
          "headline": "Order organizations by name in models.py (#4983)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-06T13:46:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6db793d4172c98ae314102b0aecd1c7141b82777",
          "body": "Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Optimize use of TypeAdapters in the octopoes client.  (#5020)",
          "author_name": "Jan Klopper",
          "author_login": "underdarknl",
          "committed_at": "2026-03-06T13:34:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        }
      ],
      "releases_count": 75,
      "commits_last_year": 213,
      "latest_release_at": "2026-07-14T12:34:38Z",
      "latest_release_tag": "v1.22.1",
      "releases_from_tags": false,
      "days_since_last_push": 1,
      "active_weeks_last_year": 40,
      "days_since_latest_release": 19,
      "mean_days_between_releases": 42.5
    },
    "artifacts": {
      "collected": true,
      "structure": [
        "tree.compose",
        "tree.dockerfile",
        "tree.migrations"
      ],
      "declarations": [
        {
          "name": "cveapi",
          "path": "cveapi/pyproject.toml",
          "tokens": [
            "pypi.console_scripts"
          ],
          "ecosystem": "pypi"
        }
      ]
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "readme_badges": {
        "hosts": [],
        "total": 0,
        "header": 0,
        "collected": true,
        "has_inspect_badge": false
      },
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "mula",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "pypi",
          "categories": [],
          "matches_repo": null,
          "registry_url": "https://pypi.org/project/mula/",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "1.6.1",
          "repository_url": null,
          "versions_count": 26,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2024-03-14T13:00:02.493700Z",
          "latest_published_at": "2025-05-24T17:29:17.607820Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 435
        },
        {
          "name": "bytes",
          "exists": true,
          "license": "GNU General Public License, version 2",
          "keywords": [
            "Serialization",
            "deserialization",
            "formats",
            "marshaling"
          ],
          "ecosystem": "pypi",
          "categories": [],
          "matches_repo": false,
          "registry_url": "https://pypi.org/project/bytes/",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.0.1.dev4",
          "repository_url": "https://github.com/code-museum/bytes",
          "versions_count": 5,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1658,
          "first_published_at": "2015-04-03T08:29:10.501727Z",
          "latest_published_at": "2015-04-08T21:21:56.560131Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4134
        },
        {
          "name": "rocky",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "Development Status :: 5 - Production/Stable",
            "Environment :: Console",
            "Intended Audience :: Developers",
            "License :: OSI Approved :: Apache Software License",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.4",
            "Programming Language :: Python :: 3.5",
            "Programming Language :: Python :: 3.6",
            "Programming Language :: Python :: 3.7",
            "Programming Language :: Python :: 3.8",
            "Programming Language :: Python :: 3.9",
            "Topic :: Software Development :: Libraries :: Python Modules"
          ],
          "ecosystem": "pypi",
          "categories": [],
          "matches_repo": false,
          "registry_url": "https://pypi.org/project/rocky/",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "1.0.2",
          "repository_url": "https://github.com/andersroos/rocky",
          "versions_count": 4,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 149,
          "first_published_at": "2016-12-13T18:17:45.927585Z",
          "latest_published_at": "2022-04-07T19:54:58.654612Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 1578
        }
      ]
    },
    "popularity": {
      "forks": 69,
      "stars": 153,
      "watchers": 16,
      "fork_history": {
        "days": [
          {
            "date": "2022-07-01",
            "count": 1
          },
          {
            "date": "2022-07-03",
            "count": 1
          },
          {
            "date": "2022-07-17",
            "count": 1
          },
          {
            "date": "2022-07-22",
            "count": 1
          },
          {
            "date": "2022-07-26",
            "count": 1
          },
          {
            "date": "2022-07-27",
            "count": 1
          },
          {
            "date": "2022-08-10",
            "count": 1
          },
          {
            "date": "2022-08-29",
            "count": 1
          },
          {
            "date": "2022-09-17",
            "count": 1
          },
          {
            "date": "2022-10-12",
            "count": 1
          },
          {
            "date": "2022-10-31",
            "count": 1
          },
          {
            "date": "2022-11-15",
            "count": 1
          },
          {
            "date": "2022-12-17",
            "count": 1
          },
          {
            "date": "2023-02-14",
            "count": 1
          },
          {
            "date": "2023-02-15",
            "count": 1
          },
          {
            "date": "2023-02-16",
            "count": 3
          },
          {
            "date": "2023-02-26",
            "count": 1
          },
          {
            "date": "2023-03-05",
            "count": 1
          },
          {
            "date": "2023-03-06",
            "count": 1
          },
          {
            "date": "2023-03-14",
            "count": 1
          },
          {
            "date": "2023-03-17",
            "count": 2
          },
          {
            "date": "2023-03-21",
            "count": 1
          },
          {
            "date": "2023-03-29",
            "count": 1
          },
          {
            "date": "2023-04-26",
            "count": 1
          },
          {
            "date": "2023-04-27",
            "count": 1
          },
          {
            "date": "2023-05-08",
            "count": 1
          },
          {
            "date": "2023-05-12",
            "count": 1
          },
          {
            "date": "2023-05-25",
            "count": 1
          },
          {
            "date": "2023-06-12",
            "count": 1
          },
          {
            "date": "2023-06-18",
            "count": 1
          },
          {
            "date": "2023-07-03",
            "count": 1
          },
          {
            "date": "2023-07-06",
            "count": 1
          },
          {
            "date": "2023-07-28",
            "count": 1
          },
          {
            "date": "2023-08-11",
            "count": 1
          },
          {
            "date": "2023-09-04",
            "count": 1
          },
          {
            "date": "2023-09-15",
            "count": 1
          },
          {
            "date": "2023-09-16",
            "count": 1
          },
          {
            "date": "2023-10-08",
            "count": 1
          },
          {
            "date": "2023-10-20",
            "count": 1
          },
          {
            "date": "2023-10-26",
            "count": 1
          },
          {
            "date": "2023-11-13",
            "count": 1
          },
          {
            "date": "2023-11-25",
            "count": 1
          },
          {
            "date": "2024-03-04",
            "count": 1
          },
          {
            "date": "2024-03-25",
            "count": 1
          },
          {
            "date": "2024-04-18",
            "count": 1
          },
          {
            "date": "2024-04-30",
            "count": 1
          },
          {
            "date": "2024-07-11",
            "count": 1
          },
          {
            "date": "2024-10-02",
            "count": 1
          },
          {
            "date": "2024-10-18",
            "count": 1
          },
          {
            "date": "2024-11-01",
            "count": 1
          },
          {
            "date": "2025-01-15",
            "count": 1
          },
          {
            "date": "2025-04-17",
            "count": 1
          },
          {
            "date": "2025-05-09",
            "count": 1
          },
          {
            "date": "2025-06-01",
            "count": 1
          },
          {
            "date": "2025-06-10",
            "count": 1
          },
          {
            "date": "2025-06-26",
            "count": 1
          },
          {
            "date": "2025-07-23",
            "count": 1
          },
          {
            "date": "2025-09-04",
            "count": 1
          },
          {
            "date": "2026-01-05",
            "count": 1
          },
          {
            "date": "2026-01-12",
            "count": 1
          },
          {
            "date": "2026-02-16",
            "count": 1
          },
          {
            "date": "2026-02-22",
            "count": 1
          },
          {
            "date": "2026-05-02",
            "count": 1
          },
          {
            "date": "2026-06-22",
            "count": 1
          },
          {
            "date": "2026-07-15",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 68,
        "total_forks": 69
      },
      "star_history": null,
      "open_issues_and_prs": 1023
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile",
        "boefjes/Makefile",
        "boefjes/packaging/deb/Makefile",
        "bytes/Makefile",
        "bytes/packaging/deb/Makefile",
        "cveapi/Makefile",
        "mula/Makefile",
        "mula/packaging/deb/Makefile",
        "octopoes/Makefile",
        "octopoes/packaging/deb/Makefile",
        "rocky/Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 95585,
      "source_files_sampled": 1193,
      "oversized_source_files": 2,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "boefjes/pyproject.toml",
        "boefjes/requirements-dev.txt",
        "boefjes/requirements.txt",
        "boefjes/setup.py",
        "bytes/pyproject.toml",
        "bytes/requirements-dev.txt",
        "bytes/requirements.txt",
        "bytes/setup.py",
        "cveapi/pyproject.toml",
        "cveapi/requirements.txt",
        "mula/pyproject.toml",
        "mula/requirements-dev.txt",
        "mula/requirements.txt",
        "mula/setup.py",
        "octopoes/pyproject.toml",
        "octopoes/requirements-dev.txt",
        "octopoes/requirements.txt",
        "octopoes/setup.py",
        "pyproject.toml",
        "requirements.txt",
        "rocky/package.json",
        "rocky/pyproject.toml",
        "rocky/requirements-dev.txt",
        "rocky/requirements.txt",
        "rocky/setup.py"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 12,
        "malicious_count": 0,
        "assessed_package": "pypi:mula@1.6.1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "alembic",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "~=1.8"
        },
        {
          "name": "click",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=8.1.3,<9"
        },
        {
          "name": "jsonschema",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.17.0,<5"
        },
        {
          "name": "pydantic",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.1,<3"
        },
        {
          "name": "docker",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=7.1.0,<8"
        },
        {
          "name": "uvicorn",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.29.0,<0.30"
        },
        {
          "name": "psycopg2-binary",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.9.10"
        },
        {
          "name": "pynacl",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.5.0,<2"
        },
        {
          "name": "sqlalchemy",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.4.48"
        },
        {
          "name": "python-dateutil",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.8.2,<3"
        },
        {
          "name": "pydantic-settings",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.14.2,<3"
        },
        {
          "name": "opentelemetry-sdk",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-grpc",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-fastapi",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-psycopg2",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-requests",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "requests",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.33.0,<3"
        },
        {
          "name": "beautifulsoup4",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==4.11.1"
        },
        {
          "name": "dnspython",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.6.1,<3"
        },
        {
          "name": "tldextract",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">5"
        },
        {
          "name": "validators",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==0.20.0"
        },
        {
          "name": "python-libnmap",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==0.7.3"
        },
        {
          "name": "cryptography",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=48.0.1"
        },
        {
          "name": "forcediphttpsadapter",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==1.1.0"
        },
        {
          "name": "urllib3",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.1.0,<3"
        },
        {
          "name": "wpscan-out-parse",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==1.9.3"
        },
        {
          "name": "netaddr",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.0,<2"
        },
        {
          "name": "defusedxml",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.7.1,<0.8"
        },
        {
          "name": "pillow",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=12.3.0"
        },
        {
          "name": "httpx",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.28.1,<0.29"
        },
        {
          "name": "opentelemetry-api",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-common",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-asgi",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-dbapi",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-proto",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-semantic-conventions",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-util-http",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "fastapi-slim",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.115.2"
        },
        {
          "name": "structlog",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=25.2.0,<26"
        },
        {
          "name": "maxminddb",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.6.2,<3"
        },
        {
          "name": "tanimachi",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.0.6,<0.0.7"
        },
        {
          "name": "cpe",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.1,<2"
        },
        {
          "name": "croniter",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0.0,<7"
        },
        {
          "name": "setuptools",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=80.9.0"
        },
        {
          "name": "pygments",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.20.0"
        },
        {
          "name": "wrapt",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.1.2"
        },
        {
          "name": "attrs",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=26.1.0"
        },
        {
          "name": "mako",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.12"
        },
        {
          "name": "urllib3",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.0"
        },
        {
          "name": "idna",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.15"
        },
        {
          "name": "starlette",
          "manifest": "boefjes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.1"
        },
        {
          "name": "alembic",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.8.1,<2"
        },
        {
          "name": "cachetools",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">6"
        },
        {
          "name": "passlib",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.7.4,<2"
        },
        {
          "name": "aio-pika",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=9.5,<10"
        },
        {
          "name": "prometheus-client",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.16.0,<0.17"
        },
        {
          "name": "psycopg2-binary",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.9.10"
        },
        {
          "name": "pydantic",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.1,<3"
        },
        {
          "name": "pynacl",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.5.0,<2"
        },
        {
          "name": "rfc3161ng",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.1.3,<3"
        },
        {
          "name": "sqlalchemy",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.4.48,<2"
        },
        {
          "name": "uvicorn",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.29.0,<0.30"
        },
        {
          "name": "opentelemetry-sdk",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-grpc",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-fastapi",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-psycopg2",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-httpx",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-dbapi",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "pydantic-settings",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.14.2,<3"
        },
        {
          "name": "python-multipart",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.0.31"
        },
        {
          "name": "httpx",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.28.1,<0.29"
        },
        {
          "name": "opentelemetry-api",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-common",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-asgi",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-proto",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-semantic-conventions",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-util-http",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "pyjwt",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.13.0"
        },
        {
          "name": "fastapi-slim",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.115.2"
        },
        {
          "name": "structlog",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=25.2.0,<26"
        },
        {
          "name": "cryptography",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=48.0.1"
        },
        {
          "name": "boto3",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.42.70,<3"
        },
        {
          "name": "bcrypt",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "<5"
        },
        {
          "name": "requests",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.33.0,<3"
        },
        {
          "name": "pygments",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.20.0"
        },
        {
          "name": "pyasn1",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.6.4"
        },
        {
          "name": "wrapt",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.1.2"
        },
        {
          "name": "mako",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.12"
        },
        {
          "name": "urllib3",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.0"
        },
        {
          "name": "idna",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.15"
        },
        {
          "name": "starlette",
          "manifest": "bytes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.1"
        },
        {
          "name": "httpx",
          "manifest": "cveapi/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.28.1"
        },
        {
          "name": "idna",
          "manifest": "cveapi/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.15"
        },
        {
          "name": "alembic",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.12.1,<2"
        },
        {
          "name": "croniter",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0.0,<7"
        },
        {
          "name": "mmh3",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.1.0,<6"
        },
        {
          "name": "pika",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.2,<2"
        },
        {
          "name": "prometheus-client",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.19.0,<0.20"
        },
        {
          "name": "psycopg2-binary",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.9.10"
        },
        {
          "name": "pydantic",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.11.3,<3"
        },
        {
          "name": "pydantic-settings",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.14.2,<3"
        },
        {
          "name": "python-dotenv",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.0.0,<2"
        },
        {
          "name": "retry2",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.9.5,<0.10"
        },
        {
          "name": "sqlalchemy",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.23,<3"
        },
        {
          "name": "structlog",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=25.2.0,<26"
        },
        {
          "name": "uvicorn",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.29.0,<0.30"
        },
        {
          "name": "httpx",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.28.1,<0.29"
        },
        {
          "name": "fastapi-slim",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.115.12"
        },
        {
          "name": "opentelemetry-sdk",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-api",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-proto",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-grpc",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-common",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-util-http",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-httpx",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-asgi",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-dbapi",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-fastapi",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-psycopg2",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-semantic-conventions",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "pygments",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.20.0"
        },
        {
          "name": "wrapt",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.1.2"
        },
        {
          "name": "mako",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.12"
        },
        {
          "name": "idna",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.15"
        },
        {
          "name": "starlette",
          "manifest": "mula/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.1"
        },
        {
          "name": "pydantic",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.1,<3"
        },
        {
          "name": "uvicorn",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.29.0,<0.30"
        },
        {
          "name": "pika",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.1,<2"
        },
        {
          "name": "PyYAML",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "~=6.0"
        },
        {
          "name": "dnspython",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.6.1,<3"
        },
        {
          "name": "kombu",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.2.4,<6"
        },
        {
          "name": "celery",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.2.7,<6"
        },
        {
          "name": "pyparsing",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.0.9,<4"
        },
        {
          "name": "tldextract",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">5"
        },
        {
          "name": "opentelemetry-sdk",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-grpc",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-fastapi",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-psycopg2",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-httpx",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "sqlalchemy",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==1.4.48"
        },
        {
          "name": "jsonschema",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.18.0,<5"
        },
        {
          "name": "pydantic-settings",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.14.2,<3"
        },
        {
          "name": "httpx",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.28.1,<0.29"
        },
        {
          "name": "link-shorteners",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.11.0,<2"
        },
        {
          "name": "opentelemetry-api",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-common",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-asgi",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-dbapi",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-proto",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-semantic-conventions",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-util-http",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "fastapi-slim",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.115.2"
        },
        {
          "name": "structlog",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=25.2.0,<26"
        },
        {
          "name": "asgiref",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.8.1,<4"
        },
        {
          "name": "setuptools",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">80,<82"
        },
        {
          "name": "requests",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.33.0,<3"
        },
        {
          "name": "pygments",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.20.0"
        },
        {
          "name": "wrapt",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.1.2"
        },
        {
          "name": "attrs",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=26.1.0"
        },
        {
          "name": "urllib3",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.0"
        },
        {
          "name": "idna",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.15"
        },
        {
          "name": "webob",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.8.10"
        },
        {
          "name": "starlette",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.1"
        },
        {
          "name": "soupsieve",
          "manifest": "octopoes/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.8.4"
        },
        {
          "name": "sphinx",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=8.1.3,<9"
        },
        {
          "name": "sphinx_rtd_theme",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.0.2,<4"
        },
        {
          "name": "sphinxcontrib-mermaid",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.0.0,<3"
        },
        {
          "name": "myst-parser",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.0.1,<5"
        },
        {
          "name": "settings-doc",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.3.2,<5"
        },
        {
          "name": "colorama",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==0.4.6"
        },
        {
          "name": "autodoc-pydantic",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.2.0,<3"
        },
        {
          "name": "croniter",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0.0,<7"
        },
        {
          "name": "jsonschema",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.17.0,<5"
        },
        {
          "name": "pygments",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.20.0"
        },
        {
          "name": "requests",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.33.0,<3"
        },
        {
          "name": "attrs",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=26.1.0"
        },
        {
          "name": "python-dotenv",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.2.2"
        },
        {
          "name": "urllib3",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.0"
        },
        {
          "name": "idna",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.15"
        },
        {
          "name": "pydantic-settings",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.14.2"
        },
        {
          "name": "@minvws/manon",
          "manifest": "rocky/package.json",
          "ecosystem": "npm",
          "version_constraint": "16.1.0"
        },
        {
          "name": "d3",
          "manifest": "rocky/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.4.3"
        },
        {
          "name": "beautifulsoup4",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.11.2,<5"
        },
        {
          "name": "django",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.1.14,<5.2"
        },
        {
          "name": "django-two-factor-auth",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.17.0,<2"
        },
        {
          "name": "django-environ",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.12.0,<0.13"
        },
        {
          "name": "jsonschema",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.17.0,<5"
        },
        {
          "name": "phonenumbers",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=9.0.4,<10"
        },
        {
          "name": "psycopg2-binary",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.9.10"
        },
        {
          "name": "pydantic",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.1,<3"
        },
        {
          "name": "python-dotenv",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.0.0,<2"
        },
        {
          "name": "django-password-validators",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.7.1,<2"
        },
        {
          "name": "django-csp",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "~=4.0"
        },
        {
          "name": "djangorestframework",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.16.0,<4"
        },
        {
          "name": "django-tagulous",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.1.0,<3"
        },
        {
          "name": "drf-standardized-errors",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.14.1,<0.15"
        },
        {
          "name": "django-weasyprint",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.4.0,<3"
        },
        {
          "name": "strenum",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.4.15,<0.5"
        },
        {
          "name": "django-rest-knox",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.0.2,<6"
        },
        {
          "name": "opentelemetry-sdk",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-grpc",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-django",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-psycopg2",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "whitenoise",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.5.0,<7"
        },
        {
          "name": "opentelemetry-instrumentation",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-fastapi",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "granian",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.4"
        },
        {
          "name": "django-components",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.88,<0.89"
        },
        {
          "name": "pyparsing",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.1.1,<4"
        },
        {
          "name": "pydantic-settings",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.14.2,<3"
        },
        {
          "name": "opentelemetry-instrumentation-httpx",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "httpx",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.27.0,<0.28"
        },
        {
          "name": "opentelemetry-api",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-exporter-otlp-proto-common",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-asgi",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-dbapi",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-instrumentation-wsgi",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-proto",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-semantic-conventions",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "opentelemetry-util-http",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "structlog",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=25.3.0,<26"
        },
        {
          "name": "django-structlog",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=9.1.1,<10"
        },
        {
          "name": "cron-descriptor",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2"
        },
        {
          "name": "structlog",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=25.3.0,<26"
        },
        {
          "name": "django-structlog",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=9.1.1,<10"
        },
        {
          "name": "weasyprint",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=66"
        },
        {
          "name": "requests",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.33.0,<3"
        },
        {
          "name": "attrs",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=26.1.0"
        },
        {
          "name": "pillow",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=12.3.0"
        },
        {
          "name": "brotlicffi",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.2.0.1"
        },
        {
          "name": "urllib3",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.0"
        },
        {
          "name": "idna",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.15"
        },
        {
          "name": "soupsieve",
          "manifest": "rocky/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.8.4"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@minvws/manon",
            "direct": true,
            "version": "16.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3",
            "direct": true,
            "version": "7.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "aio-pika",
            "direct": true,
            "version": "9.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "alembic",
            "direct": true,
            "version": "1.18.4",
            "ecosystem": "pypi"
          },
          {
            "name": "asgiref",
            "direct": true,
            "version": "3.11.1",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": true,
            "version": "25.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": true,
            "version": "26.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "autodoc-pydantic",
            "direct": true,
            "version": "2.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "bcrypt",
            "direct": true,
            "version": "4.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "beautifulsoup4",
            "direct": true,
            "version": "4.11.1",
            "ecosystem": "pypi"
          },
          {
            "name": "beautifulsoup4",
            "direct": true,
            "version": "4.14.3",
            "ecosystem": "pypi"
          },
          {
            "name": "boto3",
            "direct": true,
            "version": "1.42.89",
            "ecosystem": "pypi"
          },
          {
            "name": "brotlicffi",
            "direct": true,
            "version": "1.2.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cachetools",
            "direct": true,
            "version": "7.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "celery",
            "direct": true,
            "version": "5.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": true,
            "version": "8.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": true,
            "version": "8.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": true,
            "version": "8.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "colorama",
            "direct": true,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "cpe",
            "direct": true,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cron-descriptor",
            "direct": true,
            "version": "2.0.8",
            "ecosystem": "pypi"
          },
          {
            "name": "croniter",
            "direct": true,
            "version": "6.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "croniter",
            "direct": true,
            "version": "6.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": true,
            "version": "49.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "defusedxml",
            "direct": true,
            "version": "0.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "django",
            "direct": true,
            "version": "5.1.15",
            "ecosystem": "pypi"
          },
          {
            "name": "django-components",
            "direct": true,
            "version": "0.88",
            "ecosystem": "pypi"
          },
          {
            "name": "django-csp",
            "direct": true,
            "version": "4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "django-environ",
            "direct": true,
            "version": "0.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "django-password-validators",
            "direct": true,
            "version": "1.7.3",
            "ecosystem": "pypi"
          },
          {
            "name": "django-rest-knox",
            "direct": true,
            "version": "5.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "django-structlog",
            "direct": true,
            "version": "9.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "django-tagulous",
            "direct": true,
            "version": "2.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "django-two-factor-auth",
            "direct": true,
            "version": "1.18.1",
            "ecosystem": "pypi"
          },
          {
            "name": "django-weasyprint",
            "direct": true,
            "version": "2.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "djangorestframework",
            "direct": true,
            "version": "3.17.1",
            "ecosystem": "pypi"
          },
          {
            "name": "dnspython",
            "direct": true,
            "version": "2.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "dnspython",
            "direct": true,
            "version": "2.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "docker",
            "direct": true,
            "version": "7.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "drf-standardized-errors",
            "direct": true,
            "version": "0.14.1",
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi-slim",
            "direct": true,
            "version": "0.129.1",
            "ecosystem": "pypi"
          },
          {
            "name": "forcediphttpsadapter",
            "direct": true,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "granian",
            "direct": true,
            "version": "2.7.4",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": true,
            "version": "0.27.2",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": true,
            "version": "0.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": true,
            "version": "3.10",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": true,
            "version": "3.15",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": true,
            "version": "4.24.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": true,
            "version": "4.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "kombu",
            "direct": true,
            "version": "5.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "link-shorteners",
            "direct": true,
            "version": "1.14.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mako",
            "direct": true,
            "version": "1.3.12",
            "ecosystem": "pypi"
          },
          {
            "name": "maxminddb",
            "direct": true,
            "version": "2.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "maxminddb",
            "direct": true,
            "version": "2.8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mmh3",
            "direct": true,
            "version": "5.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "myst-parser",
            "direct": true,
            "version": "4.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "netaddr",
            "direct": true,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "netaddr",
            "direct": true,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-api",
            "direct": true,
            "version": "1.41.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-common",
            "direct": true,
            "version": "1.41.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-grpc",
            "direct": true,
            "version": "1.41.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-asgi",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-dbapi",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-django",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-fastapi",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-httpx",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-psycopg2",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-requests",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-wsgi",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-proto",
            "direct": true,
            "version": "1.41.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-sdk",
            "direct": true,
            "version": "1.41.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-semantic-conventions",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-util-http",
            "direct": true,
            "version": "0.62b0",
            "ecosystem": "pypi"
          },
          {
            "name": "passlib",
            "direct": true,
            "version": "1.7.4",
            "ecosystem": "pypi"
          },
          {
            "name": "phonenumbers",
            "direct": true,
            "version": "9.0.28",
            "ecosystem": "pypi"
          },
          {
            "name": "pika",
            "direct": true,
            "version": "1.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": true,
            "version": "12.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prometheus-client",
            "direct": true,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prometheus-client",
            "direct": true,
            "version": "0.19.0",
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg2-binary",
            "direct": true,
            "version": "2.9.11",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1",
            "direct": true,
            "version": "0.6.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": true,
            "version": "2.11.7",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": true,
            "version": "2.12.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": true,
            "version": "2.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-settings",
            "direct": true,
            "version": "2.14.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": true,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": true,
            "version": "2.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pynacl",
            "direct": true,
            "version": "1.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyparsing",
            "direct": true,
            "version": "3.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dateutil",
            "direct": true,
            "version": "2.9.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": true,
            "version": "1.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "python-libnmap",
            "direct": true,
            "version": "0.7.3",
            "ecosystem": "pypi"
          },
          {
            "name": "python-multipart",
            "direct": true,
            "version": "0.0.32",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": true,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": true,
            "version": "2.33.0",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": true,
            "version": "2.33.1",
            "ecosystem": "pypi"
          },
          {
            "name": "retry2",
            "direct": true,
            "version": "0.9.5",
            "ecosystem": "pypi"
          },
          {
            "name": "rfc3161ng",
            "direct": true,
            "version": "2.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "settings-doc",
            "direct": true,
            "version": "4.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": true,
            "version": "81.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": true,
            "version": "82.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "soupsieve",
            "direct": true,
            "version": "2.8.4",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx",
            "direct": true,
            "version": "8.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx",
            "direct": true,
            "version": "8.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx-rtd-theme",
            "direct": true,
            "version": "3.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-mermaid",
            "direct": true,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": true,
            "version": "1.4.48",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": true,
            "version": "1.4.54",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": true,
            "version": "2.0.49",
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": true,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "strenum",
            "direct": true,
            "version": "0.4.15",
            "ecosystem": "pypi"
          },
          {
            "name": "structlog",
            "direct": true,
            "version": "25.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "structlog",
            "direct": true,
            "version": "25.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tanimachi",
            "direct": true,
            "version": "0.0.6",
            "ecosystem": "pypi"
          },
          {
            "name": "tldextract",
            "direct": true,
            "version": "5.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": true,
            "version": "2.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": true,
            "version": "0.29.0",
            "ecosystem": "pypi"
          },
          {
            "name": "validators",
            "direct": true,
            "version": "0.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "weasyprint",
            "direct": true,
            "version": "68.1",
            "ecosystem": "pypi"
          },
          {
            "name": "webob",
            "direct": true,
            "version": "1.8.10",
            "ecosystem": "pypi"
          },
          {
            "name": "whitenoise",
            "direct": true,
            "version": "6.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "wpscan-out-parse",
            "direct": true,
            "version": "1.9.3",
            "ecosystem": "pypi"
          },
          {
            "name": "wrapt",
            "direct": true,
            "version": "1.17.3",
            "ecosystem": "pypi"
          },
          {
            "name": "wrapt",
            "direct": true,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.18.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.18.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/highlight",
            "direct": false,
            "version": "7.18.6",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/set-array",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/source-map",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.4.14",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.14",
            "ecosystem": "npm"
          },
          {
            "name": "@lezer/common",
            "direct": false,
            "version": "0.15.12",
            "ecosystem": "npm"
          },
          {
            "name": "@lezer/lr",
            "direct": false,
            "version": "0.15.8",
            "ecosystem": "npm"
          },
          {
            "name": "@lmdb/lmdb-darwin-arm64",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@lmdb/lmdb-darwin-x64",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@lmdb/lmdb-linux-arm",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@lmdb/lmdb-linux-arm64",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@lmdb/lmdb-linux-x64",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@lmdb/lmdb-win32-x64",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mischnic/json-sourcemap",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@msgpackr-extract/msgpackr-extract-darwin-arm64",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@msgpackr-extract/msgpackr-extract-darwin-x64",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@msgpackr-extract/msgpackr-extract-linux-arm",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@msgpackr-extract/msgpackr-extract-linux-arm64",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@msgpackr-extract/msgpackr-extract-linux-x64",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@msgpackr-extract/msgpackr-extract-win32-x64",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/bundler-default",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/cache",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/codeframe",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/compressor-raw",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/config-default",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/core",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/css",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/css-darwin-arm64",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/css-darwin-x64",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/css-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/css-linux-arm64-gnu",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/css-linux-arm64-musl",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/css-linux-x64-gnu",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/css-linux-x64-musl",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/css-win32-x64-msvc",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/diagnostic",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/events",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/fs",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/fs-search",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/graph",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/hash",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/logger",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/markdown-ansi",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/namer-default",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/node-resolver-core",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/optimizer-css",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/optimizer-htmlnano",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/optimizer-image",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/optimizer-svgo",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/optimizer-terser",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/package-manager",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/packager-css",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/packager-html",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/packager-js",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/packager-raw",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/packager-svg",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/plugin",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/reporter-cli",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/reporter-dev-server",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/resolver-default",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/runtime-browser-hmr",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/runtime-js",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/runtime-react-refresh",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/runtime-service-worker",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/source-map",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-babel",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-css",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-html",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-image",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-js",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-json",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-postcss",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-posthtml",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-raw",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-react-refresh-wrap",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-sass",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/transformer-svg",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/types",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/utils",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/workers",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/helpers",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "22.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/parse-json",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "abortcontroller-polyfill",
            "direct": false,
            "version": "1.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "anymatch",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "base-x",
            "direct": false,
            "version": "3.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "binary-extensions",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "boolbase",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.21.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-from",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001361",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "3.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "chrome-trace-event",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "clone",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "1.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "2.20.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "cosmiconfig",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "css-select",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "css-tree",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "css-what",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "csso",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-array",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "d3-axis",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-brush",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-chord",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-color",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-contour",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-delaunay",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-dispatch",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-drag",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-dsv",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-ease",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-fetch",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-force",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-format",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-geo",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-hierarchy",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-interpolate",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-path",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-polygon",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-quadtree",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-random",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-scale",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-scale-chromatic",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-selection",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-shape",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-time",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-time-format",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-timer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-transition",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-zoom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "delaunator",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "dom-serializer",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "domelementtype",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "domhandler",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "domutils",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv-expand",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.4.174",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "error-ex",
            "direct": false,
            "version": "1.3.2",
            "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": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-port",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "13.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "htmlnano",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "htmlparser2",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "immutable",
            "direct": false,
            "version": "4.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "internmap",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-arrayish",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-binary-path",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-json",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-parse-even-better-errors",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "lines-and-columns",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "lmdb",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "mdn-data",
            "direct": false,
            "version": "2.0.14",
            "ecosystem": "npm"
          },
          {
            "name": "msgpackr",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "msgpackr-extract",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "node-addon-api",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "node-addon-api",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-gyp-build",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-gyp-build-optional-packages",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "node-gyp-build-optional-packages",
            "direct": false,
            "version": "5.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "nth-check",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "nullthrows",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "ordered-binary",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "parcel",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse-json",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-value-parser",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "posthtml",
            "direct": false,
            "version": "0.16.6",
            "ecosystem": "npm"
          },
          {
            "name": "posthtml-parser",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "posthtml-parser",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "posthtml-render",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-error-overlay",
            "direct": false,
            "version": "6.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "react-refresh",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "regenerator-runtime",
            "direct": false,
            "version": "0.13.9",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "robust-predicates",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "rw",
            "direct": false,
            "version": "1.3.3",
            "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": "sass",
            "direct": false,
            "version": "1.53.0",
            "ecosystem": "npm"
          },
          {
            "name": "sax",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "5.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-support",
            "direct": false,
            "version": "0.5.21",
            "ecosystem": "npm"
          },
          {
            "name": "stable",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "svgo",
            "direct": false,
            "version": "2.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "term-size",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "terser",
            "direct": false,
            "version": "5.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "timsort",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.20.2",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "update-browserslist-db",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "utility-types",
            "direct": false,
            "version": "3.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "v8-compile-cache",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "weak-lru-cache",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "xxhash-wasm",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "1.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "aiormq",
            "direct": false,
            "version": "6.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "alabaster",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "amqp",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-doc",
            "direct": false,
            "version": "0.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-types",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ansicolors",
            "direct": false,
            "version": "1.1.8",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "babel",
            "direct": false,
            "version": "2.18.0",
            "ecosystem": "pypi"
          },
          {
            "name": "billiard",
            "direct": false,
            "version": "4.2.4",
            "ecosystem": "pypi"
          },
          {
            "name": "boefjes",
            "direct": false,
            "version": "0.0.1.dev1",
            "ecosystem": "pypi"
          },
          {
            "name": "botocore",
            "direct": false,
            "version": "1.42.89",
            "ecosystem": "pypi"
          },
          {
            "name": "brotli",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "0.0.1.dev1",
            "ecosystem": "pypi"
          },
          {
            "name": "censys",
            "direct": false,
            "version": "2.1.8",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2025.4.26",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2025.6.15",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.2.25",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.7",
            "ecosystem": "pypi"
          },
          {
            "name": "click-didyoumean",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "click-plugins",
            "direct": false,
            "version": "1.1.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "click-repl",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "coverage",
            "direct": false,
            "version": "7.13.5",
            "ecosystem": "pypi"
          },
          {
            "name": "cssbeautifier",
            "direct": false,
            "version": "1.15.4",
            "ecosystem": "pypi"
          },
          {
            "name": "cssselect2",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cveapi",
            "direct": false,
            "version": "0.0.1.dev1",
            "ecosystem": "pypi"
          },
          {
            "name": "decorator",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "django-admin-auto-tests",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "django-formtools",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "django-ipware",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "django-otp",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "django-phonenumber-field",
            "direct": false,
            "version": "8.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "djlint",
            "direct": false,
            "version": "1.36.4",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": "0.21.2",
            "ecosystem": "pypi"
          },
          {
            "name": "editorconfig",
            "direct": false,
            "version": "0.17.1",
            "ecosystem": "pypi"
          },
          {
            "name": "exceptiongroup",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "factory-boy",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "faker",
            "direct": false,
            "version": "40.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi",
            "direct": false,
            "version": "0.135.3",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.25.2",
            "ecosystem": "pypi"
          },
          {
            "name": "fonttools",
            "direct": false,
            "version": "4.62.1",
            "ecosystem": "pypi"
          },
          {
            "name": "googleapis-common-protos",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": "1.75.1",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": "1.80.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio-tools",
            "direct": false,
            "version": "1.75.1",
            "ecosystem": "pypi"
          },
          {
            "name": "h11",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "httpcore",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "pypi"
          },
          {
            "name": "imagesize",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-metadata",
            "direct": false,
            "version": "8.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "inflection",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "jmespath",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsbeautifier",
            "direct": false,
            "version": "1.15.4",
            "ecosystem": "pypi"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "0.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpatch",
            "direct": false,
            "version": "1.33",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpointer",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-specifications",
            "direct": false,
            "version": "2025.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-specifications",
            "direct": false,
            "version": "2025.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "lazy-object-proxy",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "legacy-cgi",
            "direct": false,
            "version": "2.6.4",
            "ecosystem": "pypi"
          },
          {
            "name": "loguru",
            "direct": false,
            "version": "0.7.3",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mdit-py-plugins",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "model-mommy",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mula",
            "direct": false,
            "version": "0.0.1.dev1",
            "ecosystem": "pypi"
          },
          {
            "name": "multidict",
            "direct": false,
            "version": "6.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "natsort",
            "direct": false,
            "version": "8.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "octopoes",
            "direct": false,
            "version": "0.0.1.dev1",
            "ecosystem": "pypi"
          },
          {
            "name": "openkat",
            "direct": false,
            "version": "0.0.1.dev1",
            "ecosystem": "pypi"
          },
          {
            "name": "overrides",
            "direct": false,
            "version": "7.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pamqp",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pathspec",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pluggy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prompt-toolkit",
            "direct": false,
            "version": "3.0.52",
            "ecosystem": "pypi"
          },
          {
            "name": "propcache",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "protobuf",
            "direct": false,
            "version": "6.32.1",
            "ecosystem": "pypi"
          },
          {
            "name": "protobuf",
            "direct": false,
            "version": "6.33.6",
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": false,
            "version": "7.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg2",
            "direct": false,
            "version": "2.9.11",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1-modules",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pybinaryedge",
            "direct": false,
            "version": "0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.33.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.41.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.46.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydicom",
            "direct": false,
            "version": "2.4.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pydyf",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pynetdicom",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyphen",
            "direct": false,
            "version": "0.17.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "7.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "9.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-assert-utils",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-common-subject",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cov",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-django",
            "direct": false,
            "version": "4.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-drf",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-env",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-fixture-order",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-httpx",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-httpx",
            "direct": false,
            "version": "0.36.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-lambda",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-mock",
            "direct": false,
            "version": "3.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-timeout",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-ipware",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytz",
            "direct": false,
            "version": "2025.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pywin32",
            "direct": false,
            "version": "311",
            "ecosystem": "pypi"
          },
          {
            "name": "qrcode",
            "direct": false,
            "version": "8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "referencing",
            "direct": false,
            "version": "0.36.2",
            "ecosystem": "pypi"
          },
          {
            "name": "referencing",
            "direct": false,
            "version": "0.37.0",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-file",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "returns",
            "direct": false,
            "version": "0.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "returns",
            "direct": false,
            "version": "0.27.0",
            "ecosystem": "pypi"
          },
          {
            "name": "robotframework",
            "direct": false,
            "version": "7.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "robotframework-assertion-engine",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "robotframework-browser",
            "direct": false,
            "version": "19.10.1",
            "ecosystem": "pypi"
          },
          {
            "name": "robotframework-debuglibrary",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "robotframework-httplibrary",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "robotframework-otp",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "robotframework-postgresqldb",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "robotframework-pythonlibcore",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "robotframework-requests",
            "direct": false,
            "version": "0.9.7",
            "ecosystem": "pypi"
          },
          {
            "name": "rocky",
            "direct": false,
            "version": "0.0.1.dev1",
            "ecosystem": "pypi"
          },
          {
            "name": "roman-numerals",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "roman-numerals-py",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "0.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "s3transfer",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sectxt",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "seedir",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "selectolax",
            "direct": false,
            "version": "0.4.7",
            "ecosystem": "pypi"
          },
          {
            "name": "shodan",
            "direct": false,
            "version": "1.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "six",
            "direct": false,
            "version": "1.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sniffio",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "snowballstemmer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-applehelp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-devhelp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-htmlhelp",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-jquery",
            "direct": false,
            "version": "4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-jsmath",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-qthelp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-serializinghtml",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlparse",
            "direct": false,
            "version": "0.5.5",
            "ecosystem": "pypi"
          },
          {
            "name": "tinycss2",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tinyhtml5",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": false,
            "version": "4.67.3",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.13.2",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspection",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspection",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tzdata",
            "direct": false,
            "version": "2026.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tzlocal",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "vine",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "waitress",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "webencodings",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "webtest",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "pypi"
          },
          {
            "name": "win32-setctime",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "yarl",
            "direct": false,
            "version": "1.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "zipp",
            "direct": false,
            "version": "3.23.1",
            "ecosystem": "pypi"
          },
          {
            "name": "zopfli",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 540,
        "direct_count": 125,
        "indirect_count": 415
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 75,
        "merged_prs": 2205,
        "open_issues": 948,
        "closed_ratio": 0.593,
        "closed_issues": 1382,
        "closed_unmerged_prs": 612
      },
      "bus_factor": 5,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "dekkers",
          "commits": 365,
          "avatar_url": "https://avatars.githubusercontent.com/u/656182?v=4"
        },
        {
          "type": "User",
          "login": "underdarknl",
          "commits": 324,
          "avatar_url": "https://avatars.githubusercontent.com/u/1902670?v=4"
        },
        {
          "type": "User",
          "login": "Donnype",
          "commits": 247,
          "avatar_url": "https://avatars.githubusercontent.com/u/46660228?v=4"
        },
        {
          "type": "User",
          "login": "noamblitz",
          "commits": 209,
          "avatar_url": "https://avatars.githubusercontent.com/u/43830693?v=4"
        },
        {
          "type": "User",
          "login": "ammar92",
          "commits": 181,
          "avatar_url": "https://avatars.githubusercontent.com/u/3471807?v=4"
        },
        {
          "type": "User",
          "login": "jpbruinsslot",
          "commits": 167,
          "avatar_url": "https://avatars.githubusercontent.com/u/1571710?v=4"
        },
        {
          "type": "User",
          "login": "madelondohmen",
          "commits": 116,
          "avatar_url": "https://avatars.githubusercontent.com/u/99282220?v=4"
        },
        {
          "type": "User",
          "login": "Rieven",
          "commits": 113,
          "avatar_url": "https://avatars.githubusercontent.com/u/30832687?v=4"
        },
        {
          "type": "User",
          "login": "Darwinkel",
          "commits": 81,
          "avatar_url": "https://avatars.githubusercontent.com/u/9536436?v=4"
        },
        {
          "type": "User",
          "login": "zcrt",
          "commits": 63,
          "avatar_url": "https://avatars.githubusercontent.com/u/115991818?v=4"
        }
      ],
      "contributors_sampled": 49,
      "top_contributor_share": 0.155
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "boefjes-tests.yml",
        "boefjes_container_image.yml",
        "boefjes_tests.yml",
        "build-debian-docker-image.yml",
        "build-rdo-package.yml",
        "build_docs_on_pr.yml",
        "bytes-tests.yml",
        "bytes_container_image.yml",
        "bytes_tests.yml",
        "check_requirements.yml",
        "codeql.yml",
        "containerized_boefjes.yml",
        "debian_package.yml",
        "deploy_docs.yml",
        "mula-tests.yml",
        "mula_container_image.yml",
        "mula_tests.yml",
        "octopoes-tests.yml",
        "octopoes_container_image.yml",
        "octopoes_rtest.yml",
        "octopoes_tests.yml",
        "pre_commit_checks.yml",
        "rocky-tests.yml",
        "rocky_container_image.yml",
        "rocky_makelang.yml",
        "rocky_tests.yml",
        "sonar-cloud.yml",
        "test_debian_packages_on_ubuntu.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json",
        "poetry.lock",
        "uv.lock",
        "yarn.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 8,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 2,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 28 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 3,
            "reason": "dependency not pinned by hash detected -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 1,
            "reason": "9 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "247b4429a081ba93766f98d23c62e7ff0589da35",
        "ran_at": "2026-08-03T04:15:26Z",
        "aggregate_score": 6.2,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "recent_prs": {
        "merged_7d": 7,
        "decided_7d": 7,
        "merged_30d": 16,
        "authors_30d": 3,
        "decided_30d": 19,
        "sample_size": 60,
        "window_days": 30,
        "sample_exhausted": false,
        "authors_probed_30d": 3,
        "newcomer_merged_30d": 0,
        "bot_prs_excluded_30d": 6,
        "newcomer_authors_30d": 0,
        "newcomer_decided_30d": 0
      },
      "ci_last_run_at": "2026-08-02T04:49:30Z",
      "oldest_open_prs": [
        {
          "number": 1888,
          "created_at": "2023-10-09T20:47:05Z",
          "last_comment_at": "2025-09-12T14:39:46Z",
          "last_comment_author": "CLAassistant"
        },
        {
          "number": 2545,
          "created_at": "2024-02-21T17:08:35Z",
          "last_comment_at": "2025-04-22T13:26:29Z",
          "last_comment_author": "sonarqubecloud"
        },
        {
          "number": 2556,
          "created_at": "2024-02-26T08:39:02Z",
          "last_comment_at": "2025-02-13T12:13:46Z",
          "last_comment_author": "sonarqubecloud"
        },
        {
          "number": 3299,
          "created_at": "2024-07-25T12:45:22Z",
          "last_comment_at": "2026-05-05T14:22:36Z",
          "last_comment_author": "hasecon"
        },
        {
          "number": 3347,
          "created_at": "2024-08-12T12:52:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 3349,
          "created_at": "2024-08-12T15:21:31Z",
          "last_comment_at": "2024-08-22T08:40:20Z",
          "last_comment_author": "dekkers"
        },
        {
          "number": 3594,
          "created_at": "2024-09-27T14:46:42Z",
          "last_comment_at": "2025-09-12T14:39:36Z",
          "last_comment_author": "CLAassistant"
        },
        {
          "number": 3652,
          "created_at": "2024-10-08T15:43:22Z",
          "last_comment_at": "2025-04-08T10:21:52Z",
          "last_comment_author": "sonarqubecloud"
        },
        {
          "number": 3774,
          "created_at": "2024-10-31T10:50:11Z",
          "last_comment_at": "2025-03-21T05:51:40Z",
          "last_comment_author": "sonarqubecloud"
        },
        {
          "number": 3808,
          "created_at": "2024-11-06T18:30:28Z",
          "last_comment_at": "2025-06-25T11:58:10Z",
          "last_comment_author": "sonarqubecloud"
        },
        {
          "number": 3822,
          "created_at": "2024-11-11T12:54:57Z",
          "last_comment_at": "2025-03-19T15:33:15Z",
          "last_comment_author": "RomijnHumanoids"
        },
        {
          "number": 4056,
          "created_at": "2025-01-30T13:10:24Z",
          "last_comment_at": "2025-03-20T08:30:59Z",
          "last_comment_author": "Rieven"
        },
        {
          "number": 4069,
          "created_at": "2025-02-06T12:14:42Z",
          "last_comment_at": "2025-07-17T07:09:34Z",
          "last_comment_author": "sonarqubecloud"
        },
        {
          "number": 4091,
          "created_at": "2025-02-12T16:46:52Z",
          "last_comment_at": "2025-02-12T16:53:34Z",
          "last_comment_author": "sonarqubecloud"
        },
        {
          "number": 4126,
          "created_at": "2025-02-26T08:46:10Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 4187,
          "created_at": "2025-03-18T16:17:17Z",
          "last_comment_at": "2025-04-29T11:46:27Z",
          "last_comment_author": "madelondohmen"
        },
        {
          "number": 4204,
          "created_at": "2025-03-24T14:14:05Z",
          "last_comment_at": "2025-06-11T15:48:59Z",
          "last_comment_author": "sonarqubecloud"
        },
        {
          "number": 4211,
          "created_at": "2025-03-25T11:53:16Z",
          "last_comment_at": "2025-03-26T10:18:11Z",
          "last_comment_author": "sonarqubecloud"
        },
        {
          "number": 4227,
          "created_at": "2025-03-27T10:27:17Z",
          "last_comment_at": "2025-06-11T07:31:40Z",
          "last_comment_author": "ammar92"
        },
        {
          "number": 4259,
          "created_at": "2025-04-01T13:24:16Z",
          "last_comment_at": "2025-04-03T12:01:54Z",
          "last_comment_author": "sonarqubecloud"
        }
      ],
      "last_merged_pr_at": "2026-07-31T09:39:20Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 192,
          "created_at": "2022-11-21T12:15:40Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 390,
          "created_at": "2022-11-30T09:26:08Z",
          "last_comment_at": "2025-12-01T15:56:07Z",
          "last_comment_author": "RomijnHumanoids"
        },
        {
          "number": 389,
          "created_at": "2022-11-30T09:35:15Z",
          "last_comment_at": "2023-04-19T08:06:52Z",
          "last_comment_author": "underdarknl"
        },
        {
          "number": 388,
          "created_at": "2022-11-30T09:43:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 386,
          "created_at": "2022-11-30T16:55:50Z",
          "last_comment_at": "2023-12-15T08:00:46Z",
          "last_comment_author": "underdarknl"
        },
        {
          "number": 385,
          "created_at": "2022-11-30T16:58:40Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 384,
          "created_at": "2022-12-01T10:40:35Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 383,
          "created_at": "2022-12-01T10:42:18Z",
          "last_comment_at": "2023-03-24T07:47:13Z",
          "last_comment_author": "underdarknl"
        },
        {
          "number": 382,
          "created_at": "2022-12-01T10:44:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 381,
          "created_at": "2022-12-01T10:49:27Z",
          "last_comment_at": "2023-03-24T07:41:05Z",
          "last_comment_author": "underdarknl"
        },
        {
          "number": 378,
          "created_at": "2022-12-01T15:12:11Z",
          "last_comment_at": "2022-12-01T15:14:14Z",
          "last_comment_author": "TwistMeister"
        },
        {
          "number": 374,
          "created_at": "2022-12-01T15:20:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 372,
          "created_at": "2022-12-01T15:50:28Z",
          "last_comment_at": "2023-05-25T12:00:30Z",
          "last_comment_author": "TwistMeister"
        },
        {
          "number": 79,
          "created_at": "2022-12-01T16:31:33Z",
          "last_comment_at": "2022-12-16T07:04:47Z",
          "last_comment_author": "ITNerdbox"
        },
        {
          "number": 367,
          "created_at": "2022-12-01T16:38:00Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 80,
          "created_at": "2022-12-02T12:12:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 366,
          "created_at": "2022-12-05T10:36:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 363,
          "created_at": "2022-12-05T10:42:05Z",
          "last_comment_at": "2023-01-03T10:46:57Z",
          "last_comment_author": "NoemiOverdijk"
        },
        {
          "number": 362,
          "created_at": "2022-12-05T10:43:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 358,
          "created_at": "2022-12-06T08:10:33Z",
          "last_comment_at": "2022-12-28T14:52:41Z",
          "last_comment_author": "underdarknl"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/SSC-ICT-Innovatie/nl-kat-coordination",
    "host": "github.com",
    "name": "nl-kat-coordination",
    "owner": "SSC-ICT-Innovatie"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "exceptional",
      "name": "Overall health",
      "note": "The weighted overall 79 is calibrated to 93 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 79,
            "calibrated": 93,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 93,
      "inputs": {
        "security": 70,
        "vitality": 91,
        "community": 66,
        "governance": 75,
        "calibration": "2026-08-02",
        "engineering": 92,
        "ai_readiness": 59,
        "weighted_overall_raw": 79
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 91,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "commits_last_year": 213,
              "human_commit_share": 0.66,
              "days_since_last_push": 1,
              "active_weeks_last_year": 40
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "40/52 weeks with commits",
                "points": 27.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 40
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "213 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 213
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 75,
              "latest_release_tag": "v1.22.1",
              "releases_from_tags": false,
              "days_since_latest_release": 19,
              "mean_days_between_releases": 42.5
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "75 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 75
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 19 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 19
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~42.5 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 42.5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "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": 4,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 4 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 66,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "forks": 69,
              "stars": 153,
              "watchers": 16,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "153 stars",
                "points": 35.4,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 153
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "69 forks",
                "points": 15.3,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 69
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "16 watchers",
                "points": 6.5,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 16
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": 0,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (EUPL-1.2)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "EUPL-1.2"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 75,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "excellent",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 88,
            "inputs": {
              "bus_factor": 5,
              "contributors_sampled": 49,
              "top_contributor_share": 0.155
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "5 contributor(s) cover half of all commits",
                "points": 45.9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 16% of commits",
                "points": 19,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 16
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "49 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 49
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 28 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "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": 73,
            "inputs": {
              "merged_prs": 2205,
              "open_issues": 948,
              "closed_issues": 1382,
              "prs_merged_7d": 7,
              "prs_decided_7d": 7,
              "prs_merged_30d": 16,
              "prs_decided_30d": 19,
              "issue_closed_ratio": 0.593,
              "closed_unmerged_prs": 612,
              "first_time_authors_30d": 0,
              "first_time_prs_merged_30d": 0,
              "first_time_prs_decided_30d": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "59% of issues closed",
                "points": 24.9,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 59
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "2205/2817 decided PRs merged",
                "points": 23.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 2205,
                      "decided": 2817
                    }
                  }
                ],
                "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": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "followers": 11,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "SSC-ICT-Innovatie",
              "public_repos": 25,
              "account_age_days": 3010
            },
            "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": "11 followers of SSC-ICT-Innovatie",
                "points": 7.8,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 11,
                      "login": "SSC-ICT-Innovatie"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "25 public repos, account ~8 yr old",
                "points": 22.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 25
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 8
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "good",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 79,
            "inputs": {
              "packages": [
                "mula"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 435
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 435 days ago",
                "points": 14,
                "status": "partial",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 435
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "26 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 26
                    }
                  }
                ],
                "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": "excellent",
        "name": "Engineering Quality",
        "value": 92,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "exceptional",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "28 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 28
                    }
                  }
                ],
                "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": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": "https://openkat.nl",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://openkat.nl",
                "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": "good",
        "name": "Security",
        "value": 70,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 6.2
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 28 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 3",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "9 existing vulnerabilities detected",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "exceptional",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:mula@1.6.1 runtime dependency closure — what installing the published package pulls in — 12 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:mula@1.6.1",
                  "assessed": 12
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 12,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "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": 12,
              "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": 12
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 59,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "weak",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.879,
              "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": "58 of 66 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 58,
                      "sampled": 66
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json",
                "poetry.lock",
                "uv.lock",
                "yarn.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile",
                "boefjes/Makefile",
                "boefjes/packaging/deb/Makefile",
                "bytes/Makefile",
                "bytes/packaging/deb/Makefile",
                "cveapi/Makefile",
                "mula/Makefile",
                "mula/packaging/deb/Makefile",
                "octopoes/Makefile",
                "octopoes/packaging/deb/Makefile",
                "rocky/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.07,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.34
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile, boefjes/Makefile, boefjes/packaging/deb/Makefile, bytes/Makefile, bytes/packaging/deb/Makefile, cveapi/Makefile, mula/Makefile, mula/packaging/deb/Makefile, octopoes/Makefile, octopoes/packaging/deb/Makefile, rocky/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile, boefjes/Makefile, boefjes/packaging/deb/Makefile, bytes/Makefile, bytes/packaging/deb/Makefile, cveapi/Makefile, mula/Makefile, mula/packaging/deb/Makefile, octopoes/Makefile, octopoes/packaging/deb/Makefile, rocky/Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "7 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 7,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "34 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 34,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 95585,
              "source_files_sampled": 1193,
              "oversized_source_files": 2
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "2/1193 source files over 60KB",
                "points": 54.9,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 1193,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "weak",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "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": {
      "top": [
        "library",
        "application"
      ],
      "labels": [
        "network-service",
        "cli",
        "library"
      ],
      "scores": {
        "cli": 10,
        "library": 8,
        "network-service": 11
      },
      "primary": "network-service",
      "evidence": [
        {
          "tier": "declared",
          "label": "cli",
          "source": "pypi.console_scripts",
          "weight": 6
        },
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:pypi",
          "weight": 6
        },
        {
          "tier": "dependencies",
          "label": "cli",
          "source": "dep:click",
          "weight": 4
        },
        {
          "tier": "dependencies",
          "label": "network-service",
          "source": "dep:django",
          "weight": 4
        },
        {
          "tier": "dependencies",
          "label": "network-service",
          "source": "dep:starlette",
          "weight": 4
        },
        {
          "tier": "structure",
          "label": "network-service",
          "source": "tree.compose",
          "weight": 3
        },
        {
          "tier": "description",
          "label": "library",
          "source": "description:library",
          "weight": 2
        }
      ],
      "artifacts": [
        {
          "path": "cveapi/pyproject.toml",
          "labels": [
            "cli"
          ],
          "ecosystem": "pypi"
        }
      ],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Could not fetch pypi package 'openkat' from its registry",
    "pypi package 'bytes' points at a different repository (https://github.com/code-museum/bytes); excluded from ecosystem scoring",
    "pypi package 'rocky' points at a different repository (https://github.com/andersroos/rocky); excluded from ecosystem scoring",
    "Could not fetch pypi package 'boefjes' from its registry",
    "Could not fetch pypi package 'octopoes' from its registry",
    "Could not fetch pypi package 'cveapi' from its registry"
  ],
  "report_type": "repository",
  "generated_at": "2026-08-03T04:16:00.477139Z",
  "schema_version": "0.30.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/SSC-ICT-Innovatie/nl-kat-coordination.svg",
  "full_name": "SSC-ICT-Innovatie/nl-kat-coordination",
  "license_state": "standard",
  "license_spdx": "EUPL-1.2"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v2.5.0、模式 v0.30.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计PyPI.