Звіт у форматі JSON машиночитний
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 180844,
"has_wiki": true,
"homepage": null,
"languages": {
"Go": 1478765,
"Shell": 12430,
"Makefile": 399,
"Dockerfile": 2119
},
"pushed_at": "2026-07-25T08:31:13Z",
"created_at": "2023-02-25T18:42:02Z",
"owner_type": "Organization",
"updated_at": "2026-07-25T08:08:54Z",
"description": null,
"is_archived": false,
"is_disabled": false,
"license_spdx": "Apache-2.0",
"default_branch": "main",
"license_spdx_raw": "Apache-2.0",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": null,
"name": "Kubescape",
"type": "Organization",
"login": "kubescape",
"company": null,
"location": null,
"followers": 286,
"avatar_url": "https://avatars.githubusercontent.com/u/100554170?v=4",
"created_at": "2022-02-28T05:48:05Z",
"is_verified": null,
"public_repos": 65,
"account_age_days": 1612
},
"license": {
"state": "standard",
"spdx_id": "Apache-2.0",
"raw_spdx": "Apache-2.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.0.298",
"kind": "patch",
"published_at": "2026-07-25T08:31:14Z"
},
{
"tag": "v0.0.297",
"kind": "patch",
"published_at": "2026-07-20T12:49:16Z"
},
{
"tag": "v0.0.291",
"kind": "patch",
"published_at": "2026-06-26T17:44:01Z"
},
{
"tag": "v0.0.290",
"kind": "patch",
"published_at": "2026-06-26T12:14:41Z"
},
{
"tag": "v0.0.289",
"kind": "patch",
"published_at": "2026-06-26T10:18:19Z"
},
{
"tag": "v0.0.288",
"kind": "patch",
"published_at": "2026-06-25T12:52:45Z"
},
{
"tag": "v0.0.287",
"kind": "patch",
"published_at": "2026-06-25T11:13:23Z"
},
{
"tag": "v0.0.284",
"kind": "patch",
"published_at": "2026-06-18T08:27:34Z"
},
{
"tag": "v0.0.283",
"kind": "patch",
"published_at": "2026-06-12T09:49:05Z"
},
{
"tag": "v0.0.282",
"kind": "patch",
"published_at": "2026-06-10T08:03:57Z"
},
{
"tag": "v0.0.281",
"kind": "patch",
"published_at": "2026-06-04T20:27:21Z"
},
{
"tag": "v0.0.280",
"kind": "patch",
"published_at": "2026-06-04T09:22:11Z"
},
{
"tag": "v0.0.278",
"kind": "patch",
"published_at": "2026-05-28T09:38:54Z"
},
{
"tag": "v0.0.276",
"kind": "patch",
"published_at": "2026-05-26T17:06:46Z"
},
{
"tag": "v0.0.277",
"kind": "patch",
"published_at": "2026-05-26T17:05:35Z"
},
{
"tag": "v0.0.275",
"kind": "patch",
"published_at": "2026-05-20T17:18:16Z"
},
{
"tag": "v0.0.274",
"kind": "patch",
"published_at": "2026-04-30T13:42:11Z"
},
{
"tag": "v0.0.272",
"kind": "patch",
"published_at": "2026-04-16T13:02:09Z"
},
{
"tag": "v0.0.271",
"kind": "patch",
"published_at": "2026-04-16T12:46:28Z"
},
{
"tag": "v0.0.270",
"kind": "patch",
"published_at": "2026-04-16T07:46:07Z"
},
{
"tag": "v0.0.268",
"kind": "patch",
"published_at": "2026-04-14T12:40:09Z"
},
{
"tag": "v0.0.267",
"kind": "patch",
"published_at": "2026-04-14T11:22:17Z"
},
{
"tag": "v0.0.266",
"kind": "patch",
"published_at": "2026-04-13T14:45:41Z"
},
{
"tag": "v0.0.265",
"kind": "patch",
"published_at": "2026-04-02T12:24:48Z"
},
{
"tag": "v0.0.264",
"kind": "patch",
"published_at": "2026-04-01T16:52:47Z"
},
{
"tag": "v0.0.263",
"kind": "patch",
"published_at": "2026-04-01T13:03:50Z"
},
{
"tag": "v0.0.262",
"kind": "patch",
"published_at": "2026-03-29T20:04:41Z"
},
{
"tag": "v0.0.261",
"kind": "patch",
"published_at": "2026-03-27T13:09:07Z"
},
{
"tag": "v0.0.260",
"kind": "patch",
"published_at": "2026-03-23T05:47:46Z"
},
{
"tag": "v0.0.259",
"kind": "patch",
"published_at": "2026-03-22T11:43:50Z"
},
{
"tag": "v0.0.258",
"kind": "patch",
"published_at": "2026-03-19T18:19:22Z"
},
{
"tag": "v0.0.257",
"kind": "patch",
"published_at": "2026-03-19T14:32:22Z"
},
{
"tag": "v0.0.256",
"kind": "patch",
"published_at": "2026-03-19T14:24:54Z"
},
{
"tag": "v0.0.255",
"kind": "patch",
"published_at": "2026-03-19T13:41:11Z"
},
{
"tag": "v0.0.254",
"kind": "patch",
"published_at": "2026-03-19T13:23:13Z"
},
{
"tag": "v0.0.252",
"kind": "patch",
"published_at": "2026-03-15T09:54:39Z"
},
{
"tag": "v0.0.251",
"kind": "patch",
"published_at": "2026-03-03T20:58:38Z"
},
{
"tag": "v0.0.247",
"kind": "patch",
"published_at": "2026-02-24T16:06:54Z"
},
{
"tag": "v0.0.246",
"kind": "patch",
"published_at": "2026-02-24T11:18:35Z"
},
{
"tag": "v0.0.245",
"kind": "patch",
"published_at": "2026-02-20T10:11:53Z"
},
{
"tag": "v0.0.244",
"kind": "patch",
"published_at": "2026-02-19T10:10:25Z"
},
{
"tag": "v0.0.243",
"kind": "patch",
"published_at": "2026-02-18T11:17:34Z"
},
{
"tag": "v0.0.239",
"kind": "patch",
"published_at": "2026-01-26T19:54:54Z"
},
{
"tag": "v0.0.238",
"kind": "patch",
"published_at": "2026-01-22T21:15:51Z"
},
{
"tag": "v0.0.237",
"kind": "patch",
"published_at": "2026-01-12T17:28:48Z"
},
{
"tag": "v0.0.236",
"kind": "patch",
"published_at": "2025-12-31T10:42:38Z"
},
{
"tag": "v0.0.233",
"kind": "patch",
"published_at": "2025-12-12T13:43:30Z"
},
{
"tag": "v0.0.231",
"kind": "patch",
"published_at": "2025-12-08T12:06:39Z"
},
{
"tag": "v0.0.230",
"kind": "patch",
"published_at": "2025-12-04T14:14:09Z"
},
{
"tag": "v0.0.229",
"kind": "patch",
"published_at": "2025-12-03T06:30:31Z"
},
{
"tag": "v0.0.228",
"kind": "patch",
"published_at": "2025-11-28T06:43:24Z"
},
{
"tag": "v0.0.227",
"kind": "patch",
"published_at": "2025-11-24T08:42:18Z"
},
{
"tag": "v0.0.226",
"kind": "patch",
"published_at": "2025-11-21T20:15:17Z"
},
{
"tag": "v0.0.225",
"kind": "patch",
"published_at": "2025-11-20T13:32:46Z"
},
{
"tag": "v0.0.224",
"kind": "patch",
"published_at": "2025-11-11T13:37:17Z"
},
{
"tag": "v0.0.223",
"kind": "patch",
"published_at": "2025-11-07T07:52:51Z"
},
{
"tag": "v0.0.222",
"kind": "patch",
"published_at": "2025-11-05T19:46:37Z"
},
{
"tag": "v0.0.221",
"kind": "patch",
"published_at": "2025-10-13T05:39:43Z"
},
{
"tag": "v0.0.220",
"kind": "patch",
"published_at": "2025-09-17T06:49:48Z"
},
{
"tag": "v0.0.219",
"kind": "patch",
"published_at": "2025-09-15T08:35:38Z"
},
{
"tag": "v0.0.215",
"kind": "patch",
"published_at": "2025-09-09T11:25:57Z"
},
{
"tag": "v0.0.214",
"kind": "patch",
"published_at": "2025-09-08T15:39:17Z"
},
{
"tag": "v0.0.213",
"kind": "patch",
"published_at": "2025-09-05T18:40:09Z"
},
{
"tag": "v0.0.212",
"kind": "patch",
"published_at": "2025-09-04T08:58:27Z"
},
{
"tag": "v0.0.210",
"kind": "patch",
"published_at": "2025-08-25T11:34:56Z"
},
{
"tag": "v0.0.208",
"kind": "patch",
"published_at": "2025-08-18T07:35:41Z"
},
{
"tag": "v0.0.207",
"kind": "patch",
"published_at": "2025-08-13T14:10:59Z"
},
{
"tag": "v0.0.206",
"kind": "patch",
"published_at": "2025-08-04T18:41:06Z"
},
{
"tag": "v0.0.205",
"kind": "patch",
"published_at": "2025-08-04T05:39:44Z"
},
{
"tag": "v0.0.204",
"kind": "patch",
"published_at": "2025-07-30T12:41:03Z"
},
{
"tag": "v0.0.203",
"kind": "patch",
"published_at": "2025-07-28T16:23:27Z"
},
{
"tag": "v0.0.200",
"kind": "patch",
"published_at": "2025-07-09T17:51:42Z"
},
{
"tag": "v0.0.199",
"kind": "patch",
"published_at": "2025-07-09T15:00:18Z"
},
{
"tag": "v0.0.185",
"kind": "patch",
"published_at": "2025-05-23T14:23:48Z"
},
{
"tag": "v0.0.184",
"kind": "patch",
"published_at": "2025-05-15T14:09:13Z"
},
{
"tag": "v0.0.183",
"kind": "patch",
"published_at": "2025-05-08T11:03:43Z"
},
{
"tag": "v0.0.182",
"kind": "patch",
"published_at": "2025-05-08T09:07:10Z"
},
{
"tag": "v0.0.180",
"kind": "patch",
"published_at": "2025-05-06T11:04:26Z"
},
{
"tag": "v0.0.179",
"kind": "patch",
"published_at": "2025-05-05T15:58:26Z"
},
{
"tag": "v0.0.178",
"kind": "patch",
"published_at": "2025-04-30T11:46:13Z"
},
{
"tag": "v0.0.175",
"kind": "patch",
"published_at": "2025-04-23T11:48:10Z"
},
{
"tag": "v0.0.174",
"kind": "patch",
"published_at": "2025-04-17T19:48:34Z"
},
{
"tag": "v0.0.172",
"kind": "patch",
"published_at": "2025-03-24T13:40:58Z"
},
{
"tag": "v0.0.171",
"kind": "patch",
"published_at": "2025-03-20T11:37:28Z"
},
{
"tag": "v0.0.166",
"kind": "patch",
"published_at": "2025-03-11T17:04:25Z"
},
{
"tag": "v0.0.165",
"kind": "patch",
"published_at": "2025-03-11T10:05:59Z"
},
{
"tag": "v0.0.161",
"kind": "patch",
"published_at": "2025-02-13T12:48:39Z"
},
{
"tag": "v0.0.160",
"kind": "patch",
"published_at": "2025-02-11T10:30:20Z"
},
{
"tag": "v0.0.159",
"kind": "patch",
"published_at": "2025-02-07T14:00:41Z"
},
{
"tag": "v0.0.158",
"kind": "patch",
"published_at": "2025-02-06T09:49:32Z"
},
{
"tag": "v0.0.156",
"kind": "patch",
"published_at": "2025-01-31T08:45:23Z"
},
{
"tag": "v0.0.155",
"kind": "patch",
"published_at": "2025-01-30T08:16:44Z"
},
{
"tag": "v0.0.154",
"kind": "patch",
"published_at": "2025-01-28T15:58:58Z"
},
{
"tag": "v0.0.153",
"kind": "patch",
"published_at": "2025-01-23T11:57:19Z"
},
{
"tag": "v0.0.150",
"kind": "patch",
"published_at": "2025-01-15T21:56:59Z"
},
{
"tag": "v0.0.149",
"kind": "patch",
"published_at": "2025-01-07T16:37:26Z"
},
{
"tag": "v0.0.148",
"kind": "patch",
"published_at": "2024-12-24T13:41:35Z"
},
{
"tag": "v0.0.146",
"kind": "patch",
"published_at": "2024-12-16T08:47:08Z"
},
{
"tag": "v0.0.145",
"kind": "patch",
"published_at": "2024-12-13T14:57:33Z"
},
{
"tag": "v0.0.143",
"kind": "patch",
"published_at": "2024-12-09T12:21:19Z"
}
],
"recent_commits": [
{
"oid": "72c61d4fa849165e4d78068c2598793205ae7e61",
"body": "…lapsing\n\nAdd CIDR-based collapsing for NetworkNeighbors",
"is_bot": false,
"headline": "Merge pull request #348 from kubescape/feat/networkneighbors-cidr-col…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-25T08:08:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67e466c3520215449cf8e2a365f2152fa9418a75",
"body": "…apse-dedup\n\ncollapse dedup (also known as \"greedy bucket\")",
"is_bot": false,
"headline": "Merge pull request #349 from k8sstormcenter/fix/networkneighbors-coll…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-25T08:02:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ac8721e489f5f9f5edf77b65924dbd144f4d9760",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "rewrote to address review, lets retest",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-07-24T10:32:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c20f4371ba5bbca9b83207b0166cc6dc019b0eac",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "grouping CIDRs to avoid dedup",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-07-23T18:44:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "183f910a05d7e649f63f1207ae90604cf9c6dea3",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "first implementation, not optimized",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-07-23T17:54:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "714296906486fb4efebc51dcb082be5290a91b88",
"body": "/16 delivers the most aggressive entry-count reduction (the real\n8,687-entry motivating case collapses to ~10 entries) but at the cost\nof much broader, less precise CIDR blocks. Measured against that same\nreal-world IP set, a /24 floor still collapses it to ~341 entries (down\nfrom 8,687) while keepi\n[…]\ne CollapseConfiguration\nYAML, which was never updated when they were introduced.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(storage): default NetworkCIDRFloorBits to /24 instead of /16",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-23T08:37:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a5b922ed32203a55f38eae426169c3700520f3b8",
"body": "hash() gob-encoded rules/policyRefs to dedupe them, but gob's map\nencoding follows Go's randomized map iteration order. A rule containing\na LabelSelector's MatchLabels map could therefore hash differently\nacross otherwise-identical calls, so GenerateNetworkPolicy's dedup-by-\nhash sometimes kept a du\n[…]\nhich sorts map keys, giving a stable encoding regardless\nof map iteration order.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(networkpolicy): make rule-dedup hash deterministic",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-22T11:27:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "72504c8665af674b31cc8aca74c0fa4e1311ba47",
"body": "…ison\n\ncompareNP compared p1's Egress/Ingress against itself instead of p2,\nmaking every compareNP-based assertion in TestGenerateNetworkPolicy a\nno-op (pre-existing, unrelated to any recent feature work). Fixing the\ncomparison surfaced a real latent bug: mergeIngressRulesByPorts and\nmergeEgressRule\n[…]\nifferent hashes for the\nsame logical rule. Not fixed here - left as a follow-up.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(networkpolicy): dedupe merged peers and fix compareNP self-compar…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-22T11:27:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a21e2836a123b2ddf85f5f943f778fb3550c37af",
"body": "Node-agent bakes the literal destination IP into the NetworkNeighbor\nidentifier hash for external traffic, so every distinct observed IP\nproduces a separate entry - a real profile hit 8,687 such entries and\nwas flagged too-large. Extend the existing path-collapsing pattern\n(CollapseConfiguration CRD\n[…]\nl reflect\ncollapsed ranges, with known-server enrichment preserved for bare IPs.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "feat(storage): add CIDR-based collapsing for NetworkNeighbors",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-22T11:27:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b35788b68337134fc2514574cde1ba7f1225fd43",
"body": "kubescape/workflows@ad4904d0 (2026-07-03) added an `actions: write`\npermission requirement to the docker-build job's buildx cache step in\nincluster-comp-pr-merged.yaml. This repo's caller still only granted\n`actions: read`, and a reusable workflow's job permissions can't exceed\nwhat the caller grants — so every pr-merged run since has failed with\nstartup_failure before any job was created (0 jobs, <1s runtime).\n\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(ci): grant actions:write to pr-merged reusable workflow call",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-20T12:25:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f6c47f23cbedc9ec1b27221a9f0becce0b12d5a5",
"body": "fix(storage): fail fast on connection-pool exhaustion, not just lock contention",
"is_bot": false,
"headline": "Merge pull request #345 from kubescape/fix/pool-contention-fail-fast",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-20T12:22:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f4133dccd7246f1d93e39bf0df3bb0f270a994f",
"body": "…oping\n\nfix(storage): stop pinning one connection for the whole ContainerProfile consolidation pass",
"is_bot": false,
"headline": "Merge pull request #344 from kubescape/fix/consolidator-connection-sc…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-20T12:21:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f45959ff382e768532115b1cad368bda688045cc",
"body": "fix(storage): cache the CollapseConfiguration read instead of doing it inside the write lock",
"is_bot": false,
"headline": "Merge pull request #343 from kubescape/fix/collapseconfig-ttl-cache",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-20T12:21:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "676fd9b5e22b19549d1b1ca48241479b505022c1",
"body": "fix(storage): fail fast on lock contention instead of hanging to the request timeout",
"is_bot": false,
"headline": "Merge pull request #342 from kubescape/fix/lock-contention-fail-fast",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-20T12:20:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c9be501e0ad775bcfa3235d3951f5ad0ce26bf3",
"body": "docs: document metadata-only LIST and the fullSpec resourceVersion toggle",
"is_bot": false,
"headline": "Merge pull request #347 from kubescape/docs/list-metadata-fullspec",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-20T05:36:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8f3636338f931c0a43c44136d2bb3ae9d664c50e",
"body": "…ggle\n\nThe aggregated APIServer serves metadata-only objects on LIST for\nperformance, so LIST and GET of the same object differ over the REST API\n(e.g. VulnerabilityManifestSummary severity counts read as 0 on LIST).\nDocument this behavior and the reserved 'fullSpec'/'metadata'\nresourceVersion value\n[…]\nrom any REST\nclient via 'kubectl get --raw', not only the Go client.\n\nRefs: #346\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "docs: document metadata-only LIST and the fullSpec resourceVersion to…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-20T05:36:32Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9c515a26ec47e5b402ded20d3dd2f8504a679283",
"body": "…contention\n\nLive Helm e2e validation of the prior 3 commits showed relevantCVEs now passing\ncleanly, but network_policy_known_servers still failing with a 504 after a\n~34.5s stall and a generic apiserver Reason:Timeout -- not the ServerTimeout\nthis package's own lock-contention fix produces. That t\n[…]\nils fast as ServerTimeout+Retry-After rather\nthan hanging to the old ~60s bound.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(storage): fail fast on connection-pool exhaustion, not just lock …",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-03T15:53:31Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8b8e0860b7dc66f6f2374c8871555148a4f8259c",
"body": "…lock backstop\n\nAdds TestContainerProfileLockFailFast: 20 concurrent GETs contend for a key\nwhose write lock is held elsewhere; asserts every request resolves within a\n2s bound (well above the shrunk 500ms lockTimeout used for determinism, far\nbelow the 10s request deadline) as apierrors.IsServerTim\n[…]\nhing these commits touch (they operate above SQLite).\n Worth its own follow-up.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "test(storage): add a deterministic fail-fast regression test for the …",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-03T15:52:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9546fdf24efc0c0872eaf9c8a314fa9c796e8c7d",
"body": "…ile consolidation pass\n\nConsolidateTimeSeries held a single pooled *sqlite.Conn (via WithConnection)\nfor its entire serial pass over every active time-series key. Under load this\nstarved REST Create/Get/Update calls competing for the same connection pool\n(default size 10, shared between REST and th\n[…]\n how keys are\ndispatched, not per-key business logic or its internal lock order.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(storage): stop pinning one connection for the whole ContainerProf…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-03T15:51:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6abe45da43517dfff2d54876eae0065da2e1d595",
"body": "…t inside the write lock\n\nPreSave calls CollapseSettings() on every non-time-series Create/Update, which\nin production resolves to NewCRDCollapseSettingsProvider doing an uncached\nstorage Get against the single shared collapseconfigurations/default key. Since\nPreSave runs inside s.locks.Lock(key) (C\n[…]\nr\nwiring — the CR changes rarely enough that TTL is sufficient and much smaller.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(storage): cache the CollapseConfiguration read instead of doing i…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-03T15:51:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "23c356a28fba770adc9db88cdc23417743c3c866",
"body": "Two real bugs and one style nit flagged by Copilot review on PR #342:\n\n- spanLock (the \"waiting for lock\" trace span) was only ended on the success\n path in CreateWithConn/DeleteWithConn/GetWithConn/GuaranteedUpdateWithConn.\n On a contended lock that times out, the function returned before\n spanL\n[…]\nant instead of\n hardcoding the same literal string, avoiding future drift risk.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(storage): address Copilot review comments on lock fail-fast",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-03T15:50:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1f395bc50bc61277afd2771dccb3fd19090466dc",
"body": "…request timeout\n\nBetween v0.0.278 and v0.0.291 several ContainerProfile locking/critical-section\nchanges increased lock-hold time on the per-key MapMutex (pkg/utils/mutex.go).\nUnder load this pushed some Create/Get/Update/Delete calls past the k8s\napiserver's outer request timeout (~60s), surfacing\n[…]\nout + Retry-After:1 contract, per repo docs policy for\nbehavior-visible changes.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(storage): fail fast on lock contention instead of hanging to the …",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-03T11:54:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1f9c8e31a4392c7cd2041f8f05df6a93be6d6520",
"body": "fix: clean up expired/deleted containerprofile time series database entries",
"is_bot": false,
"headline": "Merge pull request #338 from kubescape/fix/expired-ts-profiles-zombies",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-07-01T10:22:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "edd2fb80cd0d1f543a2678ca3c54d24731faced4",
"body": "…action\n\nprofile-compaction: CollapseConfig CRD + projection overlay + user-maged lifecycle",
"is_bot": false,
"headline": "Merge pull request #325 from k8sstormcenter/upstream-pr/sbob-crd-comp…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-26T17:25:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b90b5281219216c519bfe21532cb29834265a980",
"body": "…nt replace semantics\n\nAddresses two PR #325 review blockers on the CollapseConfiguration CRD.\n\n1. Zero-valued global thresholds silently over-collapsed every profile.\n A partial CR that omits openDynamicThreshold / endpointDynamicThreshold\n (or sets only collapseConfigs) decodes the field to 0,\n[…]\ntype + sample; no docs/ feature page exists for this unreleased CRD\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(compaction): guard zero CollapseConfiguration thresholds + docume…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-26T16:58:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2ec74d0cda8d67fa2bad78aab77d665661facd9c",
"body": "…r-scoped CR key\n\nTwo blockers in the CollapseConfiguration wiring found in PR #325 review:\n\n1. Endpoint compaction ignored CollapseConfiguration.collapseConfigs.\n deflateApplicationProfileContainer and DeflateContainerProfileSpec built\n the endpoint analyzer with NewPathAnalyzerWithConfigs(Endp\n[…]\neleased CollapseConfiguration feature; no behavioral doc exists yet\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(compaction): honor collapseConfigs for endpoints + correct cluste…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-26T16:58:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2ea734d97f5e6dfc5962395f13a5f4d4e72c42ad",
"body": "…naged lifecycle\n\nIntroduces a CollapseConfiguration CRD with a projection overlay and a\nuser-managed lifecycle, and wires it into the profile deflate path so\noperator-supplied compaction settings actually take effect.\n\nAdds NewCRDCollapseSettingsProvider(storage.Interface) — a closure that\nreads Co\n[…]\ned-off-by: entlein <einentlein@gmail.com>\n\nDocs-exempt: rebase/squash of contributor PR #325; CRD feature docs to be handled in PR review\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "profile-compaction: CollapseConfig CRD + projection overlay + user-ma…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-26T16:58:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "335978f9fcf391f24a400f725d355507798810fd",
"body": "test: deflake TestCompareDynamic_ZeroAllocHotPath",
"is_bot": false,
"headline": "Merge pull request #340 from kubescape/fix/deflake-zeroalloc-hotpath",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-26T11:56:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aabb0a86ec3a78d999e392fc7dab98b488e2bf9f",
"body": "The zero-allocation assertion measured allocations by diffing the\nprocess-global runtime.MemStats.Mallocs counter around a 10k-iteration\nloop. Mallocs is process-wide, so a single allocation from a background\nruntime goroutine (GC assist, sysmon, the testing timer) landing inside\nthe measurement win\n[…]\ne suite green.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\nDocs-exempt: test-only change, no behavioral change\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "test: deflake TestCompareDynamic_ZeroAllocHotPath",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-26T11:23:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b65fde2eda1325dfd3d9c6ab7b46d513612de620",
"body": "…gation\n\nfix: paginate summary aggregation to avoid 500-item truncation (#337)",
"is_bot": false,
"headline": "Merge pull request #339 from kubescape/fix/337-paginate-summary-aggre…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-26T10:00:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ab84de351183a5af778fc69a52dbe0f7c0920cc7",
"body": "ConfigurationScanSummaryStorage.GetList and VulnerabilitySummaryStorage.GetList\nbuilt their cluster-wide per-namespace aggregations from a single realStore.GetList\ncall. The underlying store caps each page at a default limit of 500 objects and\nreturns a continuation token that was never consumed, so\n[…]\n4.8 (1M context) <noreply@anthropic.com>\n\nDocs-exempt: bug fix to internal summary aggregation pagination, no documented behavior changed\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix: paginate summary aggregation to avoid 500-item truncation (#337)",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-26T09:24:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fcbe1a3c994a03da2f752c3c8af9ccfdfa47be6e",
"body": "allowing CIDRs, wildcards and Plural in IP and DNS",
"is_bot": false,
"headline": "Merge pull request #324 from k8sstormcenter/upstream-pr/sbob-network",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-25T12:33:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5cdffebff7851e86c1c72818ec1869a0d8d6412a",
"body": "Signed-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "update code generation",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-25T11:27:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80a921efd968cd7f8e57104a6e5b6365b9f6d2b6",
"body": "Addon to PR 323: Moving Exec Args from NA to Storage",
"is_bot": false,
"headline": "Merge pull request #328 from k8sstormcenter/upstream-pr/sbob-execs",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-25T10:50:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5d93c6735e81754ab7d430de840de150cb119ce9",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "prepare to repoint NA",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-06-23T15:38:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4e5f539ff5912cab2206cd470fbeacb637422c0",
"body": "NetworkNeighbor.IPAddresses (added on this branch) was missing\nhand-edited entries in the Marshal/Size/String/Unmarshal stanzas of\ngenerated.pb.go, the proto declaration, both conversion functions, and\nthe internal+v1beta1 deepcopy. Result: TestNetworkNeighbor_IPAddresses_\nProtobufRoundtrip failed a\n[…]\nimage is x86_64-only); hand-edit follows the proven recipe from commit\n0d83e2b3 / ad60a5b4.\n\nResolves matthyx review on network_types.go:68 (2026-05-27).\n\nSigned-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "fix(api): hand-edit IPAddresses codegen so the field actually persists",
"author_name": "Entlein",
"author_login": null,
"committed_at": "2026-06-23T14:06:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4bf7cba7f7aebf748fc7d53db3e9816adf1ddf16",
"body": "…nal state\n\nSigned-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "apply rabbit feedback: align networkmatch + network types with rc1 fi…",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-06-23T14:06:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5843ee3dd19efe9c7d62b31621ddff3f7cf7ed5",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "amend README.md",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-06-23T14:06:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5786ac0a60847eaf83ef0a5183a3dc44a13e447e",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "allowing CIDRs, wildcards and Plural in IP and DNS",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-06-23T14:06:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6e9741f6bdf9dd2d8ff46c272fb664e5fa5d277d",
"body": "…s-idle-watch\n\nfix(server): make WatchList=false effective and stop pre-closed watch retry loops",
"is_bot": false,
"headline": "Merge pull request #330 from kubescape/fix/318-effective-feature-gate…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-18T08:02:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c18965e8b731659c62e240f996c6a438c527741c",
"body": "Covers the effective feature-gate ordering, the 422 sendInitialEvents\npre-stream fallback, idleWatch, and the operational impact (ResourceQuota\nmonitor stall and Rancher tight-retry loop). Refs #318, #320, #330.\n\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: document WatchList=false behavior and rationale (#330)",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-18T07:44:24Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cfb73b0fc7bfd71d6cdc026d56ec2a420b1706d6",
"body": "…ture-gates-idle-watch",
"is_bot": false,
"headline": "Merge remote-tracking branch 'origin/main' into fix/318-effective-fea…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-18T07:38:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35603aca572bb50a83be802e4126d824af6933b4",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "we need a seperate not overloaded wildcard for execs",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-06-16T16:10:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "da6dde6352cbc667ffea8122d0c0af870c7fcd13",
"body": "…ntries\n\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix: clean up expired/deleted containerprofile time series database e…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-16T15:12:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b1c04916f4eeb3ea9489c0a4f5d74c4b293223d",
"body": null,
"is_bot": false,
"headline": "Merge branch 'kubescape:main' into upstream-pr/sbob-execs",
"author_name": "Duck",
"author_login": "entlein",
"committed_at": "2026-06-16T14:58:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0ff2930c626f8a72268baa8bcde08fb7d5e74fd3",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "lets see this rebase mess, this will go with NA PR 805",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-06-16T14:55:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54669a0675408600308dae5df55165b506e25f04",
"body": "feat: surface apiserver logs via KS_LOGGER_LEVEL=debug; document >=1.28 requirement",
"is_bot": false,
"headline": "Merge pull request #336 from kubescape/feat/surface-apiserver-logs",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-12T09:24:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c79667f8ce78b2f78f43fca5e23ff2591a2a0daa",
"body": "…28 requirement\n\nThe apiserver's klog output (serving, aggregation, informer-sync, post-start\nhooks) was unconditionally muted to Fatal, hiding the diagnostics needed to\ndebug startup/readyz failures. A real case: on a Kubernetes 1.26 cluster the\ndelegated-authentication informer never syncs, so /re\n[…]\n1.28 minimum, IPv6 bind behavior, and the debug knob in the README.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "feat: surface apiserver logs via KS_LOGGER_LEVEL=debug; document >=1.…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-12T09:15:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "11472e5c3e4fb7bcd06a0fef7410c47afe4dae6e",
"body": "feat: support IPv6-only clusters via configurable bind address",
"is_bot": false,
"headline": "Merge pull request #333 from kubescape/dual-stack",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-10T07:38:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c2f60576669eae0969bc45505ad23eac18a77fa",
"body": "The storage apiserver never set a bind address, leaving it at the\napiserver default 0.0.0.0, which cannot accept connections on IPv6-only\nclusters. The binary takes no apiserver flags (main.go runs flag.Parse\nwith only -kubeconfig registered), so --bind-address cannot be passed at\nruntime; configura\n[…]\nt loopback SANs so IPv6 loopback TLS\nworks on the self-signed path.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "feat: support IPv6-only clusters via configurable bind address",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-10T07:23:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b05fbb80fdbfae5604892181b41520c525af8e50",
"body": "…ermission\n\nfeat: add attestations: write permission for image provenance attestation",
"is_bot": false,
"headline": "Merge pull request #332 from Varadraj75/feat/add-attestations-write-p…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-09T11:51:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "17f457e7c9bf0efa90897e758e4bdd1f517ae00a",
"body": "…tion\n\nRequired by the actions/attest-build-provenance step added to the shared\nincluster-comp-pr-merged.yaml workflow in kubescape/workflows.\n\nSigned-off-by: Varadraj75 <agrawalvaradraj2007@gmail.com>",
"is_bot": false,
"headline": "feat: add attestations: write permission for image provenance attesta…",
"author_name": "Varadraj75",
"author_login": "Varadraj75",
"committed_at": "2026-06-06T11:28:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "117639467b58cb421cf2656dbc8c6ac9fff57ce1",
"body": "… retry loops\n\nTwo fixes for the Rancher tight retry loop (#318), which PR #321 could not\nresolve:\n\n1. The feature-gates override never applied: ComponentGlobalsRegistry.Set()\n ran before flags.Set(\"feature-gates\", ...) populated the flag value and was\n never re-invoked, so the WatchList gate si\n[…]\ne pre-stream 422\nfallback.\n\nAlso adds a missing \"make test\" target.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(server): make WatchList=false effective and stop pre-closed watch…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-05T07:11:48Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fd58401693a9229ca5ec591be176ad5da605752d",
"body": "feat(validation): accept unsupported-schema status in ValidateStatusA…",
"is_bot": false,
"headline": "Merge pull request #329 from harshitg927/unsupported-schema",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-04T20:00:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "943d5d1f6d1bd833281dc607b58de61b987d6461",
"body": "Signed-off-by: Harshit Gandhi <gandhiharshit716@gmail.com>",
"is_bot": false,
"headline": "bumped k8s-interface version",
"author_name": "Harshit Gandhi",
"author_login": "harshitg927",
"committed_at": "2026-06-04T18:11:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "067542f1beebeef8ef7ef678e1ce60ba32d71f4d",
"body": "feat(processor): merge ug- AP/NN into consolidated ContainerProfile",
"is_bot": false,
"headline": "Merge pull request #319 from yugal07/feat/315-user-managed-profile-merge",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-06-04T08:56:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "edda72b49df4b26c91e11f8df14d1287eab56865",
"body": "…ile save\n\nSigned-off-by: yugal07 <yashsadhwani544@gmail.com>",
"is_bot": false,
"headline": "fix(storage): prevent spurious ResourceVersion bumps on ContainerProf…",
"author_name": "yugal07",
"author_login": "yugal07",
"committed_at": "2026-06-03T16:11:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f82ff73161953fd7c9dd2419905f93e18df58c84",
"body": "…nnotation\n\nSigned-off-by: Harshit Gandhi <gandhiharshit716@gmail.com>",
"is_bot": false,
"headline": "feat(validation): accept unsupported-schema status in ValidateStatusA…",
"author_name": "Harshit Gandhi",
"author_login": "harshitg927",
"committed_at": "2026-06-03T14:21:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6cc7348eb6795f8f8c987c684aede936c06a9769",
"body": "… merged delete\n\nSigned-off-by: yugal07 <yashsadhwani544@gmail.com>",
"is_bot": false,
"headline": "fix(processor): make merged ContainerProfile writes idempotent + sync…",
"author_name": "yugal07",
"author_login": "yugal07",
"committed_at": "2026-06-03T13:17:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "787cc4376971376950fd7c00e197ae78494ae966",
"body": "…ow various wildcards\n\nSigned-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "retro fixing the side-effects of the execArgMatcher that needs to all…",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-06-01T17:13:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad6f3e60defa418e2467c97a93e7e8c20b5691b4",
"body": "…orphan cleanup\n\nSigned-off-by: yugal07 <yashsadhwani544@gmail.com>",
"is_bot": false,
"headline": " fix(processor): propogate merged profile delete failures and enable …",
"author_name": "yugal07",
"author_login": "yugal07",
"committed_at": "2026-05-28T20:32:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b0e94e690a6f8c88fd5bab40d64b93ab44112187",
"body": "…/315-user-managed-profile-merge",
"is_bot": false,
"headline": "Merge branch 'main' of https://github.com/kubescape/storage into feat…",
"author_name": "yugal07",
"author_login": "yugal07",
"committed_at": "2026-05-28T09:35:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e7702d2c6cb6462d7831d10dae8f0b4ea40ae95b",
"body": "Signed-off-by: yugal07 <yashsadhwani544@gmail.com>",
"is_bot": false,
"headline": "refactor(processor): split observed and merged ContainerProfile",
"author_name": "yugal07",
"author_login": "yugal07",
"committed_at": "2026-05-28T09:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "45e3bfc9187d805778730331b98933f890ae70b2",
"body": "allowing wildcards in exec args",
"is_bot": false,
"headline": "Merge pull request #322 from k8sstormcenter/upstream-pr/sbob-execs",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-05-28T09:12:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e39d0018391348be97bfc4109da2f76e186ef74",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "exec args new slice",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-05-27T16:07:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ef6ebca445991b9f29e7db6508de91513126a5f",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "apply rabbit feedback: align compare_exec_args with rc1 final state",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-05-27T16:07:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa3863a1db5d8f0af8c3b0887513239064202338",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "allowing wildcards in exec args",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-05-27T16:07:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "383000b005ecbbc5106ffaed8056bfc445402cb9",
"body": null,
"is_bot": false,
"headline": "Merge branch 'main' into feat/315-user-managed-profile-merge",
"author_name": "Yugal Sadhwani",
"author_login": "yugal07",
"committed_at": "2026-05-26T20:30:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "98649ae5dfc78ffd425335b1b7cf50d7f7baa90f",
"body": "…-may-2026\n\nfix(security): bump vulnerable Go dependencies (May 2026)",
"is_bot": false,
"headline": "Merge pull request #327 from kubescape/fix/security-bump-dependencies…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-05-26T16:39:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85be384d30feb046d634d148307faa4d0362f806",
"body": "- github.com/cilium/cilium v1.17.14 → v1.17.15 (GHSA-gj49-89wh-h4gj)\n- golang.org/x/net v0.53.0 → v0.55.0 (GO-2026-5024 through GO-2026-5030)\n- golang.org/x/sys v0.43.0 → v0.45.0 (GO-2026-5024, transitive requirement)\n- golang.org/x/crypto v0.50.0 → v0.52.0 (GO-2026-5005 through GO-2026-5033)\n\nNote: github.com/docker/docker v29.3.1 (GHSA-x744-4wpc-v9h2) is not yet\navailable in the Go module proxy; it will be addressed in a follow-up.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(security): bump vulnerable dependencies",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-05-26T16:19:20Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "3a294b1078849f6aac37df92a3e38dea17e35671",
"body": "…dcards\n\npath-wildcards: anchored trailing-* + per-endpoint port + R0040 args",
"is_bot": false,
"headline": "Merge pull request #323 from k8sstormcenter/upstream-pr/sbob-path-wil…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-05-20T16:42:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9151ecf41755704b1a3964d556c9fb62f3a43c9",
"body": "…s/op, 0 allocs/op on main to ~120 ns/op, 112 B/op, 2 allocs/op here.\"\n\n ┌───────────────────────────────────────────────────┬────────┬──────┬───────────┐\n │ State │ ns/op │ B/op │ allocs/op │\n ├───────────────────────────────────────────────────┼─────\n[…]\nreview) should still warn against */*/* at source — this matcher-side collapse is the safety net for legacy / hand-authored profiles already in the wild.\n\nSigned-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": " ▎ \"On my microbench, /etc/* vs /etc/ssh/sshd_config moved from ~12 n…",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-05-20T14:41:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1f66e682b0297f5a037ef3eb991f0925c331d6a9",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "addressing the rabbit",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-05-18T09:38:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e13cf58c22cde76a42100eb24e413afc68561727",
"body": "…opy, nitpicks)\n\nSigned-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "fix(dynamicpathdetector): apply rabbit feedback (memoise, defensive-c…",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-05-16T10:56:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5a80da34af2f45ed2eda1e435470bcb0d1e5715e",
"body": "Signed-off-by: entlein <einentlein@gmail.com>",
"is_bot": false,
"headline": "path-wildcards: anchored trailing-* + per-endpoint port + R0040 args",
"author_name": "entlein",
"author_login": "entlein",
"committed_at": "2026-05-15T20:33:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "071631e148ed6f25df6737e23bb4c837dbdfe29c",
"body": "Signed-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "disable WatchList flag until we support it",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-05-13T10:53:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "606934cbbacd77dcbf2f3e9a1de773a465e45d5b",
"body": "Signed-off-by: yugal07 <yashsadhwani544@gmail.com>",
"is_bot": false,
"headline": "CodeRabbit Findings",
"author_name": "yugal07",
"author_login": "yugal07",
"committed_at": "2026-05-07T14:38:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "884d791a443710ba4b41e0ab634095815fa245c8",
"body": "Signed-off-by: yugal07 <yashsadhwani544@gmail.com>",
"is_bot": false,
"headline": "feat(processor): merge ug- AP/NN into consolidated ContainerProfile",
"author_name": "yugal07",
"author_login": "yugal07",
"committed_at": "2026-05-07T13:44:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a689d85d50d9bc664d7bd373430dc1421be87f9",
"body": "fix(cleanup): enhance pod deletion logic and add tests for standalone pods",
"is_bot": false,
"headline": "Merge pull request #317 from kubescape/clean-standalone-pods",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-30T13:21:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8be42b9aee672960a39f0510d74ce5385ae17c9c",
"body": "… pods\n\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(cleanup): enhance pod deletion logic and add tests for standalone…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-30T13:09:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2dbea36f1c6ec62e532764a7d6310d3410910972",
"body": "fix(security): bump go-jose to v4.1.4 and syft to v1.42.3",
"is_bot": false,
"headline": "Merge pull request #313 from kubescape/fix/security-go-jose-syft",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-16T12:41:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "318fe59deeae5214a21dff3d9d1a05b88aa1be4a",
"body": "…jose\n\nfix(security): bump otel and go-jose in integration-test-suite",
"is_bot": false,
"headline": "Merge pull request #314 from kubescape/fix/security-integration-otel-…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-16T12:25:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3be14c40373982c00dfa47bc4d0e724704762b34",
"body": "Fixes open Dependabot alerts for tests/integration-test-suite/go.mod:\n- #76: go.opentelemetry.io/otel/sdk 1.35.0 → 1.43.0 (PATH hijacking, HIGH)\n- #75: otlptrace/otlptracehttp 1.35.0 → 1.43.0 (unbounded response body, MEDIUM)\n- #71: otlpmetric/otlpmetrichttp 1.35.0 → 1.43.0 (unbounded response body,\n[…]\n #67: github.com/go-jose/go-jose/v4 4.0.5 → 4.1.4 (JWE decryption panic, HIGH)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(security): bump otel and go-jose in integration-test-suite",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-16T11:36:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "cecb767f48a7f5efe6abd58b0030a7742ea9d31a",
"body": "Fixes dependabot alerts:\n- #68: github.com/go-jose/go-jose/v4 < 4.1.4 (Go JOSE Panics in JWE decryption, HIGH)\n- #58: github.com/anchore/syft < 1.42.3 (Syft improper temporary file cleanup, MEDIUM)\n\nAlso pulls in docker/docker v28.5.2 via syft's dependency chain\n(partial mitigation for alerts #64/#66, no fully patched version available yet).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nSigned-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix(security): bump go-jose to v4.1.4 and syft to v1.42.3",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-16T11:36:51Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "6478a9ca090a985a9967e21d76e89e89314bce69",
"body": "chore(deps): update go-logger to v0.0.28",
"is_bot": false,
"headline": "Merge pull request #312 from kubescape/bump",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-16T07:23:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae766b578e44bd8eb2252d012df1c8eab313e3cd",
"body": "Signed-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "chore(deps): update go-logger to v0.0.28",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-16T07:10:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7a411ecb663139076c9c50a448f68541c9ae2e07",
"body": "fix: restore HostTypeEksEc2 — accidentally removed in #310",
"is_bot": false,
"headline": "Merge pull request #311 from kubescape/fix/restore-eks-ec2-host-type",
"author_name": "kooomix",
"author_login": "kooomix",
"committed_at": "2026-04-14T12:20:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01b12ad19c6c27d795f423e7b3a196740c2f53e8",
"body": "Only HostTypeEcsService and HostTypeEcsTask were deleted from armoapi-go.\nHostTypeEksEc2 still exists and should remain in the valid host types list.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: restore HostTypeEksEc2 — accidentally removed in #310",
"author_name": "kooomix",
"author_login": "kooomix",
"committed_at": "2026-04-14T11:53:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "18d4e8f2fd65c8acff042d26f8d3d5845fd354e4",
"body": "…pe-consts\n\nfix: remove deleted HostTypeEcsService/HostTypeEcsTask, bump armoapi-go v0.0.696",
"is_bot": false,
"headline": "Merge pull request #310 from kubescape/fix/remove-deleted-ecs-host-ty…",
"author_name": "kooomix",
"author_login": "kooomix",
"committed_at": "2026-04-14T10:59:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc85677cb305fed5a7dc96147efcfe04ca0c15c8",
"body": "…rmoapi-go v0.0.696\n\nThese constants were removed from armoapi-go in armosec/armoapi-go#628\n(SUB-6879 — redundant host types). They were duplicates of\nHostTypeEcsEc2/HostTypeEcsFargate which remain.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: remove deleted HostTypeEcsService/HostTypeEcsTask consts, bump a…",
"author_name": "kooomix",
"author_login": "kooomix",
"committed_at": "2026-04-14T10:47:27Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5b3aa8058a8510d162c15397350fce809ce9c690",
"body": "added cloudAccountIdentifier and region to host key",
"is_bot": false,
"headline": "Merge pull request #308 from kubescape/extend-host-key",
"author_name": "shanyl9",
"author_login": "shanyl9",
"committed_at": "2026-04-13T14:24:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "64513f64222b2c7082b98f454c6db585f8ffb1d8",
"body": "Signed-off-by: shanyl9 <shanyl@armosec.io>",
"is_bot": false,
"headline": "added cloudAccountIdentifier and region to host key",
"author_name": "shanyl9",
"author_login": "shanyl9",
"committed_at": "2026-04-12T09:28:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3bf543acdf9ae1487e536d407f3fac244294af13",
"body": "fix buggy locking for migration path",
"is_bot": false,
"headline": "Merge pull request #307 from kubescape/fix-migration",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-02T12:02:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "098d2532c4576e399dacd91a41b08f59ea0c9dae",
"body": "Signed-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "fix buggy locking for migration path",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-02T11:48:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8bc530563d92bccb34d897cd3bd523e1ecd6989c",
"body": "Initialize sbomSet when nil instead of error",
"is_bot": false,
"headline": "Merge pull request #306 from kubescape/fix-304",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-01T16:31:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b925b22b7d7a88e8eb5a93b84bd56990e3b7d8e2",
"body": "Signed-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "Initialize sbomSet when nil instead of error",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-01T16:19:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e4ccf5be4ec22c537aca7b959aac14043f71373",
"body": "…om/cilium/cilium-1.17.14\n\nchore(deps): Bump github.com/cilium/cilium from 1.16.17 to 1.17.14",
"is_bot": false,
"headline": "Merge pull request #305 from kubescape/dependabot/go_modules/github.c…",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-04-01T12:39:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8bb141e646b4bb34f564fbd7ac81cba38c97dc86",
"body": "Bumps [github.com/cilium/cilium](https://github.com/cilium/cilium) from 1.16.17 to 1.17.14.\n- [Release notes](https://github.com/cilium/cilium/releases)\n- [Changelog](https://github.com/cilium/cilium/blob/1.17.14/CHANGELOG.md)\n- [Commits](https://github.com/cilium/cilium/compare/1.16.17...1.17.14)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/cilium/cilium\n dependency-version: 1.17.14\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): Bump github.com/cilium/cilium from 1.16.17 to 1.17.14",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-04-01T12:24:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad364e71973bdb6ae76292225ef04b48dcd53d32",
"body": "restore direct I/O flags for payload file operations",
"is_bot": false,
"headline": "Merge pull request #303 from kubescape/directio",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-03-29T19:45:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4462eed43e1104e6a3cea037167317859d4e7290",
"body": "Signed-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>",
"is_bot": false,
"headline": "restore direct I/O flags for payload file operations",
"author_name": "Matthias Bertschy",
"author_login": "matthyx",
"committed_at": "2026-03-27T12:55:26Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 241,
"latest_release_at": "2026-07-25T08:31:14Z",
"latest_release_tag": "v0.0.298",
"releases_from_tags": false,
"days_since_last_push": 3,
"active_weeks_last_year": 41,
"days_since_latest_release": 3,
"mean_days_between_releases": 5
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": false,
"has_contributing": true,
"health_percentage": 75,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "github.com/kubescape/storage",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/kubescape/storage",
"is_deprecated": false,
"latest_version": "v0.0.298",
"repository_url": "https://github.com/kubescape/storage",
"versions_count": 160,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-25T08:08:39Z",
"latest_version_yanked": null,
"days_since_latest_publish": 3
}
]
},
"popularity": {
"forks": 13,
"stars": 4,
"watchers": 2,
"fork_history": {
"days": [
{
"date": "2023-06-16",
"count": 1
},
{
"date": "2023-06-24",
"count": 1
},
{
"date": "2023-08-20",
"count": 1
},
{
"date": "2023-10-02",
"count": 1
},
{
"date": "2023-10-11",
"count": 1
},
{
"date": "2024-07-10",
"count": 1
},
{
"date": "2025-02-12",
"count": 1
},
{
"date": "2026-01-30",
"count": 1
},
{
"date": "2026-03-03",
"count": 1
},
{
"date": "2026-05-05",
"count": 1
},
{
"date": "2026-06-01",
"count": 1
},
{
"date": "2026-06-06",
"count": 1
}
],
"complete": true,
"collected": 12,
"total_forks": 13
},
"star_history": null,
"open_issues_and_prs": 10
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"example"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile"
],
"api_schema_files": [
"pkg/apis/softwarecomposition/v1beta1/generated.proto"
],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod",
"tests/integration-test-suite/go.mod"
],
"largest_source_bytes": 965162,
"source_files_sampled": 197,
"oversized_source_files": 6,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"go.mod"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "github.com/cilium/cilium",
"direct": false,
"version": "v1.16.17",
"severity": "critical",
"ecosystem": "go",
"cvss_score": 9.2,
"advisory_ids": [
"GHSA-3fcv-jvfp-m4q9",
"GHSA-gj49-89wh-h4gj",
"GHSA-hxv8-4j4r-cqgv",
"GHSA-q6h5-q3q6-f87x",
"GO-2026-4856",
"GO-2026-5400",
"GO-2026-5905",
"GO-2026-5914"
],
"fixed_version": "1.19.4",
"advisory_count": 8,
"oldest_advisory_days": 124
},
{
"name": "google.golang.org/grpc",
"direct": false,
"version": "v1.80.0",
"severity": "critical",
"ecosystem": "go",
"cvss_score": 9.1,
"advisory_ids": [
"GHSA-hrxh-6v49-42gf",
"GO-2026-6061"
],
"fixed_version": "1.82.1",
"advisory_count": 2,
"oldest_advisory_days": 7
},
{
"name": "github.com/containerd/containerd",
"direct": false,
"version": "v1.7.29",
"severity": "high",
"ecosystem": "go",
"cvss_score": 8.8,
"advisory_ids": [
"GHSA-fqw6-gf59-qr4w",
"GHSA-jpcc-p29g-p8mq",
"GHSA-xhf5-7wjv-pqxp",
"GO-2026-5064",
"GO-2026-5338",
"GO-2026-5378",
"GO-2026-5475",
"GO-2026-5622",
"GO-2026-5758"
],
"fixed_version": "2.3.2",
"advisory_count": 9,
"oldest_advisory_days": 68
},
{
"name": "github.com/docker/cli",
"direct": false,
"version": "v28.1.1+incompatible",
"severity": "high",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GHSA-p436-gjf2-799p",
"GO-2026-4610"
],
"fixed_version": "29.2.0+incompatible",
"advisory_count": 2,
"oldest_advisory_days": 146
},
{
"name": "github.com/docker/docker",
"direct": false,
"version": "v28.1.1+incompatible",
"severity": "high",
"ecosystem": "go",
"cvss_score": 8.8,
"advisory_ids": [
"GHSA-pxq6-2prw-chj9",
"GHSA-rg2x-37c3-w2rh",
"GHSA-vp62-88p7-qqf5",
"GHSA-x744-4wpc-v9h2",
"GHSA-x86f-5xw2-fm2r",
"GO-2026-4883",
"GO-2026-4887",
"GO-2026-5617",
"GO-2026-5668",
"GO-2026-5746"
],
"fixed_version": "29.3.1",
"advisory_count": 10,
"oldest_advisory_days": 123
},
{
"name": "github.com/docker/docker",
"direct": false,
"version": "v28.5.2+incompatible",
"severity": "high",
"ecosystem": "go",
"cvss_score": 8.8,
"advisory_ids": [
"GHSA-pxq6-2prw-chj9",
"GHSA-rg2x-37c3-w2rh",
"GHSA-vp62-88p7-qqf5",
"GHSA-x744-4wpc-v9h2",
"GHSA-x86f-5xw2-fm2r",
"GO-2026-4883",
"GO-2026-4887",
"GO-2026-5617",
"GO-2026-5668",
"GO-2026-5746"
],
"fixed_version": "29.3.1",
"advisory_count": 10,
"oldest_advisory_days": 123
},
{
"name": "github.com/inspektor-gadget/inspektor-gadget",
"direct": false,
"version": "v0.40.0",
"severity": "high",
"ecosystem": "go",
"cvss_score": 8.4,
"advisory_ids": [
"GHSA-34r5-6j7w-235f",
"GHSA-79qw-g77v-2vfh",
"GHSA-7cfq-5mhv-jrp9",
"GO-2026-5068",
"GO-2026-5211",
"GO-2026-5214"
],
"fixed_version": "0.53.1",
"advisory_count": 6,
"oldest_advisory_days": 97
},
{
"name": "github.com/moby/moby",
"direct": false,
"version": "v28.1.1+incompatible",
"severity": "high",
"ecosystem": "go",
"cvss_score": 8.8,
"advisory_ids": [
"GHSA-pxq6-2prw-chj9",
"GHSA-rg2x-37c3-w2rh",
"GHSA-vp62-88p7-qqf5",
"GHSA-x744-4wpc-v9h2",
"GHSA-x86f-5xw2-fm2r",
"GO-2026-4883",
"GO-2026-4887",
"GO-2026-5617",
"GO-2026-5668",
"GO-2026-5746"
],
"fixed_version": "29.3.1",
"advisory_count": 10,
"oldest_advisory_days": 123
},
{
"name": "oras.land/oras-go/v2",
"direct": false,
"version": "v2.5.0",
"severity": "high",
"ecosystem": "go",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-8xwf-rjm4-xvhv",
"GHSA-fxhp-mv3v-67qp",
"GHSA-jxpm-75mh-9fp7",
"GHSA-vh4v-2xq2-g5cg",
"GHSA-xf85-363p-868w",
"GO-2026-5879",
"GO-2026-5880",
"GO-2026-5882",
"GO-2026-5884",
"GO-2026-5885"
],
"fixed_version": "2.6.2",
"advisory_count": 10,
"oldest_advisory_days": 27
},
{
"name": "github.com/anchore/syft",
"direct": true,
"version": "v1.18.1",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-rjcw-vg7j-m9rc",
"GO-2026-4809"
],
"fixed_version": "1.42.3",
"advisory_count": 2,
"oldest_advisory_days": 130
},
{
"name": "github.com/cilium/cilium",
"direct": false,
"version": "v1.17.15",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 6.9,
"advisory_ids": [
"GHSA-q6h5-q3q6-f87x",
"GO-2026-5914"
],
"fixed_version": "1.19.4",
"advisory_count": 2,
"oldest_advisory_days": 22
},
{
"name": "github.com/google/cel-go",
"direct": false,
"version": "v0.26.0",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-gcjh-h69q-9w9g"
],
"fixed_version": "0.29.0",
"advisory_count": 1,
"oldest_advisory_days": 4
},
{
"name": "github.com/gopacket/gopacket",
"direct": false,
"version": "v1.3.2-0.20241202175635-b43272ae1eb8",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-6r28-9ppf-4hj5",
"GHSA-g6v3-7xmc-w563"
],
"fixed_version": "1.6.1",
"advisory_count": 2,
"oldest_advisory_days": 0
},
{
"name": "go.mongodb.org/mongo-driver",
"direct": false,
"version": "v1.17.1",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 6.5,
"advisory_ids": [
"GHSA-cp6g-7hqx-qxhp",
"GO-2026-5327"
],
"fixed_version": "2.4.2",
"advisory_count": 2,
"oldest_advisory_days": 168
},
{
"name": "golang.org/x/net",
"direct": false,
"version": "v0.52.0",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 6.5,
"advisory_ids": [
"GHSA-5cv4-jp36-h3mw",
"GO-2026-4918",
"GO-2026-5025",
"GO-2026-5026",
"GO-2026-5027",
"GO-2026-5028",
"GO-2026-5029",
"GO-2026-5030",
"GO-2026-5942"
],
"fixed_version": "1.26.3",
"advisory_count": 9,
"oldest_advisory_days": 82
},
{
"name": "go.opentelemetry.io/otel",
"direct": true,
"version": "v1.43.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5158"
],
"fixed_version": "1.44.0",
"advisory_count": 1,
"oldest_advisory_days": 4
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.35.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5970"
],
"fixed_version": "0.39.0",
"advisory_count": 1,
"oldest_advisory_days": 14
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.37.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5970"
],
"fixed_version": "0.39.0",
"advisory_count": 1,
"oldest_advisory_days": 14
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5841"
],
"fixed_version": "1.18.7",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.4",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5841"
],
"fixed_version": "1.18.7",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "golang.org/x/crypto",
"direct": false,
"version": "v0.52.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5932"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 21
},
{
"name": "golang.org/x/net",
"direct": false,
"version": "v0.55.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5942"
],
"fixed_version": "0.56.0",
"advisory_count": 1,
"oldest_advisory_days": 14
},
{
"name": "golang.org/x/sys",
"direct": false,
"version": "v0.42.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5024"
],
"fixed_version": "0.44.0",
"advisory_count": 1,
"oldest_advisory_days": 67
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 7,
"unknown": 8,
"critical": 2,
"moderate": 6
},
"advisory_count": 93,
"affected_count": 23,
"assessed_count": 354,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 4
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/SergJa/jsonhash",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20210531165746-fc45f346aa74"
},
{
"name": "github.com/anchore/syft",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.42.3"
},
{
"name": "github.com/armosec/armoapi-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.696"
},
{
"name": "github.com/armosec/utils-k8s-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.30"
},
{
"name": "github.com/containers/common",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.63.0"
},
{
"name": "github.com/deckarep/golang-set/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.7.0"
},
{
"name": "github.com/dghubble/trie",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.0"
},
{
"name": "github.com/didip/tollbooth/v7",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v7.0.2"
},
{
"name": "github.com/go-logr/zapr",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.0"
},
{
"name": "github.com/goradd/maps",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.0"
},
{
"name": "github.com/grafana/pyroscope-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.2.2"
},
{
"name": "github.com/kinbiko/jsonassert",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.2.0"
},
{
"name": "github.com/kubescape/go-logger",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.28"
},
{
"name": "github.com/kubescape/k8s-interface",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.214"
},
{
"name": "github.com/ncw/directio",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.5"
},
{
"name": "github.com/olvrng/ujson",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.0"
},
{
"name": "github.com/puzpuzpuz/xsync/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.4.1"
},
{
"name": "github.com/spf13/afero",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.15.0"
},
{
"name": "github.com/spf13/cobra",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.2"
},
{
"name": "github.com/spf13/viper",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.20.1"
},
{
"name": "github.com/stretchr/testify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.1"
},
{
"name": "github.com/yl2chen/cidranger",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.2"
},
{
"name": "go.opentelemetry.io/otel",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.43.0"
},
{
"name": "go.uber.org/goleak",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.0"
},
{
"name": "go.uber.org/multierr",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.0"
},
{
"name": "go.uber.org/zap",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.27.1"
},
{
"name": "go4.org/netipx",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20231129151722-fdeea329fbba"
},
{
"name": "golang.org/x/sync",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.20.0"
},
{
"name": "golang.org/x/text",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.37.0"
},
{
"name": "k8s.io/api",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.0"
},
{
"name": "k8s.io/apimachinery",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.0"
},
{
"name": "k8s.io/apiserver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.0"
},
{
"name": "k8s.io/client-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.0"
},
{
"name": "k8s.io/code-generator",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.0"
},
{
"name": "k8s.io/component-base",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.0"
},
{
"name": "k8s.io/klog/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.130.1"
},
{
"name": "k8s.io/kube-openapi",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20250910181357-589584f1c912"
},
{
"name": "k8s.io/utils",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260319190234-28399d86e0b5"
},
{
"name": "sigs.k8s.io/structured-merge-diff/v6",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v6.3.0"
},
{
"name": "zombiezen.com/go/sqlite",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "github.com/anchore/syft",
"direct": true,
"version": "v1.18.1",
"ecosystem": "go"
},
{
"name": "github.com/anchore/syft",
"direct": true,
"version": "v1.42.3",
"ecosystem": "go"
},
{
"name": "github.com/armosec/armoapi-go",
"direct": true,
"version": "v0.0.596",
"ecosystem": "go"
},
{
"name": "github.com/armosec/armoapi-go",
"direct": true,
"version": "v0.0.696",
"ecosystem": "go"
},
{
"name": "github.com/armosec/utils-k8s-go",
"direct": true,
"version": "v0.0.30",
"ecosystem": "go"
},
{
"name": "github.com/containers/common",
"direct": true,
"version": "v0.63.0",
"ecosystem": "go"
},
{
"name": "github.com/deckarep/golang-set/v2",
"direct": true,
"version": "v2.7.0",
"ecosystem": "go"
},
{
"name": "github.com/dghubble/trie",
"direct": true,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/didip/tollbooth/v7",
"direct": true,
"version": "v7.0.2",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/zapr",
"direct": true,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/goradd/maps",
"direct": true,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/grafana/pyroscope-go",
"direct": true,
"version": "v1.2.2",
"ecosystem": "go"
},
{
"name": "github.com/kinbiko/jsonassert",
"direct": true,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/kubescape/go-logger",
"direct": true,
"version": "v0.0.24",
"ecosystem": "go"
},
{
"name": "github.com/kubescape/go-logger",
"direct": true,
"version": "v0.0.28",
"ecosystem": "go"
},
{
"name": "github.com/kubescape/k8s-interface",
"direct": true,
"version": "v0.0.195",
"ecosystem": "go"
},
{
"name": "github.com/kubescape/k8s-interface",
"direct": true,
"version": "v0.0.214",
"ecosystem": "go"
},
{
"name": "github.com/ncw/directio",
"direct": true,
"version": "v1.0.5",
"ecosystem": "go"
},
{
"name": "github.com/olvrng/ujson",
"direct": true,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/puzpuzpuz/xsync/v2",
"direct": true,
"version": "v2.4.1",
"ecosystem": "go"
},
{
"name": "github.com/sergja/jsonhash",
"direct": true,
"version": "v0.0.0-20210531165746-fc45f346aa74",
"ecosystem": "go"
},
{
"name": "github.com/spf13/afero",
"direct": true,
"version": "v1.12.0",
"ecosystem": "go"
},
{
"name": "github.com/spf13/afero",
"direct": true,
"version": "v1.15.0",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cobra",
"direct": true,
"version": "v1.10.2",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cobra",
"direct": true,
"version": "v1.9.1",
"ecosystem": "go"
},
{
"name": "github.com/spf13/viper",
"direct": true,
"version": "v1.20.1",
"ecosystem": "go"
},
{
"name": "github.com/stretchr/testify",
"direct": true,
"version": "v1.11.1",
"ecosystem": "go"
},
{
"name": "github.com/yl2chen/cidranger",
"direct": true,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel",
"direct": true,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/goleak",
"direct": true,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/multierr",
"direct": true,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/zap",
"direct": true,
"version": "v1.27.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/zap",
"direct": true,
"version": "v1.27.1",
"ecosystem": "go"
},
{
"name": "go4.org/netipx",
"direct": true,
"version": "v0.0.0-20231129151722-fdeea329fbba",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": true,
"version": "v0.20.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.37.0",
"ecosystem": "go"
},
{
"name": "k8s.io/api",
"direct": true,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "k8s.io/api",
"direct": true,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "k8s.io/apimachinery",
"direct": true,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "k8s.io/apimachinery",
"direct": true,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "k8s.io/apiserver",
"direct": true,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "k8s.io/apiserver",
"direct": true,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "k8s.io/client-go",
"direct": true,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "k8s.io/client-go",
"direct": true,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "k8s.io/code-generator",
"direct": true,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "k8s.io/component-base",
"direct": true,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "k8s.io/component-base",
"direct": true,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "k8s.io/klog/v2",
"direct": true,
"version": "v2.130.1",
"ecosystem": "go"
},
{
"name": "k8s.io/kube-openapi",
"direct": true,
"version": "v0.0.0-20250318190949-c8a335a9a2ff",
"ecosystem": "go"
},
{
"name": "k8s.io/kube-openapi",
"direct": true,
"version": "v0.0.0-20250910181357-589584f1c912",
"ecosystem": "go"
},
{
"name": "k8s.io/utils",
"direct": true,
"version": "v0.0.0-20250321185631-1f6e0b77f77e",
"ecosystem": "go"
},
{
"name": "k8s.io/utils",
"direct": true,
"version": "v0.0.0-20260319190234-28399d86e0b5",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/structured-merge-diff/v6",
"direct": true,
"version": "v6.3.0",
"ecosystem": "go"
},
{
"name": "zombiezen.com/go/sqlite",
"direct": true,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "cel.dev/expr",
"direct": false,
"version": "v0.25.1",
"ecosystem": "go"
},
{
"name": "cyphar.com/go-pathrs",
"direct": false,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/acobaugh/osrelease",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/adalogics/go-fuzz-headers",
"direct": false,
"version": "v0.0.0-20230811130428-ced1acdcaa24",
"ecosystem": "go"
},
{
"name": "github.com/adamkorcz/go-118-fuzz-build",
"direct": false,
"version": "v0.0.0-20231105174938-2b5cbb29f3e2",
"ecosystem": "go"
},
{
"name": "github.com/anchore/go-logger",
"direct": false,
"version": "v0.0.0-20250318195838-07ae343dd722",
"ecosystem": "go"
},
{
"name": "github.com/anchore/packageurl-go",
"direct": false,
"version": "v0.1.1-0.20241018175412-5c22e6360c4f",
"ecosystem": "go"
},
{
"name": "github.com/anchore/packageurl-go",
"direct": false,
"version": "v0.1.1-0.20250220190351-d62adb6e1115",
"ecosystem": "go"
},
{
"name": "github.com/anchore/stereoscope",
"direct": false,
"version": "v0.0.11",
"ecosystem": "go"
},
{
"name": "github.com/anchore/stereoscope",
"direct": false,
"version": "v0.1.22",
"ecosystem": "go"
},
{
"name": "github.com/antlr4-go/antlr/v4",
"direct": false,
"version": "v4.13.0",
"ecosystem": "go"
},
{
"name": "github.com/armosec/gojay",
"direct": false,
"version": "v1.2.17",
"ecosystem": "go"
},
{
"name": "github.com/armosec/utils-go",
"direct": false,
"version": "v0.0.58",
"ecosystem": "go"
},
{
"name": "github.com/asaskevich/govalidator",
"direct": false,
"version": "v0.0.0-20230301143203-a9d515a09cc2",
"ecosystem": "go"
},
{
"name": "github.com/azure/go-ansiterm",
"direct": false,
"version": "v0.0.0-20250102033503-faa5f7b0171c",
"ecosystem": "go"
},
{
"name": "github.com/becheran/wildmatch-go",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/beorn7/perks",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/blang/semver/v4",
"direct": false,
"version": "v4.0.0",
"ecosystem": "go"
},
{
"name": "github.com/bmatcuk/doublestar/v4",
"direct": false,
"version": "v4.10.0",
"ecosystem": "go"
},
{
"name": "github.com/bmatcuk/doublestar/v4",
"direct": false,
"version": "v4.7.1",
"ecosystem": "go"
},
{
"name": "github.com/briandowns/spinner",
"direct": false,
"version": "v1.23.2",
"ecosystem": "go"
},
{
"name": "github.com/cenkalti/backoff",
"direct": false,
"version": "v2.2.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/cenkalti/backoff/v4",
"direct": false,
"version": "v4.3.0",
"ecosystem": "go"
},
{
"name": "github.com/cenkalti/backoff/v5",
"direct": false,
"version": "v5.0.3",
"ecosystem": "go"
},
{
"name": "github.com/cespare/xxhash/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/cilium/cilium",
"direct": false,
"version": "v1.16.17",
"ecosystem": "go"
},
{
"name": "github.com/cilium/cilium",
"direct": false,
"version": "v1.17.15",
"ecosystem": "go"
},
{
"name": "github.com/cilium/ebpf",
"direct": false,
"version": "v0.17.1",
"ecosystem": "go"
},
{
"name": "github.com/cilium/ebpf",
"direct": false,
"version": "v0.18.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/cgroups/v3",
"direct": false,
"version": "v3.0.5",
"ecosystem": "go"
},
{
"name": "github.com/containerd/containerd",
"direct": false,
"version": "v1.7.29",
"ecosystem": "go"
},
{
"name": "github.com/containerd/containerd/api",
"direct": false,
"version": "v1.8.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/continuity",
"direct": false,
"version": "v0.4.4",
"ecosystem": "go"
},
{
"name": "github.com/containerd/errdefs",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/errdefs/pkg",
"direct": false,
"version": "v0.3.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/fifo",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/log",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/platforms",
"direct": false,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/containerd/ttrpc",
"direct": false,
"version": "v1.2.7",
"ecosystem": "go"
},
{
"name": "github.com/containerd/typeurl/v2",
"direct": false,
"version": "v2.2.3",
"ecosystem": "go"
},
{
"name": "github.com/coreos/go-oidc/v3",
"direct": false,
"version": "v3.14.1",
"ecosystem": "go"
},
{
"name": "github.com/coreos/go-semver",
"direct": false,
"version": "v0.3.1",
"ecosystem": "go"
},
{
"name": "github.com/coreos/go-systemd/v22",
"direct": false,
"version": "v22.5.0",
"ecosystem": "go"
},
{
"name": "github.com/crewjam/rfc5424",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/cyphar/filepath-securejoin",
"direct": false,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/davecgh/go-spew",
"direct": false,
"version": "v1.1.2-0.20180830191138-d8f796af33cc",
"ecosystem": "go"
},
{
"name": "github.com/distribution/reference",
"direct": false,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/docker/cli",
"direct": false,
"version": "v28.1.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/cli",
"direct": false,
"version": "v29.3.0+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/docker",
"direct": false,
"version": "v28.1.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/docker",
"direct": false,
"version": "v28.5.2+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/docker-credential-helpers",
"direct": false,
"version": "v0.9.3",
"ecosystem": "go"
},
{
"name": "github.com/docker/docker-credential-helpers",
"direct": false,
"version": "v0.9.5",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-connections",
"direct": false,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-connections",
"direct": false,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-events",
"direct": false,
"version": "v0.0.0-20190806004212-e31b211e4f1c",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-units",
"direct": false,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/dustin/go-humanize",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/ebitengine/purego",
"direct": false,
"version": "v0.8.2",
"ecosystem": "go"
},
{
"name": "github.com/emicklei/go-restful/v3",
"direct": false,
"version": "v3.12.1",
"ecosystem": "go"
},
{
"name": "github.com/emicklei/go-restful/v3",
"direct": false,
"version": "v3.12.2",
"ecosystem": "go"
},
{
"name": "github.com/evanphx/json-patch",
"direct": false,
"version": "v5.9.0+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/facebookincubator/nvdtools",
"direct": false,
"version": "v0.1.5",
"ecosystem": "go"
},
{
"name": "github.com/fatih/color",
"direct": false,
"version": "v1.18.0",
"ecosystem": "go"
},
{
"name": "github.com/fatih/color",
"direct": false,
"version": "v1.19.0",
"ecosystem": "go"
},
{
"name": "github.com/felixge/httpsnoop",
"direct": false,
"version": "v1.0.4",
"ecosystem": "go"
},
{
"name": "github.com/francoispqt/gojay",
"direct": false,
"version": "v1.2.13",
"ecosystem": "go"
},
{
"name": "github.com/fsnotify/fsnotify",
"direct": false,
"version": "v1.9.0",
"ecosystem": "go"
},
{
"name": "github.com/fxamacker/cbor/v2",
"direct": false,
"version": "v2.8.0",
"ecosystem": "go"
},
{
"name": "github.com/fxamacker/cbor/v2",
"direct": false,
"version": "v2.9.0",
"ecosystem": "go"
},
{
"name": "github.com/gabriel-vasile/mimetype",
"direct": false,
"version": "v1.4.13",
"ecosystem": "go"
},
{
"name": "github.com/gabriel-vasile/mimetype",
"direct": false,
"version": "v1.4.7",
"ecosystem": "go"
},
{
"name": "github.com/gammazero/deque",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/github/go-spdx/v2",
"direct": false,
"version": "v2.3.2",
"ecosystem": "go"
},
{
"name": "github.com/github/go-spdx/v2",
"direct": false,
"version": "v2.4.0",
"ecosystem": "go"
},
{
"name": "github.com/go-errors/errors",
"direct": false,
"version": "v1.5.1",
"ecosystem": "go"
},
{
"name": "github.com/go-jose/go-jose/v4",
"direct": false,
"version": "v4.1.4",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/logr",
"direct": false,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/stdr",
"direct": false,
"version": "v1.2.2",
"ecosystem": "go"
},
{
"name": "github.com/go-ole/go-ole",
"direct": false,
"version": "v1.2.6",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/analysis",
"direct": false,
"version": "v0.23.0",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/errors",
"direct": false,
"version": "v0.22.1",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/jsonpointer",
"direct": false,
"version": "v0.21.0",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/jsonreference",
"direct": false,
"version": "v0.21.0",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/loads",
"direct": false,
"version": "v0.22.0",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/runtime",
"direct": false,
"version": "v0.28.0",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/spec",
"direct": false,
"version": "v0.21.0",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/strfmt",
"direct": false,
"version": "v0.23.0",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag",
"direct": false,
"version": "v0.23.1",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/validate",
"direct": false,
"version": "v0.24.0",
"ecosystem": "go"
},
{
"name": "github.com/go-pkgz/expirable-cache/v3",
"direct": false,
"version": "v3.0.0",
"ecosystem": "go"
},
{
"name": "github.com/go-viper/mapstructure/v2",
"direct": false,
"version": "v2.4.0",
"ecosystem": "go"
},
{
"name": "github.com/go-viper/mapstructure/v2",
"direct": false,
"version": "v2.5.0",
"ecosystem": "go"
},
{
"name": "github.com/godbus/dbus/v5",
"direct": false,
"version": "v5.1.0",
"ecosystem": "go"
},
{
"name": "github.com/gogo/protobuf",
"direct": false,
"version": "v1.3.2",
"ecosystem": "go"
},
{
"name": "github.com/gohugoio/hashstructure",
"direct": false,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/golang/groupcache",
"direct": false,
"version": "v0.0.0-20241129210726-2c02b8208cf8",
"ecosystem": "go"
},
{
"name": "github.com/golang/protobuf",
"direct": false,
"version": "v1.5.4",
"ecosystem": "go"
},
{
"name": "github.com/google/btree",
"direct": false,
"version": "v1.1.3",
"ecosystem": "go"
},
{
"name": "github.com/google/cel-go",
"direct": false,
"version": "v0.26.0",
"ecosystem": "go"
},
{
"name": "github.com/google/gnostic-models",
"direct": false,
"version": "v0.6.9",
"ecosystem": "go"
},
{
"name": "github.com/google/gnostic-models",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/google/go-cmp",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/google/go-containerregistry",
"direct": false,
"version": "v0.20.3",
"ecosystem": "go"
},
{
"name": "github.com/google/go-containerregistry",
"direct": false,
"version": "v0.21.2",
"ecosystem": "go"
},
{
"name": "github.com/google/licensecheck",
"direct": false,
"version": "v0.3.1",
"ecosystem": "go"
},
{
"name": "github.com/google/shlex",
"direct": false,
"version": "v0.0.0-20191202100458-e7afc7fbc510",
"ecosystem": "go"
},
{
"name": "github.com/google/uuid",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/gopacket/gopacket",
"direct": false,
"version": "v1.3.2-0.20241202175635-b43272ae1eb8",
"ecosystem": "go"
},
{
"name": "github.com/grafana/pyroscope-go/godeltaprof",
"direct": false,
"version": "v0.1.8",
"ecosystem": "go"
},
{
"name": "github.com/gregjones/httpcache",
"direct": false,
"version": "v0.0.0-20190611155906-901d90724c79",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/go-grpc-prometheus",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/grpc-gateway/v2",
"direct": false,
"version": "v2.28.0",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/errwrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/go-multierror",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/golang-lru/v2",
"direct": false,
"version": "v2.0.7",
"ecosystem": "go"
},
{
"name": "github.com/iceber/iouring-go",
"direct": false,
"version": "v0.0.0-20230403020409-002cfd2e2a90",
"ecosystem": "go"
},
{
"name": "github.com/inconshreveable/mousetrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/inspektor-gadget/inspektor-gadget",
"direct": false,
"version": "v0.40.0",
"ecosystem": "go"
},
{
"name": "github.com/jinzhu/copier",
"direct": false,
"version": "v0.4.0",
"ecosystem": "go"
},
{
"name": "github.com/josharian/intern",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/json-iterator/go",
"direct": false,
"version": "v1.1.12",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.0",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.4",
"ecosystem": "go"
},
{
"name": "github.com/kubescape/node-agent",
"direct": false,
"version": "v0.2.343",
"ecosystem": "go"
},
{
"name": "github.com/kubescape/storage",
"direct": false,
"version": "v0.0.179",
"ecosystem": "go"
},
{
"name": "github.com/kubescape/workerpool",
"direct": false,
"version": "v0.0.0-20250526074519-0e4a4e7f44cf",
"ecosystem": "go"
},
{
"name": "github.com/kylelemons/godebug",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/liggitt/tabwriter",
"direct": false,
"version": "v0.0.0-20181228230101-89fcab3d43de",
"ecosystem": "go"
},
{
"name": "github.com/lufia/plan9stats",
"direct": false,
"version": "v0.0.0-20211012122336-39d0f177ccd0",
"ecosystem": "go"
},
{
"name": "github.com/mackerelio/go-osstat",
"direct": false,
"version": "v0.2.5",
"ecosystem": "go"
},
{
"name": "github.com/mailru/easyjson",
"direct": false,
"version": "v0.9.0",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-colorable",
"direct": false,
"version": "v0.1.14",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-isatty",
"direct": false,
"version": "v0.0.20",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-isatty",
"direct": false,
"version": "v0.0.21",
"ecosystem": "go"
},
{
"name": "github.com/microsoft/go-winio",
"direct": false,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/microsoft/hcsshim",
"direct": false,
"version": "v0.12.9",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/go-homedir",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/hashstructure/v2",
"direct": false,
"version": "v2.0.2",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/mapstructure",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/docker-image-spec",
"direct": false,
"version": "v1.3.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/locker",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/moby",
"direct": false,
"version": "v28.1.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/mountinfo",
"direct": false,
"version": "v0.7.2",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/sequential",
"direct": false,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/signal",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/user",
"direct": false,
"version": "v0.4.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/userns",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/term",
"direct": false,
"version": "v0.5.2",
"ecosystem": "go"
},
{
"name": "github.com/modern-go/concurrent",
"direct": false,
"version": "v0.0.0-20180306012644-bacd9c7ef1dd",
"ecosystem": "go"
},
{
"name": "github.com/modern-go/reflect2",
"direct": false,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "github.com/modern-go/reflect2",
"direct": false,
"version": "v1.0.3-0.20250322232337-35a7c28c31ee",
"ecosystem": "go"
},
{
"name": "github.com/monochromegane/go-gitignore",
"direct": false,
"version": "v0.0.0-20200626010858-205db1a8cc00",
"ecosystem": "go"
},
{
"name": "github.com/munnerz/goautoneg",
"direct": false,
"version": "v0.0.0-20191010083416-a7dc8b61c822",
"ecosystem": "go"
},
{
"name": "github.com/ncruces/go-strftime",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/nytimes/gziphandler",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/oklog/ulid",
"direct": false,
"version": "v1.3.1",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/go-digest",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/image-spec",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/runtime-spec",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/runtime-spec",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/selinux",
"direct": false,
"version": "v1.13.0",
"ecosystem": "go"
},
{
"name": "github.com/opentracing/opentracing-go",
"direct": false,
"version": "v1.2.1-0.20220228012449-10b1cf09e00b",
"ecosystem": "go"
},
{
"name": "github.com/panjf2000/ants/v2",
"direct": false,
"version": "v2.10.0",
"ecosystem": "go"
},
{
"name": "github.com/pelletier/go-toml/v2",
"direct": false,
"version": "v2.2.3",
"ecosystem": "go"
},
{
"name": "github.com/pelletier/go-toml/v2",
"direct": false,
"version": "v2.2.4",
"ecosystem": "go"
},
{
"name": "github.com/peterbourgon/diskv",
"direct": false,
"version": "v2.0.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/petermattis/goid",
"direct": false,
"version": "v0.0.0-20241211131331-93ee7e083c43",
"ecosystem": "go"
},
{
"name": "github.com/pierrec/lz4/v4",
"direct": false,
"version": "v4.1.22",
"ecosystem": "go"
},
{
"name": "github.com/pkg/errors",
"direct": false,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "github.com/pmezard/go-difflib",
"direct": false,
"version": "v1.0.1-0.20181226105442-5d4384ee4fb2",
"ecosystem": "go"
},
{
"name": "github.com/power-devops/perfstat",
"direct": false,
"version": "v0.0.0-20210106213030-5aafc221ea8c",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/alertmanager",
"direct": false,
"version": "v0.27.0",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_golang",
"direct": false,
"version": "v1.22.0",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_golang",
"direct": false,
"version": "v1.23.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_model",
"direct": false,
"version": "v0.6.1",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_model",
"direct": false,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/common",
"direct": false,
"version": "v0.62.0",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/common",
"direct": false,
"version": "v0.66.1",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/procfs",
"direct": false,
"version": "v0.15.1",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/procfs",
"direct": false,
"version": "v0.16.1",
"ecosystem": "go"
},
{
"name": "github.com/remyoudompheng/bigfft",
"direct": false,
"version": "v0.0.0-20230129092748-24d4a6f8daec",
"ecosystem": "go"
},
{
"name": "github.com/s3rj1k/go-fanotify/fanotify",
"direct": false,
"version": "v0.0.0-20240229202106-bca3154da60a",
"ecosystem": "go"
},
{
"name": "github.com/sagikazarmark/locafero",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/sagikazarmark/locafero",
"direct": false,
"version": "v0.9.0",
"ecosystem": "go"
},
{
"name": "github.com/sasha-s/go-deadlock",
"direct": false,
"version": "v0.3.5",
"ecosystem": "go"
},
{
"name": "github.com/scylladb/go-set",
"direct": false,
"version": "v1.0.3-0.20200225121959-cc7b2070d91e",
"ecosystem": "go"
},
{
"name": "github.com/seccomp/libseccomp-golang",
"direct": false,
"version": "v0.10.0",
"ecosystem": "go"
},
{
"name": "github.com/shirou/gopsutil/v4",
"direct": false,
"version": "v4.25.1",
"ecosystem": "go"
},
{
"name": "github.com/sirupsen/logrus",
"direct": false,
"version": "v1.9.3",
"ecosystem": "go"
},
{
"name": "github.com/sirupsen/logrus",
"direct": false,
"version": "v1.9.4",
"ecosystem": "go"
},
{
"name": "github.com/sourcegraph/conc",
"direct": false,
"version": "v0.3.0",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cast",
"direct": false,
"version": "v1.7.1",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cast",
"direct": false,
"version": "v1.9.2",
"ecosystem": "go"
},
{
"name": "github.com/spf13/pflag",
"direct": false,
"version": "v1.0.10",
"ecosystem": "go"
},
{
"name": "github.com/spf13/pflag",
"direct": false,
"version": "v1.0.6",
"ecosystem": "go"
},
{
"name": "github.com/stoewer/go-strcase",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/stripe/stripe-go/v74",
"direct": false,
"version": "v74.30.0",
"ecosystem": "go"
},
{
"name": "github.com/subosito/gotenv",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/sylabs/squashfs",
"direct": false,
"version": "v1.0.4",
"ecosystem": "go"
},
{
"name": "github.com/sylabs/squashfs",
"direct": false,
"version": "v1.0.6",
"ecosystem": "go"
},
{
"name": "github.com/syndtr/gocapability",
"direct": false,
"version": "v0.0.0-20200815063812-42c35b437635",
"ecosystem": "go"
},
{
"name": "github.com/therootcompany/xz",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/tklauser/go-sysconf",
"direct": false,
"version": "v0.3.12",
"ecosystem": "go"
},
{
"name": "github.com/tklauser/numcpus",
"direct": false,
"version": "v0.10.0",
"ecosystem": "go"
},
{
"name": "github.com/ulikunitz/xz",
"direct": false,
"version": "v0.5.15",
"ecosystem": "go"
},
{
"name": "github.com/uptrace/opentelemetry-go-extra/otelutil",
"direct": false,
"version": "v0.3.2",
"ecosystem": "go"
},
{
"name": "github.com/uptrace/opentelemetry-go-extra/otelzap",
"direct": false,
"version": "v0.3.2",
"ecosystem": "go"
},
{
"name": "github.com/uptrace/uptrace-go",
"direct": false,
"version": "v1.35.1",
"ecosystem": "go"
},
{
"name": "github.com/uptrace/uptrace-go",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "github.com/vishvananda/netlink",
"direct": false,
"version": "v1.3.1-0.20241022031324-976bd8de7d81",
"ecosystem": "go"
},
{
"name": "github.com/vishvananda/netlink",
"direct": false,
"version": "v1.3.1-0.20250303224720-0e7078ed04c8",
"ecosystem": "go"
},
{
"name": "github.com/vishvananda/netns",
"direct": false,
"version": "v0.0.5",
"ecosystem": "go"
},
{
"name": "github.com/wagoodman/go-partybus",
"direct": false,
"version": "v0.0.0-20230516145632-8ccac152c651",
"ecosystem": "go"
},
{
"name": "github.com/wagoodman/go-progress",
"direct": false,
"version": "v0.0.0-20230925121702-07e42b3cdba0",
"ecosystem": "go"
},
{
"name": "github.com/wagoodman/go-progress",
"direct": false,
"version": "v0.0.0-20260303201901-10176f79b2c0",
"ecosystem": "go"
},
{
"name": "github.com/x448/float16",
"direct": false,
"version": "v0.8.4",
"ecosystem": "go"
},
{
"name": "github.com/xlab/treeprint",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/yusufpapurcu/wmi",
"direct": false,
"version": "v1.2.4",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/api/v3",
"direct": false,
"version": "v3.6.5",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/client/pkg/v3",
"direct": false,
"version": "v3.6.5",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/client/v3",
"direct": false,
"version": "v3.6.5",
"ecosystem": "go"
},
{
"name": "go.mongodb.org/mongo-driver",
"direct": false,
"version": "v1.17.1",
"ecosystem": "go"
},
{
"name": "go.opencensus.io",
"direct": false,
"version": "v0.24.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/auto/sdk",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/bridges/otelslog",
"direct": false,
"version": "v0.18.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
"direct": false,
"version": "v0.63.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
"direct": false,
"version": "v0.59.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
"direct": false,
"version": "v0.62.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/runtime",
"direct": false,
"version": "v0.60.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/runtime",
"direct": false,
"version": "v0.68.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/processors/minsev",
"direct": false,
"version": "v0.16.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp",
"direct": false,
"version": "v0.19.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/stdout/stdouttrace",
"direct": false,
"version": "v1.35.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/stdout/stdouttrace",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/log",
"direct": false,
"version": "v0.19.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/metric",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/sdk",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/sdk/log",
"direct": false,
"version": "v0.19.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/sdk/metric",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/trace",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/proto/otlp",
"direct": false,
"version": "v1.10.0",
"ecosystem": "go"
},
{
"name": "go.yaml.in/yaml/v2",
"direct": false,
"version": "v2.4.3",
"ecosystem": "go"
},
{
"name": "go.yaml.in/yaml/v3",
"direct": false,
"version": "v3.0.4",
"ecosystem": "go"
},
{
"name": "golang.org/x/crypto",
"direct": false,
"version": "v0.52.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/exp",
"direct": false,
"version": "v0.0.0-20250103183323-7d7fa50e5329",
"ecosystem": "go"
},
{
"name": "golang.org/x/exp",
"direct": false,
"version": "v0.0.0-20251023183803-a4bb9ffd2546",
"ecosystem": "go"
},
{
"name": "golang.org/x/mod",
"direct": false,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": false,
"version": "v0.52.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": false,
"version": "v0.55.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/oauth2",
"direct": false,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/oauth2",
"direct": false,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": false,
"version": "v0.42.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": false,
"version": "v0.45.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/term",
"direct": false,
"version": "v0.41.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/term",
"direct": false,
"version": "v0.43.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/time",
"direct": false,
"version": "v0.12.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/time",
"direct": false,
"version": "v0.15.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools",
"direct": false,
"version": "v0.44.0",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto",
"direct": false,
"version": "v0.0.0-20241118233622-e639e219e697",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/api",
"direct": false,
"version": "v0.0.0-20260401024825-9d38bb4040a9",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/api",
"direct": false,
"version": "v0.0.0-20260414002931-afd174a4e478",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/rpc",
"direct": false,
"version": "v0.0.0-20260401024825-9d38bb4040a9",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/rpc",
"direct": false,
"version": "v0.0.0-20260414002931-afd174a4e478",
"ecosystem": "go"
},
{
"name": "google.golang.org/grpc",
"direct": false,
"version": "v1.80.0",
"ecosystem": "go"
},
{
"name": "google.golang.org/protobuf",
"direct": false,
"version": "v1.36.11",
"ecosystem": "go"
},
{
"name": "gopkg.in/evanphx/json-patch.v4",
"direct": false,
"version": "v4.12.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/evanphx/json-patch.v4",
"direct": false,
"version": "v4.13.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/inf.v0",
"direct": false,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "gopkg.in/natefinch/lumberjack.v2",
"direct": false,
"version": "v2.2.1",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v2",
"direct": false,
"version": "v2.4.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v3",
"direct": false,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "istio.io/pkg",
"direct": false,
"version": "v0.0.0-20231221211216-7635388a563e",
"ecosystem": "go"
},
{
"name": "k8s.io/apiextensions-apiserver",
"direct": false,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "k8s.io/apiextensions-apiserver",
"direct": false,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "k8s.io/cli-runtime",
"direct": false,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "k8s.io/cri-api",
"direct": false,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "k8s.io/gengo/v2",
"direct": false,
"version": "v2.0.0-20250922181213-ec3ebc5fd46b",
"ecosystem": "go"
},
{
"name": "k8s.io/kms",
"direct": false,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "k8s.io/kubelet",
"direct": false,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "modernc.org/libc",
"direct": false,
"version": "v1.67.6",
"ecosystem": "go"
},
{
"name": "modernc.org/mathutil",
"direct": false,
"version": "v1.7.1",
"ecosystem": "go"
},
{
"name": "modernc.org/memory",
"direct": false,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "modernc.org/sqlite",
"direct": false,
"version": "v1.46.1",
"ecosystem": "go"
},
{
"name": "oras.land/oras-go/v2",
"direct": false,
"version": "v2.5.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/apiserver-network-proxy/konnectivity-client",
"direct": false,
"version": "v0.31.2",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/controller-runtime",
"direct": false,
"version": "v0.20.4",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/json",
"direct": false,
"version": "v0.0.0-20241014173422-cfa47c3a1cc8",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/json",
"direct": false,
"version": "v0.0.0-20250730193827-2d320260d730",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/kustomize/api",
"direct": false,
"version": "v0.19.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/kustomize/kyaml",
"direct": false,
"version": "v0.19.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/randfill",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/structured-merge-diff/v4",
"direct": false,
"version": "v4.7.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/yaml",
"direct": false,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/yaml",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
}
],
"collected": true,
"truncated": false,
"total_count": 354,
"direct_count": 55,
"indirect_count": 299
}
},
"maintainership": {
"issues": {
"open_prs": 4,
"merged_prs": 285,
"open_issues": 6,
"closed_ratio": 0.647,
"closed_issues": 11,
"closed_unmerged_prs": 43
},
"bus_factor": 2,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "k8s-publishing-bot",
"commits": 1096,
"avatar_url": "https://avatars.githubusercontent.com/u/34088196?v=4"
},
{
"type": "User",
"login": "matthyx",
"commits": 392,
"avatar_url": "https://avatars.githubusercontent.com/u/20683409?v=4"
},
{
"type": "User",
"login": "k8s-publish-robot",
"commits": 191,
"avatar_url": "https://avatars.githubusercontent.com/u/26662517?v=4"
},
{
"type": "User",
"login": "dims",
"commits": 99,
"avatar_url": "https://avatars.githubusercontent.com/u/23304?v=4"
},
{
"type": "User",
"login": "liggitt",
"commits": 96,
"avatar_url": "https://avatars.githubusercontent.com/u/980082?v=4"
},
{
"type": "User",
"login": "vladklokun",
"commits": 87,
"avatar_url": "https://avatars.githubusercontent.com/u/23642900?v=4"
},
{
"type": "User",
"login": "slashben",
"commits": 72,
"avatar_url": "https://avatars.githubusercontent.com/u/59160382?v=4"
},
{
"type": "User",
"login": "sttts",
"commits": 59,
"avatar_url": "https://avatars.githubusercontent.com/u/730123?v=4"
},
{
"type": "User",
"login": "deads2k",
"commits": 54,
"avatar_url": "https://avatars.githubusercontent.com/u/8225098?v=4"
},
{
"type": "User",
"login": "amitschendel",
"commits": 34,
"avatar_url": "https://avatars.githubusercontent.com/u/58078857?v=4"
}
],
"contributors_sampled": 99,
"top_contributor_share": 0.406
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"build.yaml",
"manual-integration-tests.yml",
"pr-created.yaml",
"pr-merged.yaml",
"publish-image.yaml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 8,
"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": 9,
"reason": "10 out of 11 merged PRs checked by a CI test -- score normalized to 9",
"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": 1,
"reason": "Found 2/12 approved changesets -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 58 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 0 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": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 1,
"reason": "dependency not pinned by hash detected -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 9,
"reason": "SAST tool is not run on all commits -- score normalized to 9",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 9,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 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": 0,
"reason": "43 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "72c61d4fa849165e4d78068c2598793205ae7e61",
"ran_at": "2026-07-29T07:20:39Z",
"aggregate_score": 6.1,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-25T08:09:25Z",
"oldest_open_prs": [
{
"number": 258,
"created_at": "2025-10-03T11:15:36Z",
"last_comment_at": "2026-06-05T05:40:58Z",
"last_comment_author": "github-actions"
},
{
"number": 331,
"created_at": "2026-06-05T09:54:56Z",
"last_comment_at": "2026-06-05T10:07:18Z",
"last_comment_author": "github-actions"
},
{
"number": 335,
"created_at": "2026-06-10T21:27:12Z",
"last_comment_at": "2026-06-12T10:10:42Z",
"last_comment_author": "github-actions"
},
{
"number": 341,
"created_at": "2026-07-02T12:58:45Z",
"last_comment_at": "2026-07-02T13:11:26Z",
"last_comment_author": "github-actions"
}
],
"last_merged_pr_at": "2026-07-25T08:08:40Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 117,
"created_at": "2024-05-28T10:32:39Z",
"last_comment_at": "2024-10-27T06:27:55Z",
"last_comment_author": "slashben"
},
{
"number": 178,
"created_at": "2024-12-10T14:14:04Z",
"last_comment_at": "2026-05-06T11:22:46Z",
"last_comment_author": "yugal07"
},
{
"number": 315,
"created_at": "2026-04-22T15:29:21Z",
"last_comment_at": "2026-05-07T07:45:41Z",
"last_comment_author": "yugal07"
},
{
"number": 320,
"created_at": "2026-05-13T10:15:24Z",
"last_comment_at": "2026-05-15T14:20:02Z",
"last_comment_author": "yugal07"
},
{
"number": 334,
"created_at": "2026-06-10T07:25:32Z",
"last_comment_at": "2026-06-12T09:16:57Z",
"last_comment_author": "matthyx"
},
{
"number": 350,
"created_at": "2026-07-27T09:39:09Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/kubescape/storage",
"host": "github.com",
"name": "storage",
"owner": "kubescape"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 71,
"inputs": {
"security": 63,
"vitality": 95,
"community": 52,
"governance": 72,
"engineering": 66
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 95,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"commits_last_year": 241,
"human_commit_share": 0.99,
"days_since_last_push": 3,
"active_weeks_last_year": 41
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 3 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 3
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "41/52 weeks with commits",
"points": 28.4,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 41
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "241 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 241
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 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": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"releases_count": 100,
"latest_release_tag": "v0.0.298",
"releases_from_tags": false,
"days_since_latest_release": 3,
"mean_days_between_releases": 5
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "100 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 100
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 3 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 3
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~5 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 5
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 3,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 3 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 3
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 52,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 17,
"inputs": {
"forks": 13,
"stars": 4,
"watchers": 2,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "4 stars",
"points": 7.7,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 4
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "13 forks",
"points": 9,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 13
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "2 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 2
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "excellent",
"name": "Community health",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"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 (Apache-2.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "Apache-2.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 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": 72,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 99,
"top_contributor_share": 0.406
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 41% of commits",
"points": 13.4,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 41
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "99 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 99
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 58 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"merged_prs": 285,
"open_issues": 6,
"closed_issues": 11,
"issue_closed_ratio": 0.647,
"closed_unmerged_prs": 43
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "65% of issues closed",
"points": 30.2,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 65
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "285/328 decided PRs merged",
"points": 33.2,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 285,
"decided": 328
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 2/12 approved changesets -- score normalized to 1",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"followers": 286,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "kubescape",
"public_repos": 65,
"account_age_days": 1612
},
"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": "286 followers of kubescape",
"points": 17.7,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 286,
"login": "kubescape"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "65 public repos, account ~4 yr old",
"points": 21.8,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 65
}
},
{
"code": "account_age_years",
"params": {
"years": 4
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/kubescape/storage"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 3
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 3 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 3
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "160 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 160
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 66,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 66,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "5 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 5
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "10 out of 11 merged PRs checked by a CI test -- score normalized to 9",
"points": 18,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 63,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 61,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 6.1
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "10 out of 11 merged PRs checked by a CI test -- score normalized to 9",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 2/12 approved changesets -- score normalized to 1",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 58 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 0 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 not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 1",
"points": 0.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 9",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "43 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "moderate",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 354 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 354
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 69,
"inputs": {
"source": "osv",
"advisories": 93,
"affected_packages": 23,
"assessed_packages": 354,
"unassessed_packages": 0,
"affected_by_severity": "critical 2, high 7, moderate 6, unknown 8",
"direct_affected_packages": 4
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "4 affected: github.com/anchore/syft v1.18.1 (moderate 5.3), go.opentelemetry.io/otel v1.43.0 (unknown), golang.org/x/text v0.35.0 (unknown), +1 more",
"points": 16.5,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 4,
"packages": "github.com/anchore/syft v1.18.1 (moderate 5.3), go.opentelemetry.io/otel v1.43.0 (unknown), golang.org/x/text v0.35.0 (unknown)"
}
},
{
"code": "advisories_affected_more",
"params": {
"count": 1
}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 130 days ago",
"points": 35.3,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 1,
"oldest": 130
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"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": 354,
"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": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 9
},
"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": "good",
"name": "AI Readiness",
"value": 70,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 38,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.717,
"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": "71 of 99 human commits state their intent (structured subject or explanatory body)",
"points": 38.2,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 71,
"sampled": 99
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"Makefile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.24,
"toolchain_manifests": [
"go.mod",
"tests/integration-test-suite/go.mod"
],
"dependency_bot_commit_share": 0.01
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "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": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"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": "24 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 24,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "1 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 1,
"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 1",
"points": 1,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 98,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 965162,
"source_files_sampled": 197,
"oversized_source_files": 6
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "6/197 source files over 60KB",
"points": 53.3,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 197,
"oversized": 6
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "good",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"example_dirs": [
"example"
],
"has_mcp_signal": false,
"api_schema_files": [
"pkg/apis/softwarecomposition/v1beta1/generated.proto"
]
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": "pkg/apis/softwarecomposition/v1beta1/generated.proto",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "pkg/apis/softwarecomposition/v1beta1/generated.proto"
}
}
],
"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": "example",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "example"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-29T07:21:07.737069Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/k/kubescape/storage.svg",
"full_name": "kubescape/storage",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}