JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [
"kubernetes",
"vcluster",
"virtual-clusters",
"multi-tenancy",
"cloud-native",
"platform-engineering",
"helm",
"kubectl",
"k8s",
"k3s"
],
"is_fork": false,
"size_kb": 121735,
"has_wiki": true,
"homepage": "https://www.vcluster.com",
"languages": {
"Go": 4245150,
"Just": 6476,
"Shell": 16311,
"Dockerfile": 3459,
"Go Template": 23702
},
"pushed_at": "2026-07-28T13:13:48Z",
"created_at": "2021-04-08T14:47:46Z",
"owner_type": "Organization",
"updated_at": "2026-07-28T04:53:50Z",
"description": "vCluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.",
"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": "https://vcluster.com",
"name": "vCluster",
"type": "Organization",
"login": "loft-sh",
"company": null,
"location": "Your Kubernetes Cluster",
"followers": 740,
"avatar_url": "https://avatars.githubusercontent.com/u/65466868?v=4",
"created_at": "2020-05-16T20:09:23Z",
"is_verified": null,
"public_repos": 165,
"account_age_days": 2263
},
"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.36.1-rc.0",
"kind": "prerelease",
"published_at": "2026-07-27T14:43:00Z"
},
{
"tag": "v0.35.3-rc.0",
"kind": "prerelease",
"published_at": "2026-07-27T14:46:21Z"
},
{
"tag": "v0.37.0-next.internal.7",
"kind": "prerelease",
"published_at": "2026-07-21T18:26:03Z"
},
{
"tag": "v0.37.0-next.internal.6",
"kind": "prerelease",
"published_at": "2026-07-21T17:53:25Z"
},
{
"tag": "v0.36.0",
"kind": "minor",
"published_at": "2026-07-20T08:55:56Z"
},
{
"tag": "v0.36.0-rc.3",
"kind": "prerelease",
"published_at": "2026-07-17T18:06:03Z"
},
{
"tag": "v0.36.0-rc.2",
"kind": "prerelease",
"published_at": "2026-07-17T12:08:05Z"
},
{
"tag": "v0.36.0-rc.1",
"kind": "prerelease",
"published_at": "2026-07-15T13:50:31Z"
},
{
"tag": "v0.36.0-next.internal.0",
"kind": "prerelease",
"published_at": "2026-07-13T07:09:28Z"
},
{
"tag": "v0.36.0-alpha.2",
"kind": "prerelease",
"published_at": "2026-07-07T09:55:39Z"
},
{
"tag": "v0.34.6",
"kind": "patch",
"published_at": "2026-07-09T11:18:47Z"
},
{
"tag": "v0.34.6-rc.1",
"kind": "prerelease",
"published_at": "2026-07-08T22:04:44Z"
},
{
"tag": "v0.35.2",
"kind": "patch",
"published_at": "2026-07-09T15:31:21Z"
},
{
"tag": "v0.35.2-rc.1",
"kind": "prerelease",
"published_at": "2026-07-09T13:43:20Z"
},
{
"tag": "v0.36.0-alpha.1",
"kind": "prerelease",
"published_at": "2026-07-02T12:43:26Z"
},
{
"tag": "v0.35.1",
"kind": "patch",
"published_at": "2026-06-19T19:04:50Z"
},
{
"tag": "v0.35.1-rc.2",
"kind": "prerelease",
"published_at": "2026-06-19T15:02:54Z"
},
{
"tag": "v0.35.1-rc.1",
"kind": "prerelease",
"published_at": "2026-06-19T09:01:15Z"
},
{
"tag": "v0.33.4",
"kind": "patch",
"published_at": "2026-06-19T15:37:38Z"
},
{
"tag": "v0.33.4-rc.1",
"kind": "prerelease",
"published_at": "2026-06-19T11:22:18Z"
},
{
"tag": "v0.35.0",
"kind": "minor",
"published_at": "2026-06-16T10:15:20Z"
},
{
"tag": "v0.35.0-rc.9",
"kind": "prerelease",
"published_at": "2026-06-15T23:32:26Z"
},
{
"tag": "v0.35.0-rc.8",
"kind": "prerelease",
"published_at": "2026-06-15T15:56:20Z"
},
{
"tag": "v0.34.5",
"kind": "patch",
"published_at": "2026-06-19T17:52:26Z"
},
{
"tag": "v0.34.5-rc.2",
"kind": "prerelease",
"published_at": "2026-06-19T15:03:54Z"
},
{
"tag": "v0.34.5-rc.1",
"kind": "prerelease",
"published_at": "2026-06-19T11:29:32Z"
},
{
"tag": "v0.34.4",
"kind": "patch",
"published_at": "2026-06-17T17:01:56Z"
},
{
"tag": "v0.34.4-rc.1",
"kind": "prerelease",
"published_at": "2026-06-15T12:49:48Z"
},
{
"tag": "v0.35.0-rc.7",
"kind": "prerelease",
"published_at": "2026-06-12T23:37:34Z"
},
{
"tag": "v0.35.0-rc.6",
"kind": "prerelease",
"published_at": "2026-06-12T18:50:23Z"
},
{
"tag": "v0.34.3",
"kind": "patch",
"published_at": "2026-06-10T22:15:43Z"
},
{
"tag": "v0.34.3-rc.2",
"kind": "prerelease",
"published_at": "2026-06-10T15:07:26Z"
},
{
"tag": "v0.35.0-rc.5",
"kind": "prerelease",
"published_at": "2026-06-11T06:51:14Z"
},
{
"tag": "v0.35.0-rc.4",
"kind": "prerelease",
"published_at": "2026-06-10T16:07:34Z"
},
{
"tag": "v0.35.0-rc.3",
"kind": "prerelease",
"published_at": "2026-06-10T13:01:42Z"
},
{
"tag": "v0.34.3-rc.1",
"kind": "prerelease",
"published_at": "2026-06-09T17:12:13Z"
},
{
"tag": "v0.34.2",
"kind": "patch",
"published_at": "2026-06-08T03:59:58Z"
},
{
"tag": "v0.34.2-rc.2",
"kind": "prerelease",
"published_at": "2026-06-05T20:37:33Z"
},
{
"tag": "v0.35.0-rc.2",
"kind": "prerelease",
"published_at": "2026-06-04T20:28:07Z"
},
{
"tag": "v0.35.0-rc.1",
"kind": "prerelease",
"published_at": "2026-06-04T17:56:03Z"
},
{
"tag": "v0.35.0-alpha.8",
"kind": "prerelease",
"published_at": "2026-05-29T14:11:42Z"
},
{
"tag": "v0.32.3",
"kind": "patch",
"published_at": "2026-06-19T15:31:48Z"
},
{
"tag": "v0.32.3-rc.1",
"kind": "prerelease",
"published_at": "2026-06-19T10:48:48Z"
},
{
"tag": "v0.34.2-rc.1",
"kind": "prerelease",
"published_at": "2026-06-04T23:06:11Z"
},
{
"tag": "v0.34.1",
"kind": "patch",
"published_at": "2026-05-28T20:20:08Z"
},
{
"tag": "v0.34.1-rc.2",
"kind": "prerelease",
"published_at": "2026-05-28T14:56:32Z"
},
{
"tag": "v0.33.3",
"kind": "patch",
"published_at": "2026-05-29T02:56:08Z"
},
{
"tag": "v0.33.3-rc.1",
"kind": "prerelease",
"published_at": "2026-05-27T20:34:01Z"
},
{
"tag": "v0.34.1-rc.1",
"kind": "prerelease",
"published_at": "2026-05-27T13:12:59Z"
},
{
"tag": "v0.35.0-alpha.7",
"kind": "prerelease",
"published_at": "2026-05-21T16:31:37Z"
},
{
"tag": "v0.35.0-alpha.6",
"kind": "prerelease",
"published_at": "2026-05-19T14:21:29Z"
},
{
"tag": "v0.35.0-alpha.5",
"kind": "prerelease",
"published_at": "2026-05-15T07:24:21Z"
},
{
"tag": "v0.35.0-alpha.4",
"kind": "prerelease",
"published_at": "2026-05-11T19:08:41Z"
},
{
"tag": "v0.35.0-alpha.3",
"kind": "prerelease",
"published_at": "2026-05-05T17:40:27Z"
},
{
"tag": "v0.35.0-alpha.2",
"kind": "prerelease",
"published_at": "2026-05-05T13:01:51Z"
},
{
"tag": "v0.34.1-alpha.1",
"kind": "prerelease",
"published_at": "2026-05-07T20:36:22Z"
},
{
"tag": "v0.34.0",
"kind": "minor",
"published_at": "2026-04-29T20:04:59Z"
},
{
"tag": "v0.34.0-rc.6",
"kind": "prerelease",
"published_at": "2026-04-29T16:17:20Z"
},
{
"tag": "v0.34.0-rc.5",
"kind": "prerelease",
"published_at": "2026-04-28T18:50:42Z"
},
{
"tag": "v0.35.0-alpha.1",
"kind": "prerelease",
"published_at": "2026-04-28T12:43:44Z"
},
{
"tag": "v0.34.0-rc.4",
"kind": "prerelease",
"published_at": "2026-04-28T17:42:25Z"
},
{
"tag": "v0.34.0-rc.3",
"kind": "prerelease",
"published_at": "2026-04-27T11:18:01Z"
},
{
"tag": "v0.35.0-next.1",
"kind": "prerelease",
"published_at": "2026-04-24T08:19:14Z"
},
{
"tag": "v0.34.0-rc.2",
"kind": "prerelease",
"published_at": "2026-04-23T21:58:57Z"
},
{
"tag": "v0.33.2",
"kind": "patch",
"published_at": "2026-04-27T21:43:40Z"
},
{
"tag": "v0.33.2-rc.5",
"kind": "prerelease",
"published_at": "2026-04-23T21:58:02Z"
},
{
"tag": "v0.34.0-rc1",
"kind": "prerelease",
"published_at": "2026-04-21T17:13:51Z"
},
{
"tag": "v0.34.0-alpha.5",
"kind": "prerelease",
"published_at": "2026-04-21T13:10:21Z"
},
{
"tag": "v0.34.0-alpha.4",
"kind": "prerelease",
"published_at": "2026-04-20T20:48:54Z"
},
{
"tag": "v0.31.3",
"kind": "patch",
"published_at": "2026-04-27T16:14:14Z"
},
{
"tag": "v0.31.3-rc.1",
"kind": "prerelease",
"published_at": "2026-04-23T21:55:20Z"
},
{
"tag": "v0.34.0-alpha.3",
"kind": "prerelease",
"published_at": "2026-04-20T14:55:16Z"
},
{
"tag": "v0.34.0-alpha.2",
"kind": "prerelease",
"published_at": "2026-04-20T07:16:22Z"
},
{
"tag": "v0.32.2",
"kind": "patch",
"published_at": "2026-04-27T19:09:45Z"
},
{
"tag": "v0.32.2-rc.4",
"kind": "prerelease",
"published_at": "2026-04-23T21:56:35Z"
},
{
"tag": "v0.33.2-rc4",
"kind": "prerelease",
"published_at": "2026-04-21T12:12:31Z"
},
{
"tag": "v0.33.2-rc3",
"kind": "prerelease",
"published_at": "2026-04-17T21:40:15Z"
},
{
"tag": "v0.33.2-rc2",
"kind": "prerelease",
"published_at": "2026-04-09T20:10:34Z"
},
{
"tag": "v0.30.5",
"kind": "patch",
"published_at": "2026-04-27T16:10:14Z"
},
{
"tag": "v0.30.5-rc.2",
"kind": "prerelease",
"published_at": "2026-04-23T21:53:48Z"
},
{
"tag": "v0.33.2-rc.1",
"kind": "prerelease",
"published_at": "2026-04-07T17:52:15Z"
},
{
"tag": "v0.33.2-next.internal.2",
"kind": "prerelease",
"published_at": "2026-04-06T15:14:18Z"
},
{
"tag": "v0.33.2-next.internal.1",
"kind": "prerelease",
"published_at": "2026-04-06T14:11:34Z"
},
{
"tag": "v0.33.2-next.internal.0",
"kind": "prerelease",
"published_at": "2026-03-28T13:11:54Z"
},
{
"tag": "v0.34.0-alpha.1",
"kind": "prerelease",
"published_at": "2026-03-29T12:13:25Z"
},
{
"tag": "v0.34.0-alpha.0",
"kind": "prerelease",
"published_at": "2026-03-24T16:32:39Z"
},
{
"tag": "v0.33.1",
"kind": "patch",
"published_at": "2026-03-26T00:47:15Z"
},
{
"tag": "v0.33.1-rc.1",
"kind": "prerelease",
"published_at": "2026-03-25T16:13:21Z"
},
{
"tag": "v0.33.1-next.internal.2",
"kind": "prerelease",
"published_at": "2026-03-23T20:22:53Z"
},
{
"tag": "v0.33.1-next.internal.1",
"kind": "prerelease",
"published_at": "2026-03-23T16:55:18Z"
},
{
"tag": "v0.34.0-next.internal.0",
"kind": "prerelease",
"published_at": "2026-03-17T12:19:40Z"
},
{
"tag": "v0.33.1-rc.0",
"kind": "prerelease",
"published_at": "2026-03-23T15:09:37Z"
},
{
"tag": "v0.32.2-rc.3",
"kind": "prerelease",
"published_at": "2026-03-24T09:50:20Z"
},
{
"tag": "v0.33.0",
"kind": "minor",
"published_at": "2026-03-16T13:05:49Z"
},
{
"tag": "v0.33.0-rc.4",
"kind": "prerelease",
"published_at": "2026-03-15T22:05:04Z"
},
{
"tag": "v0.33.0-rc.3",
"kind": "prerelease",
"published_at": "2026-03-13T14:14:38Z"
},
{
"tag": "v0.28.2-patch.1",
"kind": "prerelease",
"published_at": "2026-06-17T14:15:24Z"
},
{
"tag": "v0.33.0-rc.2",
"kind": "prerelease",
"published_at": "2026-03-11T19:47:33Z"
},
{
"tag": "v0.32.2-rc.2",
"kind": "prerelease",
"published_at": "2026-03-11T12:48:44Z"
},
{
"tag": "v0.33.0-rc.1",
"kind": "prerelease",
"published_at": "2026-03-10T16:51:00Z"
}
],
"recent_commits": [
{
"oid": "00fce0122f87db0743d17683aa68aebe096c58ab",
"body": "…nking runs (#4084)\n\nThe backport workflow caller passed the Linear token as\nsecrets.LINEAR_API_TOKEN, but no such secret exists at the repo or org\nlevel. The real secret is LINEAR_TOKEN, so linear-token resolved to an\nempty string and the link-backport-prs step silently skipped. Backport\nPRs therefore never got their Fixes line and Linear sub-issues were\nnever linked.\n\nPoint the caller at the existing LINEAR_TOKEN secret so the linking\nstep runs.",
"is_bot": false,
"headline": "fix(backport): reference existing LINEAR_TOKEN secret so sub-issue li…",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-07-23T08:57:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21cef774fd6b57d5501b06d54196aeedf383d5e9",
"body": "Snapshot alignment requested via align-tree; sets the OSS tree to the\nmonorepo subtree content in one append-only commit.\n\nMonorepo-Commit: 6aa34996000fb3ad4e01342504e1c0965a967dec",
"is_bot": true,
"headline": "chore: align OSS mirror with monorepo staging tree",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-22T11:51:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "717d0ee1b03a117153cc8e11ade34cd0487d5b7d",
"body": "…s (#4072)\n\n* ci: convert release pipeline to dispatch + workflow_run (DEVOPS-1050)\n\nBuilder release.yaml becomes workflow_dispatch-only (release-as-output):\ngoreleaser creates the GitHub release at the end of a green build, so a\nmonorepo-created OSS release can no longer re-trigger this builder (cl\n[…]\nthub.ref, 'refs/tags/') instead of the workflow_run event.\n- release.yaml gains a trigger-validators job that dispatches the three\n validators at the built tag once publish succeeds (skipping -next).",
"is_bot": false,
"headline": "ci: convert release pipeline to dispatcher + tag-dispatched validator…",
"author_name": "Dmytro Sydorov",
"author_login": "sydorovdmytro",
"committed_at": "2026-07-21T14:15:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cc23f7fa53e8e5a7dd9fdc875061ea19e0840a8e",
"body": null,
"is_bot": false,
"headline": "fix(snapshot): Ensure range delete for external database (#4097)",
"author_name": "Robin Afflerbach",
"author_login": "r0bnet",
"committed_at": "2026-07-21T12:24:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "119f4b96881e8656776883d8c8f87214dfa24558",
"body": "Mirror the CNCF Kubernetes AI Platform Conformance submissions for\nvCluster with Private Nodes as reference copies in this repo. Both\nPRODUCT.yaml files are byte-identical to the merged CNCF submissions.\n\nCNCF submissions (both merged):\n- v1.34: https://github.com/cncf/k8s-ai-conformance/pull/82\n- v1.35: https://github.com/cncf/k8s-ai-conformance/pull/83\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add AI conformance reference copies for v1.34 and v1.35",
"author_name": "anvesh-loft",
"author_login": "anvesh-loft",
"committed_at": "2026-07-20T19:01:36Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "3520e0b27a784240e0f08f36d1cda15aec4471d9",
"body": "Signed-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>",
"is_bot": false,
"headline": "fix: node's download timeout (#4092)",
"author_name": "Marcin Franczyk",
"author_login": "mfranczy",
"committed_at": "2026-07-17T11:46:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "719b4cfa3d40b2a38c47c10afa49b1f2736f5133",
"body": "…#4070)\n\nCloses ENGNODE-617",
"is_bot": false,
"headline": "fix: bump release image base to alpine 3.24 to resolve openssl cves (…",
"author_name": "Sachin Lobo",
"author_login": "neogopher",
"committed_at": "2026-07-16T15:48:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7e28296606716dfe7883e86d94ddd8bbcb29dd7e",
"body": "…(#4080)",
"is_bot": false,
"headline": "fix(cli): skip snapshots and log status when vcluster is not running …",
"author_name": "Robin Afflerbach",
"author_login": "r0bnet",
"committed_at": "2026-07-16T07:16:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ed664eb71b7d8f6ff7fe4a388185f96b9be2f1de",
"body": "* ci(backport): bump backport pin and wire linear-token\n\nThe shared backport reusable workflow gained a step that links each\nbackport PR to its matching Linear sub-issue (\"[X.Y] Copy of ...\") so the\nsub-issue closes on merge (loft-sh/github-actions#157). That step only runs\nwhen the caller passes a \n[…]\nrequired. This matches the permissions the job\nalready runs with, so behavior is unchanged. An empty block would starve\nthe reusable job's checkout on the private caller repos.\n\nReferences DEVOPS-1060",
"is_bot": false,
"headline": "ci(backport): bump backport pin and wire linear-token (#4067)",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-07-15T07:47:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2745b42c4a67ba855344f6e74cfd13029bffd126",
"body": "* Add profile to private nodes config\n\n* remove PrivateNodesDaemon.nodeName field\n\n* feat(token-cli): add --profile flag with platform allowlist validation\n\n- adds --profile and --project flags to `vcluster token create`.\n- when --profile is set, the command queries the platform management API\n to \n[…]\nproject from kubeconfig instead of --project flag\n\n* address review comments\n\n---------\n\nCo-authored-by: Jan Baraniewski <dev@baraniewski.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: node profiles vcluster config (#4041)",
"author_name": "Sachin Lobo",
"author_login": "neogopher",
"committed_at": "2026-07-14T14:44:09Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e463f9a6c4cdf176ef20ea3a50900a4193b917fd",
"body": "Every PR to vcluster triggered an automatic Claude review: the workflow\nfired on pull_request_target (opened, synchronize, ready_for_review,\nreopened) and called the shared loft-sh/github-actions\nclaude-code-review reusable workflow with the org Anthropic API key.\n\nPR review has moved to the agent r\n[…]\nt. The shared\nreusable workflow stays in loft-sh/github-actions for other consumers,\nand the org-scoped ANTHROPIC_API_KEY secret is left untouched (it is\nnot vcluster's to manage).\n\nCloses DEVOPS-1080",
"is_bot": false,
"headline": "ci: remove claude code review workflow (#4079)",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-07-14T10:59:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3bbd53f7af75803d3ba659f9f8573eec3457ecee",
"body": "* fix(e2e): deflake sync error event sanitisation test\n\n* docs(e2e): describe current race design instead of change history",
"is_bot": false,
"headline": "fix(e2e): deflake sync error event sanitisation test (#4033)",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-07-07T17:02:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "72d8d96f368674e4aff6169237b64488849dd457",
"body": "The label-filter parse, before/after compare, and skip-edited gate were\nduplicated inline across the vcluster, vcluster-pro, and loft-enterprise e2e\nworkflows. That logic now lives as a tested shared action in\nloft-sh/github-actions (parse-label-filter, added in #161), so this caller\ndrops its own c\n[…]\nlock extraction, same parsed then dispatch-input then\n\"pr\" precedence, and the same skip-edited comparison on edited events. The\ncaller keeps its own ginkgo-label composition.\n\nReferences DEVOPS-1057.",
"is_bot": false,
"headline": "refactor(e2e): use shared parse-label-filter action (#4063)",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-07-07T12:32:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f4f7ed70d53920401ce7d6d3ec465278a9b8185d",
"body": "the publish head-images job installs go, just, qemu, buildx and cosign in sequence before goreleaser, though none depend on each other. backgrounding those installs and waiting on them before the build overlaps them, trimming setup time on every push to main. dependent ordering is preserved: the sin\n[…]\nr the parallel-steps keys (GA 2026-06-25), so a scoped ignore in .github/actionlint.yaml suppresses the two resulting messages for this one file until actionlint ships support.\n\nReferences DEVOPS-1029",
"is_bot": false,
"headline": "ci: run independent head-image setup steps in parallel (#4045)",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-07-07T12:25:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8e04bccfb9fa8f3b42fbc042babd5e1a642ab0d7",
"body": "…#4050)\n\nhack/test.sh computed per-package coverage but pointed every package at the\nsame profile.out and overwrote it each iteration, so only the last package\nsurvived and the coverage was thrown away. Nothing surfaced when a change\nlanded without tests.\n\nCollect a per-package profile and merge it \n[…]\nd nothing gates merge.\n\nThe Codecov step is tokenless (public repo) and sets fail_ci_if_error: false,\nso CI is unaffected until the Codecov app is installed and the repo activated.\n\nCloses DEVOPS-1053",
"is_bot": false,
"headline": "ci(coverage): comment on unit-test coverage regressions via codecov (…",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-07-07T12:23:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "367616b9f0768e7c73b97335f1efc9242230989c",
"body": "…cret (#4066)",
"is_bot": false,
"headline": "fix(e2e): build snapshot delete options from path, not the request se…",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-07-07T09:24:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f009031ab0ce427442aaf92ddbf36f077e157e8d",
"body": null,
"is_bot": false,
"headline": "adds: validation to helm chart for volume snapshot fields (#4062)",
"author_name": "Jose Silva",
"author_login": "jjaferson",
"committed_at": "2026-07-06T16:37:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e8d1fef25de1af8283f65ec10c34337388a9caab",
"body": null,
"is_bot": false,
"headline": "[create-pull-request] automated change",
"author_name": "loft-bot",
"author_login": "loft-bot",
"committed_at": "2026-07-03T14:06:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a61122edac629c8eb74dc81574e8267e052b921",
"body": null,
"is_bot": false,
"headline": "test(snapshot): cover request cancellation in a unit test (#4061)",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-07-03T09:01:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "18c2e1a073bd0fd5b2d38e7d3ed0a8502d051262",
"body": "* chore: removes volume snapshot CRD sync\n\n* chore: removes volume snapshot\n\n* chore: bump api dependency\n\n* chore: update chart schema",
"is_bot": false,
"headline": "chore: removes volume snapshot and restore code (#3989)",
"author_name": "Jose Silva",
"author_login": "jjaferson",
"committed_at": "2026-07-01T16:10:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b34cae40ec777719c3c62b7e9b4631609bcb4104",
"body": null,
"is_bot": false,
"headline": "[create-pull-request] automated change (#4044)",
"author_name": "loft-bot",
"author_login": "loft-bot",
"committed_at": "2026-06-30T21:57:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0319a3c893fb56216d387d01ba5b0987e01bb6bb",
"body": "The webhook-readiness gate creates marker configmaps until one is denied,\nproving the apiserver can reach the webhook backend. Each apiserver->backend\ncall costs the 10s webhook timeout, so the 60s budget allowed only ~5 tries.\nWhen the vcluster control plane was still wiring apiserver->service netw\n[…]\n with 'webhook not yet ready' (observed in CI).\nUse PollingTimeoutLong (120s), matching the deployment (300s) and endpoint\n(120s) waits in the same setup, so a transient reachability lag is tolerated.",
"is_bot": false,
"headline": "fix(e2e): widen webhook-readiness gate timeout in admission test (#4040)",
"author_name": "Sowmya Viswanathan",
"author_login": "sowmyav27",
"committed_at": "2026-06-26T19:24:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8fc06f69a67d1ce8c206da653ae73181b203d468",
"body": "…038)\n\nA single exec dial to an unreachable backend blocks ~125s on the OS TCP\nconnect timeout, consuming the entire 120s Eventually budget so the retry\nloop effectively never retries (observed: timed out after 209s in CI).\nCap each attempt at PollingTimeoutShort so failed dials return fast and\nEventually can retry across the budget, surviving a transient blip.",
"is_bot": false,
"headline": "fix(e2e): bound per-attempt exec timeout in coredns hostname test (#4…",
"author_name": "Sowmya Viswanathan",
"author_login": "sowmyav27",
"committed_at": "2026-06-26T18:29:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4ae6ae0ca0d3bf0fba39e830b36bd33c4fe26579",
"body": null,
"is_bot": false,
"headline": "fix: use docker stop -t for compatibility (#4011)",
"author_name": "Ronald Zhanje",
"author_login": "ronaldzhanje",
"committed_at": "2026-06-23T21:33:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b211daa308e5bda51f24398e5d7157a5ee937a36",
"body": null,
"is_bot": false,
"headline": "[create-pull-request] automated change (#4027)",
"author_name": "loft-bot",
"author_login": "loft-bot",
"committed_at": "2026-06-19T08:45:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f42f606eebdce98ce670ec269ead9064e79ea186",
"body": null,
"is_bot": false,
"headline": "[create-pull-request] automated change (#4018)",
"author_name": "loft-bot",
"author_login": "loft-bot",
"committed_at": "2026-06-17T07:15:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e95cfa5ce199bb6be5bad7caeb56d665264fb34c",
"body": "…(#4019)",
"is_bot": false,
"headline": "feat(standalone): add controlPlane.standalone.advertiseAddress field …",
"author_name": "Randall McPherson",
"author_login": "rlmcpherson",
"committed_at": "2026-06-16T19:14:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "407acc39249946cc502a8519317a7c13fc69fa4d",
"body": null,
"is_bot": false,
"headline": "chore(e2e): fix package in e2e/readme file (#4016)",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-06-16T13:16:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3cd738c9f93789c591cddaa4538dd259aa4039fb",
"body": "…orm version bump (#4013)\n\nThe update-platform-version workflow rejected every dispatch because its\nvalidation regex (^v[0-9]+\\.[0-9]+\\.[0-9]+$) only allowed stable versions.\nThe platform release process in loft-enterprise deliberately notifies on\nboth stable and -rc. tags, so the receiver was stric\n[…]\n precedence (GNU sort -V gets this backwards)\n- set persist-credentials: false on checkout; create-pull-request uses\n GH_ACCESS_TOKEN, matching other push-capable jobs in this repo\n\nCloses DEVOPS-993",
"is_bot": false,
"headline": "fix(ci): accept pre-release tags and enable manual dispatch for platf…",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-06-16T07:22:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a39fdfba4d6b8adc1b99373caa0a349f8e2a74e6",
"body": null,
"is_bot": false,
"headline": "ci: pass test-dir=e2e to run-ginkgo",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-06-16T07:16:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f99771be79a4887c788a876275ef7df8db20cb0",
"body": null,
"is_bot": false,
"headline": "chore: rename e2e-next directory to e2e",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-06-16T07:16:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df88a33274ee0f2e2eab9c6b5999e036bef5ff1d",
"body": "* chore: import snapshot storage api from loft-sh/api\n\nSigned-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>\n\n* bump loft-sh/api version\n\nSigned-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>\n\n---------\n\nSigned-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>",
"is_bot": false,
"headline": "chore: import snapshot storage api from loft-sh/api (#3971)",
"author_name": "Marcin Franczyk",
"author_login": "mfranczy",
"committed_at": "2026-06-15T09:12:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd1fc2884f887918a7572087876d22aa29157899",
"body": "#3996 pinned ReferenceGrant/TLSRoute/BackendTLSPolicy syncing to the v1\nGateway API versions but left the v1alpha2/v1alpha3/v1beta1 packages\n(vendored in fe771bb0) without an importer. go mod vendor prunes them,\nso the lint vendor-sync check fails on every new PR against main.\nRegenerate vendor/ to remove the 29 orphaned files.",
"is_bot": false,
"headline": "chore: re-run go mod vendor to prune orphaned gateway-api types (#4009)",
"author_name": "Sowmya Viswanathan",
"author_login": "sowmyav27",
"committed_at": "2026-06-13T01:04:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97ead216cb2c0bc482318b13822411abc23206b3",
"body": "* fix: set host parentref namespace for implicit refs to imported gateways\n - Fix Gateway API parentRef namespace translation for imported Gateways\n - Preserve implicit vs explicit tenant parentRefs in route status sync\n - Add unit + e2e coverage for same-namespace imported Gateway routes\n\nCloses EN\n[…]\nrd target, not the source key, in gateway mapping mismatch errors\n\nCloses ENGNODE-555\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>\n\n---------\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>",
"is_bot": false,
"headline": "fix: httproute parentRef syncing and clearer error message (#3998)",
"author_name": "Ryan Swanson",
"author_login": "zerbitx",
"committed_at": "2026-06-12T16:46:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "edbb6881721e7e8f2ecddccbe1d5ce1e44a0b9cd",
"body": "* feat: use latest gateway api versions only\n\nPin ReferenceGrant, TLSRoute, and BackendTLSPolicy syncing to the v1\nGateway API versions instead of negotiating older served versions\nagainst the host. Hosts whose Gateway API CRDs do not serve v1 fail\nfast at startup with an actionable error.\n\nSigned-o\n[…]\na\n- add umbrella-only e2e suite plus unit and chart test coverage\n\nCloses ENGNODE-568\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>\n\n---------\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>",
"is_bot": false,
"headline": "Engnode 568 (#3997)",
"author_name": "Ryan Swanson",
"author_login": "zerbitx",
"committed_at": "2026-06-12T13:59:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7f4d24d98ed48dfb9ec37609bb5ba4b94374062a",
"body": "* e2e: add Gateway API P0/P1 coverage on top of #3985\n\nAdds tests for TC-02a (umbrella/selective sync forms), TC-04d\n(referenceGrants disabled), TC-12 (HTTPRoute with bad parentRef),\nTC-34a/b (fromHost+toHost gateway name reservation), and TC-38/39/40/41\n(fromHost.gateways config validation).\n\nOnly \n[…]\nnvalid-config variants into separate It blocks\n\nEach fromHost.gateways validation variant now runs as its own spec node so a\nfailure in one variant no longer aborts the It and silently skips the rest.",
"is_bot": false,
"headline": "e2e: Gateway API P0/P1 coverage on top of #3985 (#3991)",
"author_name": "Sowmya Viswanathan",
"author_login": "sowmyav27",
"committed_at": "2026-06-12T13:47:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2a1c7db2f1892d4fb9ecea0ff6ebd910b23f21c6",
"body": "* feat: use latest gateway api versions only\n\nPin ReferenceGrant, TLSRoute, and BackendTLSPolicy syncing to the v1\nGateway API versions instead of negotiating older served versions\nagainst the host. Hosts whose Gateway API CRDs do not serve v1 fail\nfast at startup with an actionable error.\n\nSigned-o\n[…]\nnit test asserting\n route mappers ensure the grant CRD when grant sync is disabled\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>\n\n---------\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>",
"is_bot": false,
"headline": "Engnode 569 (#3996)",
"author_name": "Ryan Swanson",
"author_login": "zerbitx",
"committed_at": "2026-06-12T13:18:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f07b72c02015cb84ba18a573ac47575e39f6d5b8",
"body": "…s on (#3999)\n\n* fix: keep sanitized terminate listeners crd-valid with a marker tls option\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>\n\n* test: address review feedback on tls mode coverage\n\n- assert tls mode preservation per case in the sanitize table test\n- set terminate mode explicitly in\n[…]\nd gateway and\n verify it syncs to the host, binding the test to the reported symptom\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>\n\n---------\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>",
"is_bot": false,
"headline": "fix: Keep the GatewayCRD valid during translation when sanitization i…",
"author_name": "Ryan Swanson",
"author_login": "zerbitx",
"committed_at": "2026-06-12T13:13:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "153381cae4b2ba6c06fd7c1701331678d1ec7f71",
"body": null,
"is_bot": false,
"headline": "fix: CRD sync race in vcluster HA (#3993)",
"author_name": "Jose Silva",
"author_login": "jjaferson",
"committed_at": "2026-06-12T11:54:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "784e282bc2eea9b22a3ce3bbc1243acae05ecec1",
"body": "… parent context (#4000)",
"is_bot": false,
"headline": "fix(cli): restrict vcluster debug commands to helm driver and resolve…",
"author_name": "Catalin Balan",
"author_login": "cbalan",
"committed_at": "2026-06-11T16:57:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ca05ad60564d51ed6942e7ed8402e4f99d7b7c47",
"body": "- Fix Gateway API authz watches to use explicit unstructured GVKs\n- Watch ReferenceGrant as gateway.networking.k8s.io/v1beta1\n- List HTTPRoute and TLSRoute via explicit unstructured list objects\n- Avoid scheme alias resolution selecting unsupported Gateway API versions\n- Remove unused Gateway watch \n[…]\nly suite\n- Move Gateway API enablement helpers to pkg/util/gatewayapi\n- Call Gateway API util enablement helpers directly from mappings registration\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>",
"is_bot": false,
"headline": "Fix Gateway API combined sync coverage",
"author_name": "Ryan Swanson",
"author_login": "zerbitx",
"committed_at": "2026-06-10T12:21:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7e3140ec0a33953f3753612f819476cf0f16603a",
"body": " - Enable ReferenceGrant CRD/mappers when HTTPRoute sync active, independent of namespace sync\n - Add mapper/controller tests for auto behavior\n - Scope local Gateway cache to host mapping source namespaces\n - Add tests for from-host Gateway namespace cache behavior\n - Format Gateway API e2e cleanup blocks\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>",
"is_bot": false,
"headline": "- Fix Gateway API ReferenceGrant auto registration",
"author_name": "Ryan Swanson",
"author_login": "zerbitx",
"committed_at": "2026-06-10T12:21:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f73b56bd930365d81560546a2947edda631b0eef",
"body": " - sanitize tenant-visible GatewayClasses by removing parametersRef after patches\n - validate Tenant Gateway sync only uses tenant-visible GatewayClasses\n - add Gateway API e2e suite for GatewayClass visibility, sanitization, and Gateway/HTTPRoute sync\n - install required Gateway API CRDs for the suite\n - add gatewayapi/gatewayclasses e2e labels and fixture config\n - cover delete propagation for mirrored GatewayClass, Gateway, and HTTPRoute\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>",
"is_bot": false,
"headline": " Add Gateway API GatewayClass e2e coverage",
"author_name": "Ryan Swanson",
"author_login": "zerbitx",
"committed_at": "2026-06-10T12:21:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "433f1767f7f523bceb0aab3a8aa0c75ab2d61162",
"body": "…977)",
"is_bot": false,
"headline": "chore(ci): bump ci-test-notify to skip cancelled and skipped runs (#3…",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-06-09T15:58:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f608d31738cb8406aefd3307484baa29045751fc",
"body": "Resolves ENGQA-1085",
"is_bot": false,
"headline": "chore(e2e-next): fix setup for csi.go tests (#3990)",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-06-09T07:24:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc79f8be9eebb87661a9cb9b2591247d49a7fda5",
"body": null,
"is_bot": false,
"headline": "Update MinimumVersionTag to v4.9.2",
"author_name": "Denise",
"author_login": "deniseschannon",
"committed_at": "2026-06-05T17:41:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe771bb02e4cb8836969ced030166095c63838a5",
"body": " - switch ReferenceGrant to v1beta1, TLSRoute to v1alpha2, BackendTLSPolicy to v1alpha3\n - register additional Gateway API scheme versions and vendored types\n - update mappers, syncers, authz watches, and tests for version-specific resources\n - improve Gateway API host discovery error messages\n - reject invalid gateway mappings at start up instead of crashlooping later\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>",
"is_bot": false,
"headline": " - use older served Gateway API versions for compatibility",
"author_name": "Ryan Swanson",
"author_login": "zerbitx",
"committed_at": "2026-06-05T15:54:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ab4f5e0665d6aea09861fa4cb61f743fcd80592",
"body": null,
"is_bot": false,
"headline": "chore: bump apis to v4.10.0-alpha.12 (#3973)",
"author_name": "Sean Schneeweiss",
"author_login": "seanschneeweiss",
"committed_at": "2026-06-05T07:41:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db098478138f292b4beb39c877aac21517eedb68",
"body": "* Add machineconfigtemplates to platform destroy clean up list\n\n* Fix: fail platform destroy on unknown managed resources",
"is_bot": false,
"headline": "Fix: Platform destroy cleans up machineconfigtemplates (#3979)",
"author_name": "Josef Mende",
"author_login": "squ94wk",
"committed_at": "2026-06-05T07:23:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c707caa27e2eb75b9862bd7eceafe70dd63da81d",
"body": "Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: upgrade go modules to resolve high-severity snyk cves (#3950)",
"author_name": "Sachin Lobo",
"author_login": "neogopher",
"committed_at": "2026-06-05T05:49:41Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0b4a9c6ed09a06ac59231281260de7ce82327e8f",
"body": "…rsion, Free tier, vNode framing, and Links section (#3904)\n\n* docs(readme): address review feedback on positioning and clarity\n\n- Drop \"(v1.35)\" from the Kubernetes AI Conformant references in\n both the badge line and the prose certification line. 1.35 is\n the latest cert and pinning the version \n[…]\n was inconsistent. Rewrote the line as a\nnon-ordered foundation list (matches what landed on the\nloft-sh/.github org README), and switched \"GPU clouds\" to\n\"AI clouds\" in line with current terminology.",
"is_bot": false,
"headline": "docs(readme): address review feedback on Standalone, AI Conformant ve…",
"author_name": "Saiyam Pathak",
"author_login": "saiyam1814",
"committed_at": "2026-06-05T04:40:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6ffbc797eb1314cfafd48878ae07e245c931d2cf",
"body": null,
"is_bot": false,
"headline": "Adds 2025 vcluster logos and info (#3967)",
"author_name": "Caleb Bron",
"author_login": "cbron",
"committed_at": "2026-06-04T20:47:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "333bd5de3bd1a79fa822946781c6b74129845609",
"body": "* Implement Gateway API host Gateway import redesign\n\n - Add fromHost Gateway config, defaults, validation, and schema\n - Split Gateway API sync into per-resource route/policy toggles\n - Import selected host Gateways read-only into virtual namespace\n - Auto-sync GatewayClasses required by imported G\n[…]\nan Swanson <ryan.swanson@loft.sh>\n\n* PR comments: some func renaming,guard against empty selector, and clean up of list funcs in recorder\n\n---------\n\nSigned-off-by: Ryan Swanson <ryan.swanson@loft.sh>",
"is_bot": false,
"headline": " Implement Gateway API host Gateway import redesign (#3969)",
"author_name": "Ryan Swanson",
"author_login": "zerbitx",
"committed_at": "2026-06-04T16:54:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3031d19ca041281a420d426cc768942d82c83192",
"body": "When running \"sudo vcluster create\" on a machine without an existing\n~/.kube/config, the newly created kubeconfig is owned by root with 0600\npermissions, making it unreadable by the actual user.\n\nFix by checking SUDO_UID/SUDO_GID after writing and chowning the file\nand parent directory back to the real user. This is a no-op when not\nrunning under sudo or when the file already existed (POSIX preserves\nownership on overwrite).",
"is_bot": false,
"headline": "fix: correct kubeconfig ownership when running under sudo (#3826)",
"author_name": "Saiyam Pathak",
"author_login": "saiyam1814",
"committed_at": "2026-06-04T10:03:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "41f906ba7aac047c144aa4daf6e6e69be14ee8de",
"body": null,
"is_bot": false,
"headline": "change deprecate message to match docs",
"author_name": "Jose Silva",
"author_login": "jjaferson",
"committed_at": "2026-06-03T17:37:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b8290f3b52c007edba51c042e24025e273361c8",
"body": "…e (#3970)\n\n* fix(snapshot): suppress misleading etcd client warnings during restore\n\nDuring restore the key-value path probes and connects to a backing\nstore that is not started yet (isEtcdReachable before kine starts,\nWaitForEtcd while the store boots), so the etcd clientv3 retry\ninterceptor logs \n[…]\n the clientv3\nclient a no-op logger unless verbose logging (-v=1) is enabled, so the\nretry interceptor does not print misleading \"retrying of unary invoker\nfailed\" warnings during restore and startup.",
"is_bot": false,
"headline": "fix(snapshot): suppress misleading etcd client warnings during restor…",
"author_name": "vcluster-dv",
"author_login": "vcluster-dv",
"committed_at": "2026-06-03T16:13:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cd7264671c63bf148fb44459006b4e6f2dcb3e74",
"body": "* fix(coredns): fully-qualify default CoreDNS image (ENGCP-588)\n\nvCluster rendered the default CoreDNS image as a registry-less (\"short\")\nreference (coredns/coredns:<tag>). Container runtimes historically expand\nsuch names to docker.io, but this is not guaranteed: on clusters with\nstrict short-name \n[…]\nent into a one-liner; the rationale\n already lives on the DefaultImageRegistry constant.\n- Group test imports into a single third-party block.\n- Drop the redundant comment in the e2e image assertion.",
"is_bot": false,
"headline": "fix(coredns): fully-qualify default CoreDNS image (ENGCP-588) (#3976)",
"author_name": "vcluster-dv",
"author_login": "vcluster-dv",
"committed_at": "2026-06-03T15:49:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d3274b291da129a43c7f8ef1c069d6174fc9b2f8",
"body": null,
"is_bot": false,
"headline": "Adds: deprecate volume snapshot and restore (#3975)",
"author_name": "Jose Silva",
"author_login": "jjaferson",
"committed_at": "2026-06-03T06:15:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f6932d2e6fc40850b07248a784a6c37b9ea3fa0",
"body": null,
"is_bot": false,
"headline": "chore(e2e-next): Fix csi setup (#3974)",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-06-02T13:14:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e4588e7004f9c3a84d2caed2e501745e97617ce9",
"body": "…3948)\n\n* feat: add --snapshot-temp-dir for snapshot create/restore commands\n\n* Propagate snapshot-temp-dir to snapshot create/restore using the docker driver",
"is_bot": false,
"headline": "feat: add --snapshot-temp-dir for snapshot create/restore commands (#…",
"author_name": "Catalin Balan",
"author_login": "cbalan",
"committed_at": "2026-06-01T12:57:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90958443a7defe288460bc8c5129a1be27007e91",
"body": "When running vcluster create --restore and the storage backend (e.g. S3)\nreturns an error — expired credentials, missing object, permission denied —\nthe CLI was only emitting a warning and then proceeding to install the helm\nchart, pause the vCluster, and launch the restore pod, which would\neventually also fail.\n\nReturn the error from buildExtraValues instead so the command stops before\nany cluster state is mutated.",
"is_bot": false,
"headline": "fix(snapshot): fail early when restore snapshot is inaccessible (#3958)",
"author_name": "vcluster-dv",
"author_login": "vcluster-dv",
"committed_at": "2026-06-01T10:29:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ceebbd2eb33c6ccd7b65ca317be3dbefdbde8962",
"body": null,
"is_bot": false,
"headline": "[create-pull-request] automated change (#3966)",
"author_name": "loft-bot",
"author_login": "loft-bot",
"committed_at": "2026-05-29T14:51:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8de102fe1b5e745358702a10d3757b892c66634",
"body": "The vcluster-pro embedded-etcd health checker uses a host-namespace\nLease for leader election so health reporting survives an outage of\npod-0. The Role currently only grants coordination.k8s.io/leases when\nprivateNodes.enabled or replicas > 1, which leaves single-replica\nembedded-etcd deployments wi\n[…]\n.\n\nExtend the conditional to also include\ncontrolPlane.backingStore.etcd.embedded.enabled, and add a chart test\nplus a counter-test to lock the behavior in.\n\nRefs: loft-sh/vcluster-pro#1815, ENGCP-882",
"is_bot": false,
"headline": "fix(chart): grant lease verbs when embedded etcd is enabled (#3965)",
"author_name": "Randall McPherson",
"author_login": "rlmcpherson",
"committed_at": "2026-05-29T09:26:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4e14e16ca157a7343d7ec46ef6da66a7d07cfb40",
"body": "…uest entries (#3960)",
"is_bot": false,
"headline": "fix(snapshot): move etcd snapshot archive entry after release and req…",
"author_name": "Catalin Balan",
"author_login": "cbalan",
"committed_at": "2026-05-28T13:50:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "059b963ada6fc2d9d253c2df9f0c7af53be998ff",
"body": "…red (#3947)\n\nThe AWS SDK v2 serializer emits the x-amz-tagging header whenever\nPutObjectInput.Tagging is set, even with an empty string. Cloudflare R2\nand some other S3-compatible backends reject the request with\nHTTP 501 NotImplemented when the header is present, regardless of value,\nbecause they do not implement object tagging at all.\n\nGuard the assignment so the header is only sent when the user has\nactually configured a tagging value.\n\nRefs: loft-sh/vcluster#3882",
"is_bot": false,
"headline": "fix(snapshot): only send x-amz-tagging header when tagging is configu…",
"author_name": "vcluster-dv",
"author_login": "vcluster-dv",
"committed_at": "2026-05-27T12:31:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f8c245a05d715904d5af60c5e78d4cfa433ff59",
"body": "Signed-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>",
"is_bot": false,
"headline": "fix: k3s to k8s cert migration (#3952)",
"author_name": "Marcin Franczyk",
"author_login": "mfranczy",
"committed_at": "2026-05-26T16:36:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8fe5c1412492da8ce3d6039c1e79507d7feb52ed",
"body": null,
"is_bot": false,
"headline": "feat: Add types for argocd v2 integration support (#3946)",
"author_name": "Florian MEDJA",
"author_login": "flomedja",
"committed_at": "2026-05-21T16:26:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3c86b6c16aca57bd79f8080f29beb3783f323431",
"body": "…3942)\n\n* test: e2e test for testing pagination in etcd snapshot and restore\n\n* moves test to a single it() block and expose etcd pagination limit",
"is_bot": false,
"headline": "test: e2e test for testing pagination in etcd snapshot and restore (#…",
"author_name": "Jose Silva",
"author_login": "jjaferson",
"committed_at": "2026-05-21T09:37:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "195d4d7cf4e578db946ed6bdbb225c5322bc7b14",
"body": "* enhancement: use exported snapshot api types\n\nSigned-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>\n\n* bump loft api to v4.10.0-alpha.1\n\nSigned-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>\n\n* align snapshotapi imports\n\nSigned-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>\n\n---------\n\nSigned-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>",
"is_bot": false,
"headline": "enhancement: use exported snapshot api types (#3943)",
"author_name": "Marcin Franczyk",
"author_login": "mfranczy",
"committed_at": "2026-05-20T17:36:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba7ae18ede04c64e21371426da568e20c2413e42",
"body": "…ilename",
"is_bot": false,
"headline": "fix(snapshot): update CLI error message examples to include .tar.gz f…",
"author_name": "Denis V",
"author_login": "vcluster-dv",
"committed_at": "2026-05-20T14:08:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74d37cc3bec283e77704610a8dff5e9c3f29ca62",
"body": "DevOps team should be explicit owners of release pipelines, in line\nwith the team scope (release CI/CD only). Add @loft-sh/eng-devops as\nco-owner of release.yaml alongside the existing @loft-sh/eng-tech-leads\nownership so release-pipeline reviews route to DevOps directly.\n\nRefs DEVOPS-757",
"is_bot": false,
"headline": "chore(codeowners): add eng-devops as release.yaml owner (#3916)",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-05-19T11:44:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f348bcf7ffadcca5a980bcc4b74fc69f8d5e0705",
"body": null,
"is_bot": false,
"headline": "feat: uptake etcd v3 snapshot facilities for embedded etcd (#3907)",
"author_name": "Catalin Balan",
"author_login": "cbalan",
"committed_at": "2026-05-19T11:06:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5415c3e8e3990e85c5109a5a8caa6c80c05f428e",
"body": "…s (#3936)\n\n* fix(release): make goreleaser retry asset upload on 422 already_exists\n\nRelease run 25905886661 failed with seven 422 already_exists errors\nwhen goreleaser tried to upload binaries and SBOMs to GitHub Release\n323079728 (tag v0.35.0-alpha.5). The first attempt populated the\nrelease; the\n[…]\nEVOPS-923's fix landed in loft-sh/github-actions@46651d2 and the v2\ntag has been force-moved onto that commit; this repo now picks it up\non every release without further action.\n\nReferences DEVOPS-923",
"is_bot": false,
"headline": "fix(release): make goreleaser retry asset upload on 422 already_exist…",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-05-18T10:20:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "83fabd82ee1da367a25c1cb21991f0d01ed525b3",
"body": "Parallel ginkgo workers share the filesystem, and any helper that runs\nthe vcluster CLI as a child process inherits KUBECONFIG from the OS env\n(or defaults to ~/.kube/config). When two suites concurrently create\nkind clusters, that shared file is rewritten and the current context\nflips, so a vcluste\n[…]\nso override and restore KUBECONFIG around\nthat call too. snapshotCtx threads the host kubeconfig through\ncreateSnapshot / restoreVCluster / runVClusterCmd so every caller stays\non the temp kubeconfig.",
"is_bot": false,
"headline": "fix(e2e-next): isolate cli shell-outs from the shared ambient kubeconfig",
"author_name": "Jan Roehrich",
"author_login": "roehrijn",
"committed_at": "2026-05-13T18:47:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "06e43341b48d06bd3b29564a8a5c6ae6c365ff38",
"body": "…#3932)\n\nThe /e2e-next/ rule routes all changes under that tree to eng-qa, but the\nlifecycle (vcluster connect/pause/resume) and snapshot/restore suites\nexercise control-plane behavior. Carve those two subtrees out to\neng-control-plane so review requests land with the team that owns the\nunderlying p\n[…]\n\nlayer (clusters, setup, labels, init) and the rest of e2e-next.\n\nMotivating example: #3931, which fixes a KUBECONFIG race in the\nconnect/snapshot test helpers and should have routed to control-plane.",
"is_bot": false,
"headline": "ci(codeowners): route control-plane e2e suites to eng-control-plane (…",
"author_name": "Jan Röhrich",
"author_login": "roehrijn",
"committed_at": "2026-05-13T17:01:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6bb30679f3cf8ab4c473652994068228344a04b0",
"body": "…d service (#3918)\n\n* Protect against deletion of resource proxy client service\n\n* Generic apiservice deletion prevention policy\n\n* Enable protection binding for metricsserver apiservice",
"is_bot": false,
"headline": "ENGNODE-377 | prevent clients from deleting apiservice and its backen…",
"author_name": "Jan Baraniewski",
"author_login": "janekbaraniewski",
"committed_at": "2026-05-13T12:41:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "24d397fa5e20a786a2c5feb0e398ca264114cb04",
"body": "…ill (#3929)\n\nwithout a top-level pointer, agents working on `.github/` workflows\ndiscovered the reuse-not-inline convention only after touching a CI file\n(the github-actions-developer skill auto-loads on those paths). a short\nnote in root CLAUDE.md surfaces it earlier and links the canonical\nshared-actions repo.\n\ncloses DEVOPS-876",
"is_bot": false,
"headline": "docs(claude.md): point at loft-sh/github-actions and the developer sk…",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-05-12T11:46:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1780eab5d0a266ff162e8437ed030dee9dfb8aaa",
"body": null,
"is_bot": false,
"headline": "[create-pull-request] automated change (#3908)",
"author_name": "loft-bot",
"author_login": "loft-bot",
"committed_at": "2026-05-12T09:30:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2ed527fac1b5cc4b42928dbfb23bc6ac3824480d",
"body": "… resources list (#3927)",
"is_bot": false,
"headline": "feat: add argocdapplication and argocdapplicationtemplates to destroy…",
"author_name": "Florian MEDJA",
"author_login": "flomedja",
"committed_at": "2026-05-11T19:06:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e86a09b18940cf8101917bb42582e4f56fef61e",
"body": "Bumps [github.com/docker/cli](https://github.com/docker/cli) from 28.2.2+incompatible to 29.2.0+incompatible.\n- [Commits](https://github.com/docker/cli/compare/v28.2.2...v29.2.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/docker/cli\n dependency-version: 29.2.0+incompatible\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump github.com/docker/cli (#3633)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-11T13:33:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d9404f42be39fd088386e4b15457fb9014ca0337",
"body": "…#3920)\n\n* ci(release): switch to repository-dispatch composite for vcluster-docs notify\n\nWhy: legacy push-to-vcluster-docs path embedded vcluster-docs structure\n(versioned-folder paths, partial generators, branch naming) into this repo.\nThat coupled docs layout to vcluster's release pipeline and me\n[…]\nt/rotation\nsurface in half compared to mirroring a new repo-level secret.\n\nSpec named CROSS_REPO_DISPATCH_TOKEN; deviation is intentional and was\nflagged in the PR description for reviewer visibility.",
"is_bot": false,
"headline": "ci(release): switch to repository-dispatch for vcluster-docs notify (…",
"author_name": "Piotr",
"author_login": "Piotr1215",
"committed_at": "2026-05-11T08:12:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "789e4c12fe2c553e68f0878d121797fbd536c480",
"body": "Adds GCP OIDC auth, gcloud setup, and upload-report/reports-bucket/\nworkflow-file inputs to the run-ginkgo call sites in e2e-ginkgo.yaml\nand e2e-ginkgo-nightly.yaml. Mirrors loft-sh/vcluster-pro#1766.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: wire upload-report into run-ginkgo callers",
"author_name": "Jan Roehrich",
"author_login": "roehrijn",
"committed_at": "2026-05-07T13:57:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "27a6719630e24eb9873235d8aa5c146c3de393bf",
"body": "Bind kine's metrics listener to 127.0.0.1:2381 and proxy it through the\ncontrol plane on /metrics/kine when a database backing store is in use.\nAdd a ServiceMonitor endpoint to scrape it. Snapshot restore explicitly\ndisables the listener to avoid a port conflict with the running kine.\n\nCloses ENGCP-400\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(metrics): expose kine metrics via /metrics/kine (#3910)",
"author_name": "Pascal Breuninger",
"author_login": "pascalbreuninger",
"committed_at": "2026-05-06T12:58:27Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2b259bbaebc374071774ae740182938ea7803ff6",
"body": "* Enable wildcard support for custom resource proxy\n\n* fix: skip disabled entries from cross-entry proxy validation\n\nDisabled custom resource proxy entries do not produce a route at runtime\n(parseProxyTargets filters by Enabled), so they should not participate in\nwildcard/explicit conflict or group-version agreement checks.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "ENGNODE-336 | Enable wildcard support for custom resource proxy (#3886)",
"author_name": "Jan Baraniewski",
"author_login": "janekbaraniewski",
"committed_at": "2026-04-30T14:52:10Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1836b50ed828670b09e25ec5485b7d0be04897aa",
"body": "vcluster connect/create and platform connect/create previously cleared\nsleepmode.loft.sh/force-duration on a sleeping instance and silently\nwoke it, violating the prevent-wakeup contract.\n\nWaitForVirtualClusterInstance and WaitForSpaceInstance now take a\nforceWakeup parameter; when false, sleeping i\n[…]\nation return an error pointing at the explicit\nwakeup command. resume / platform wakeup pass forceWakeup=true.\n\nresolves ENGCP-349\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(platform): respect prevent-wakeup on connect/create",
"author_name": "Pascal Breuninger",
"author_login": "pascalbreuninger",
"committed_at": "2026-04-30T10:43:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "eb009ad772cb821cb110c3583dc7536e1cab7bb1",
"body": "* feat: sanitise pod name in events\n* fix(justfile): Add GO_PRIVATE envs to `_ensure_linters` command",
"is_bot": false,
"headline": "feat: add sanitise pod name for events (#3884)",
"author_name": "Florian MEDJA",
"author_login": "flomedja",
"committed_at": "2026-04-29T12:09:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "99534a8ddb6f0fd0c9154e1a3d8bf273da8a9620",
"body": "…grade pod\n\n`vcluster node upgrade` supported a `--bundle-repository` flag on the\nlocal CLI but never forwarded it into the in-pod `/vcluster node upgrade`\ncommand, so setting it was a silent no-op. Also, the flag default was a\nhard-coded github URL — overriding it in the upgrade pod meant we could\n\n[…]\ne for CP-served bundles).\n- When non-empty, pass the value into the spawned upgrade pod's\n `--bundle-repository` arg.\n\nENGCP-562.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(node upgrade): forward --bundle-repository from vclusterctl to up…",
"author_name": "Pascal Breuninger",
"author_login": "pascalbreuninger",
"committed_at": "2026-04-28T18:57:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1ce4af5a3cdcd5de2fb508a6f4837805514cc8a5",
"body": "Fixes Resource not accessible by integration (HTTP 403)",
"is_bot": false,
"headline": "fix(ci) sticky-pr-comment permissions (#3901)",
"author_name": "Dmytro Sydorov",
"author_login": "sydorovdmytro",
"committed_at": "2026-04-28T12:56:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "538eca7477d355d74704a8be6349f21956e73c02",
"body": null,
"is_bot": false,
"headline": "chore: upgrade k8s deps to v1.36 (#3892)",
"author_name": "Pascal Breuninger",
"author_login": "pascalbreuninger",
"committed_at": "2026-04-28T12:40:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "250d74b6bba821166f98e21e0a2563722e66af0a",
"body": "* chore(e2e-next): LazyVCluster initialization\n\n* chore(e2e-next): fix lint\n\n* chore(e2e-next): add failed vcluster diagnostic\n\n* chore(e2e-next): Update suites to use lazyvcluster\n\n* chore(e2e-next): fix conflicts\n\n* chore(e2e-next): readme fix\n\n* chore(e2e-next): update e2e-next .claude/ rules and\n[…]\nore(e2e-next): fix not working tests\n\n* chore(e2e-next): fixes\n\n* chore(e2e-next): lint fix\n\n* chore(e2e-next): remove randomize\n\n* chore(e2e-next); remove temp file\n\n* chore(e2e-next): fixes after CR",
"is_bot": false,
"headline": "chore(e2e-next): inline cluster lifecycle (#3890)",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-04-28T07:08:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "826322a8f61bf48b231e2f81ac1c66bfb356d9a3",
"body": null,
"is_bot": false,
"headline": "chore(e2e-next): Remove vind tests",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-04-27T17:25:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6794b6fe326104e578efc5168a445f0b5da9d426",
"body": "* ci(e2e-ginkgo): post sticky PR comment with last e2e run status\n\nMirrors loft-sh/loft-enterprise#6754 and loft-sh/vcluster-pro#1728 for the\ne2e-ginkgo workflow.\n\nWhen the workflow detects a PR description edit that does not change the\nlabel-filter block, it skips the e2e-tests job. GitHub then ren\n[…]\nGITHUB_TOKEN is read-only for pull_request events from forks regardless\nof the workflow-level permissions block, so the upsert step 403s. Gate\nthe step on same-repo PRs only; fork PRs skip it cleanly.",
"is_bot": false,
"headline": "ci(e2e-ginkgo): post sticky PR comment with last e2e run status (#3899)",
"author_name": "Dmytro Sydorov",
"author_login": "sydorovdmytro",
"committed_at": "2026-04-27T14:00:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4d6740d58d33d00ba5fe9018a49dfea7fc19342f",
"body": "- google.golang.org/grpc v1.78.0 → v1.80.0 (fixes SNYK-GOLANG-GOOGLEGOLANGORGGRPC-15691172, incorrect authorization via malformed :path headers)\n- github.com/buger/jsonparser v1.1.1 → v1.1.2 (fixes SNYK-GOLANG-GITHUBCOMBUGERJSONPARSER-15674455, panic on malformed JSON)\n- go.opentelemetry.io/otel v1.40.0 → v1.43.0 (fixes baggage header DoS and untrusted search path via kenv)\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: upgrade dependencies to resolve snyk CVEs (#3893)",
"author_name": "Sachin Lobo",
"author_login": "neogopher",
"committed_at": "2026-04-27T09:14:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8584d4edcddbcc7df724d8a5cb011e6b812758b4",
"body": null,
"is_bot": false,
"headline": "refactor: metrics for components (#3894)",
"author_name": "Fabian Kramm",
"author_login": "FabianKramm",
"committed_at": "2026-04-27T08:04:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f298bc9538169a17a064cc30945c54d3c8bd2c4",
"body": "…e (#3888)\n\nSigned-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>",
"is_bot": false,
"headline": "feat(standalone): add a vcluster restore setup for vCluster standalon…",
"author_name": "Marcin Franczyk",
"author_login": "mfranczy",
"committed_at": "2026-04-24T15:30:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c05278c95661eb6245923f5aae7d12a4fa1d80d",
"body": "If telemetry is not disabled explicitly(enabled by default on\ninstallation), it unnecessarily introduces lag to the completion script\ngeneration and completion generation during usage in shell.\n\nThis PR skips entirely telemetry when it is either `completion`\nsubcommand or hidden magic commands for completion script purpose.",
"is_bot": false,
"headline": "fix: skip telemetry on completion command (#3887)",
"author_name": "Adam Pasyniuk",
"author_login": "apasyniuk",
"committed_at": "2026-04-23T19:23:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c8713de4cdb97c2ecff44abfc7b90d5fa3b25f83",
"body": null,
"is_bot": false,
"headline": "fix: prevent restore when vcluster.service is stopped (#3885)",
"author_name": "Jose Silva",
"author_login": "jjaferson",
"committed_at": "2026-04-23T10:57:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5b34a6b3190a94dc1799083e090d2f3d44462089",
"body": null,
"is_bot": false,
"headline": "chore(e2e-next): Generate failure summary (#3870)",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-04-23T08:01:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e1a9ab4770a54454396e28aeaf10364191775711",
"body": null,
"is_bot": false,
"headline": "chore(e2e-next): readme update (#3866)",
"author_name": "Adrian",
"author_login": "adriankabala",
"committed_at": "2026-04-23T07:43:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68f2bcba49c050c219cf6f7a831a64238747d033",
"body": "Signed-off-by: Marcin Franczyk <marcin0franczyk@gmail.com>",
"is_bot": false,
"headline": "fix(standalone): fix LoadStandaloneRuntimeConfig (#3881)",
"author_name": "Marcin Franczyk",
"author_login": "mfranczy",
"committed_at": "2026-04-22T19:53:49Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 538,
"latest_release_at": "2026-07-27T14:43:00Z",
"latest_release_tag": "v0.36.1-rc.0",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 50,
"days_since_latest_release": 1,
"mean_days_between_releases": 2.2
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 75,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "github.com/loft-sh/vcluster",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/loft-sh/vcluster",
"is_deprecated": false,
"latest_version": "v0.36.0",
"repository_url": "https://github.com/loft-sh/vcluster",
"versions_count": 677,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-17T17:42:00Z",
"latest_version_yanked": null,
"days_since_latest_publish": 10
}
]
},
"popularity": {
"forks": 590,
"stars": 11243,
"watchers": 51,
"fork_history": {
"days": [
{
"date": "2021-04-19",
"count": 1
},
{
"date": "2021-04-21",
"count": 1
},
{
"date": "2021-04-22",
"count": 1
},
{
"date": "2021-04-27",
"count": 1
},
{
"date": "2021-04-28",
"count": 1
},
{
"date": "2021-05-07",
"count": 2
},
{
"date": "2021-05-13",
"count": 1
},
{
"date": "2021-05-14",
"count": 2
},
{
"date": "2021-05-15",
"count": 1
},
{
"date": "2021-05-17",
"count": 2
},
{
"date": "2021-05-19",
"count": 1
},
{
"date": "2021-05-25",
"count": 1
},
{
"date": "2021-05-28",
"count": 1
},
{
"date": "2021-05-29",
"count": 1
},
{
"date": "2021-06-01",
"count": 1
},
{
"date": "2021-06-04",
"count": 1
},
{
"date": "2021-06-07",
"count": 1
},
{
"date": "2021-07-02",
"count": 1
},
{
"date": "2021-07-16",
"count": 1
},
{
"date": "2021-07-19",
"count": 3
},
{
"date": "2021-07-21",
"count": 1
},
{
"date": "2021-08-03",
"count": 1
},
{
"date": "2021-08-16",
"count": 1
},
{
"date": "2021-08-28",
"count": 1
},
{
"date": "2021-09-02",
"count": 1
},
{
"date": "2021-09-03",
"count": 1
},
{
"date": "2021-09-06",
"count": 1
},
{
"date": "2021-09-21",
"count": 1
},
{
"date": "2021-09-28",
"count": 1
},
{
"date": "2021-09-30",
"count": 1
},
{
"date": "2021-10-10",
"count": 1
},
{
"date": "2021-10-14",
"count": 4
},
{
"date": "2021-10-17",
"count": 1
},
{
"date": "2021-10-23",
"count": 1
},
{
"date": "2021-10-24",
"count": 1
},
{
"date": "2021-10-28",
"count": 1
},
{
"date": "2021-10-30",
"count": 1
},
{
"date": "2021-11-09",
"count": 1
},
{
"date": "2021-11-15",
"count": 1
},
{
"date": "2021-11-16",
"count": 1
},
{
"date": "2021-11-19",
"count": 2
},
{
"date": "2021-11-20",
"count": 1
},
{
"date": "2021-11-25",
"count": 2
},
{
"date": "2021-12-01",
"count": 1
},
{
"date": "2021-12-02",
"count": 1
},
{
"date": "2021-12-03",
"count": 1
},
{
"date": "2021-12-06",
"count": 1
},
{
"date": "2021-12-07",
"count": 1
},
{
"date": "2021-12-10",
"count": 1
},
{
"date": "2021-12-11",
"count": 1
},
{
"date": "2021-12-18",
"count": 1
},
{
"date": "2021-12-20",
"count": 3
},
{
"date": "2021-12-23",
"count": 1
},
{
"date": "2022-01-03",
"count": 2
},
{
"date": "2022-01-11",
"count": 1
},
{
"date": "2022-01-12",
"count": 1
},
{
"date": "2022-01-17",
"count": 1
},
{
"date": "2022-01-19",
"count": 2
},
{
"date": "2022-01-20",
"count": 2
},
{
"date": "2022-01-24",
"count": 1
},
{
"date": "2022-01-28",
"count": 1
},
{
"date": "2022-01-30",
"count": 1
},
{
"date": "2022-02-01",
"count": 1
},
{
"date": "2022-02-04",
"count": 1
},
{
"date": "2022-02-11",
"count": 1
},
{
"date": "2022-02-16",
"count": 1
},
{
"date": "2022-02-28",
"count": 1
},
{
"date": "2022-03-01",
"count": 2
},
{
"date": "2022-03-02",
"count": 1
},
{
"date": "2022-03-03",
"count": 1
},
{
"date": "2022-03-08",
"count": 1
},
{
"date": "2022-03-10",
"count": 2
},
{
"date": "2022-03-16",
"count": 1
},
{
"date": "2022-03-22",
"count": 1
},
{
"date": "2022-03-23",
"count": 1
},
{
"date": "2022-03-26",
"count": 1
},
{
"date": "2022-04-02",
"count": 1
},
{
"date": "2022-04-04",
"count": 1
},
{
"date": "2022-04-05",
"count": 1
},
{
"date": "2022-04-06",
"count": 1
},
{
"date": "2022-04-08",
"count": 2
},
{
"date": "2022-04-11",
"count": 1
},
{
"date": "2022-04-13",
"count": 2
},
{
"date": "2022-04-14",
"count": 1
},
{
"date": "2022-05-02",
"count": 1
},
{
"date": "2022-05-03",
"count": 1
},
{
"date": "2022-05-17",
"count": 1
},
{
"date": "2022-05-22",
"count": 2
},
{
"date": "2022-05-25",
"count": 1
},
{
"date": "2022-05-27",
"count": 1
},
{
"date": "2022-05-30",
"count": 1
},
{
"date": "2022-06-07",
"count": 1
},
{
"date": "2022-06-09",
"count": 1
},
{
"date": "2022-06-16",
"count": 1
},
{
"date": "2022-06-20",
"count": 1
},
{
"date": "2022-06-24",
"count": 1
},
{
"date": "2022-06-29",
"count": 1
},
{
"date": "2022-07-06",
"count": 1
},
{
"date": "2022-07-11",
"count": 1
},
{
"date": "2022-07-15",
"count": 2
},
{
"date": "2022-07-21",
"count": 1
},
{
"date": "2022-07-28",
"count": 2
},
{
"date": "2022-07-29",
"count": 1
},
{
"date": "2022-08-02",
"count": 2
},
{
"date": "2022-08-09",
"count": 2
},
{
"date": "2022-08-10",
"count": 1
},
{
"date": "2022-08-12",
"count": 1
},
{
"date": "2022-08-13",
"count": 1
},
{
"date": "2022-08-16",
"count": 1
},
{
"date": "2022-08-17",
"count": 1
},
{
"date": "2022-08-19",
"count": 1
},
{
"date": "2022-08-23",
"count": 1
},
{
"date": "2022-08-26",
"count": 1
},
{
"date": "2022-08-30",
"count": 2
},
{
"date": "2022-09-02",
"count": 1
},
{
"date": "2022-09-05",
"count": 1
},
{
"date": "2022-09-06",
"count": 1
},
{
"date": "2022-09-15",
"count": 1
},
{
"date": "2022-09-19",
"count": 1
},
{
"date": "2022-09-27",
"count": 1
},
{
"date": "2022-10-08",
"count": 2
},
{
"date": "2022-10-11",
"count": 2
},
{
"date": "2022-10-16",
"count": 1
},
{
"date": "2022-10-17",
"count": 1
},
{
"date": "2022-10-21",
"count": 1
},
{
"date": "2022-10-22",
"count": 1
},
{
"date": "2022-10-23",
"count": 1
},
{
"date": "2022-10-25",
"count": 2
},
{
"date": "2022-10-28",
"count": 1
},
{
"date": "2022-10-31",
"count": 1
},
{
"date": "2022-11-04",
"count": 1
},
{
"date": "2022-11-09",
"count": 1
},
{
"date": "2022-11-12",
"count": 1
},
{
"date": "2022-11-16",
"count": 1
},
{
"date": "2022-11-17",
"count": 3
},
{
"date": "2022-11-18",
"count": 1
},
{
"date": "2022-11-20",
"count": 1
},
{
"date": "2022-12-02",
"count": 1
},
{
"date": "2022-12-04",
"count": 1
},
{
"date": "2022-12-19",
"count": 1
},
{
"date": "2022-12-20",
"count": 1
},
{
"date": "2022-12-21",
"count": 1
},
{
"date": "2022-12-29",
"count": 1
},
{
"date": "2023-01-05",
"count": 1
},
{
"date": "2023-01-09",
"count": 1
},
{
"date": "2023-01-13",
"count": 1
},
{
"date": "2023-01-14",
"count": 1
},
{
"date": "2023-01-21",
"count": 1
},
{
"date": "2023-01-25",
"count": 1
},
{
"date": "2023-01-26",
"count": 1
},
{
"date": "2023-02-06",
"count": 1
},
{
"date": "2023-02-08",
"count": 1
},
{
"date": "2023-02-09",
"count": 1
},
{
"date": "2023-02-12",
"count": 1
},
{
"date": "2023-02-14",
"count": 1
},
{
"date": "2023-02-17",
"count": 1
},
{
"date": "2023-02-20",
"count": 1
},
{
"date": "2023-02-22",
"count": 2
},
{
"date": "2023-02-27",
"count": 2
},
{
"date": "2023-02-28",
"count": 1
},
{
"date": "2023-03-01",
"count": 1
},
{
"date": "2023-03-02",
"count": 1
},
{
"date": "2023-03-19",
"count": 1
},
{
"date": "2023-03-20",
"count": 1
},
{
"date": "2023-03-29",
"count": 1
},
{
"date": "2023-03-30",
"count": 1
},
{
"date": "2023-04-04",
"count": 2
},
{
"date": "2023-04-07",
"count": 1
},
{
"date": "2023-04-15",
"count": 1
},
{
"date": "2023-04-17",
"count": 1
},
{
"date": "2023-04-18",
"count": 2
},
{
"date": "2023-04-21",
"count": 1
},
{
"date": "2023-05-04",
"count": 1
},
{
"date": "2023-05-10",
"count": 1
},
{
"date": "2023-05-17",
"count": 2
},
{
"date": "2023-05-19",
"count": 1
},
{
"date": "2023-05-28",
"count": 1
},
{
"date": "2023-05-29",
"count": 1
},
{
"date": "2023-05-30",
"count": 1
},
{
"date": "2023-05-31",
"count": 1
},
{
"date": "2023-06-06",
"count": 1
},
{
"date": "2023-06-14",
"count": 1
},
{
"date": "2023-06-15",
"count": 2
},
{
"date": "2023-06-17",
"count": 1
},
{
"date": "2023-06-21",
"count": 1
},
{
"date": "2023-06-24",
"count": 1
},
{
"date": "2023-06-26",
"count": 1
},
{
"date": "2023-06-27",
"count": 1
},
{
"date": "2023-06-30",
"count": 1
},
{
"date": "2023-07-06",
"count": 1
},
{
"date": "2023-07-08",
"count": 1
},
{
"date": "2023-07-12",
"count": 1
},
{
"date": "2023-07-13",
"count": 1
},
{
"date": "2023-07-18",
"count": 1
},
{
"date": "2023-07-20",
"count": 1
},
{
"date": "2023-07-27",
"count": 1
},
{
"date": "2023-07-31",
"count": 1
},
{
"date": "2023-08-04",
"count": 1
},
{
"date": "2023-08-06",
"count": 1
},
{
"date": "2023-08-10",
"count": 1
},
{
"date": "2023-08-13",
"count": 1
},
{
"date": "2023-08-14",
"count": 1
},
{
"date": "2023-08-18",
"count": 1
},
{
"date": "2023-08-23",
"count": 2
},
{
"date": "2023-08-24",
"count": 1
},
{
"date": "2023-08-29",
"count": 1
},
{
"date": "2023-08-30",
"count": 1
},
{
"date": "2023-08-31",
"count": 1
},
{
"date": "2023-09-12",
"count": 2
},
{
"date": "2023-09-13",
"count": 1
},
{
"date": "2023-09-19",
"count": 2
},
{
"date": "2023-09-20",
"count": 1
},
{
"date": "2023-09-25",
"count": 1
},
{
"date": "2023-09-27",
"count": 1
},
{
"date": "2023-09-30",
"count": 1
},
{
"date": "2023-10-03",
"count": 1
},
{
"date": "2023-10-07",
"count": 1
},
{
"date": "2023-10-08",
"count": 1
},
{
"date": "2023-10-12",
"count": 1
},
{
"date": "2023-10-15",
"count": 1
},
{
"date": "2023-10-22",
"count": 1
},
{
"date": "2023-10-23",
"count": 3
},
{
"date": "2023-10-24",
"count": 5
},
{
"date": "2023-10-30",
"count": 1
},
{
"date": "2023-10-31",
"count": 1
},
{
"date": "2023-11-03",
"count": 1
},
{
"date": "2023-11-04",
"count": 1
},
{
"date": "2023-11-07",
"count": 1
},
{
"date": "2023-11-11",
"count": 1
},
{
"date": "2023-11-13",
"count": 1
},
{
"date": "2023-11-16",
"count": 1
},
{
"date": "2023-11-17",
"count": 1
},
{
"date": "2023-11-21",
"count": 1
},
{
"date": "2023-11-22",
"count": 1
},
{
"date": "2023-12-08",
"count": 2
},
{
"date": "2023-12-11",
"count": 1
},
{
"date": "2023-12-19",
"count": 2
},
{
"date": "2023-12-20",
"count": 1
},
{
"date": "2024-01-10",
"count": 1
},
{
"date": "2024-01-13",
"count": 1
},
{
"date": "2024-01-18",
"count": 1
},
{
"date": "2024-01-28",
"count": 1
},
{
"date": "2024-02-01",
"count": 2
},
{
"date": "2024-02-02",
"count": 2
},
{
"date": "2024-02-03",
"count": 1
},
{
"date": "2024-02-08",
"count": 1
},
{
"date": "2024-02-14",
"count": 2
},
{
"date": "2024-02-17",
"count": 1
},
{
"date": "2024-02-19",
"count": 2
},
{
"date": "2024-02-20",
"count": 1
},
{
"date": "2024-02-26",
"count": 1
},
{
"date": "2024-02-27",
"count": 1
},
{
"date": "2024-03-06",
"count": 1
},
{
"date": "2024-03-15",
"count": 1
},
{
"date": "2024-03-20",
"count": 2
},
{
"date": "2024-03-22",
"count": 1
},
{
"date": "2024-03-23",
"count": 1
},
{
"date": "2024-04-08",
"count": 1
},
{
"date": "2024-04-12",
"count": 2
},
{
"date": "2024-04-13",
"count": 1
},
{
"date": "2024-04-14",
"count": 2
},
{
"date": "2024-04-15",
"count": 2
},
{
"date": "2024-04-17",
"count": 2
},
{
"date": "2024-04-24",
"count": 1
},
{
"date": "2024-05-03",
"count": 1
},
{
"date": "2024-05-04",
"count": 1
},
{
"date": "2024-05-08",
"count": 2
},
{
"date": "2024-05-10",
"count": 1
},
{
"date": "2024-05-12",
"count": 1
},
{
"date": "2024-05-22",
"count": 1
},
{
"date": "2024-06-03",
"count": 2
},
{
"date": "2024-06-04",
"count": 1
},
{
"date": "2024-06-06",
"count": 1
},
{
"date": "2024-06-08",
"count": 1
},
{
"date": "2024-06-11",
"count": 1
},
{
"date": "2024-06-12",
"count": 1
},
{
"date": "2024-06-17",
"count": 1
},
{
"date": "2024-06-19",
"count": 1
},
{
"date": "2024-06-20",
"count": 2
},
{
"date": "2024-06-23",
"count": 2
},
{
"date": "2024-06-25",
"count": 1
},
{
"date": "2024-06-27",
"count": 1
},
{
"date": "2024-06-28",
"count": 1
},
{
"date": "2024-07-05",
"count": 1
},
{
"date": "2024-07-11",
"count": 1
},
{
"date": "2024-07-22",
"count": 1
},
{
"date": "2024-07-23",
"count": 1
},
{
"date": "2024-07-25",
"count": 1
},
{
"date": "2024-07-27",
"count": 1
},
{
"date": "2024-07-28",
"count": 1
},
{
"date": "2024-07-29",
"count": 1
},
{
"date": "2024-07-30",
"count": 2
},
{
"date": "2024-07-31",
"count": 1
},
{
"date": "2024-08-02",
"count": 1
},
{
"date": "2024-08-07",
"count": 1
},
{
"date": "2024-08-08",
"count": 1
},
{
"date": "2024-08-10",
"count": 1
},
{
"date": "2024-08-15",
"count": 1
},
{
"date": "2024-08-16",
"count": 1
},
{
"date": "2024-08-19",
"count": 1
},
{
"date": "2024-08-21",
"count": 1
},
{
"date": "2024-08-22",
"count": 2
},
{
"date": "2024-08-23",
"count": 1
},
{
"date": "2024-08-24",
"count": 1
},
{
"date": "2024-08-26",
"count": 1
},
{
"date": "2024-08-28",
"count": 1
},
{
"date": "2024-08-30",
"count": 1
},
{
"date": "2024-09-05",
"count": 2
},
{
"date": "2024-09-14",
"count": 1
},
{
"date": "2024-09-18",
"count": 1
},
{
"date": "2024-09-24",
"count": 2
},
{
"date": "2024-09-27",
"count": 1
},
{
"date": "2024-10-03",
"count": 1
},
{
"date": "2024-10-07",
"count": 1
},
{
"date": "2024-10-12",
"count": 1
},
{
"date": "2024-10-23",
"count": 4
},
{
"date": "2024-10-27",
"count": 1
},
{
"date": "2024-10-30",
"count": 1
},
{
"date": "2024-11-04",
"count": 1
},
{
"date": "2024-11-06",
"count": 1
},
{
"date": "2024-11-07",
"count": 1
},
{
"date": "2024-11-08",
"count": 1
},
{
"date": "2024-11-10",
"count": 1
},
{
"date": "2024-11-12",
"count": 1
},
{
"date": "2024-11-13",
"count": 3
},
{
"date": "2024-11-15",
"count": 1
},
{
"date": "2024-11-21",
"count": 2
},
{
"date": "2024-11-22",
"count": 2
},
{
"date": "2024-11-27",
"count": 1
},
{
"date": "2024-12-06",
"count": 1
},
{
"date": "2024-12-14",
"count": 1
},
{
"date": "2024-12-19",
"count": 1
},
{
"date": "2024-12-26",
"count": 1
},
{
"date": "2024-12-30",
"count": 1
},
{
"date": "2025-01-02",
"count": 1
},
{
"date": "2025-01-04",
"count": 1
},
{
"date": "2025-01-06",
"count": 2
},
{
"date": "2025-01-07",
"count": 1
},
{
"date": "2025-01-08",
"count": 1
},
{
"date": "2025-01-13",
"count": 2
},
{
"date": "2025-01-16",
"count": 1
},
{
"date": "2025-01-18",
"count": 1
},
{
"date": "2025-01-23",
"count": 2
},
{
"date": "2025-01-25",
"count": 2
},
{
"date": "2025-01-31",
"count": 1
},
{
"date": "2025-02-01",
"count": 1
},
{
"date": "2025-02-02",
"count": 1
},
{
"date": "2025-02-04",
"count": 1
},
{
"date": "2025-02-06",
"count": 1
},
{
"date": "2025-02-07",
"count": 1
},
{
"date": "2025-02-10",
"count": 1
},
{
"date": "2025-02-11",
"count": 1
},
{
"date": "2025-02-14",
"count": 1
},
{
"date": "2025-02-17",
"count": 1
},
{
"date": "2025-02-19",
"count": 1
},
{
"date": "2025-02-20",
"count": 2
},
{
"date": "2025-02-21",
"count": 1
},
{
"date": "2025-02-23",
"count": 1
},
{
"date": "2025-02-25",
"count": 3
},
{
"date": "2025-02-26",
"count": 2
},
{
"date": "2025-03-04",
"count": 1
},
{
"date": "2025-03-05",
"count": 1
},
{
"date": "2025-03-08",
"count": 1
},
{
"date": "2025-03-09",
"count": 1
},
{
"date": "2025-03-10",
"count": 2
},
{
"date": "2025-03-11",
"count": 1
},
{
"date": "2025-03-14",
"count": 1
},
{
"date": "2025-03-15",
"count": 1
},
{
"date": "2025-03-16",
"count": 1
},
{
"date": "2025-03-18",
"count": 1
},
{
"date": "2025-03-24",
"count": 1
},
{
"date": "2025-03-30",
"count": 1
},
{
"date": "2025-04-02",
"count": 1
},
{
"date": "2025-04-05",
"count": 1
},
{
"date": "2025-04-07",
"count": 1
},
{
"date": "2025-04-19",
"count": 1
},
{
"date": "2025-04-21",
"count": 1
},
{
"date": "2025-04-25",
"count": 1
},
{
"date": "2025-04-27",
"count": 1
},
{
"date": "2025-04-30",
"count": 1
},
{
"date": "2025-05-04",
"count": 1
},
{
"date": "2025-05-07",
"count": 1
},
{
"date": "2025-05-15",
"count": 1
},
{
"date": "2025-05-18",
"count": 2
},
{
"date": "2025-05-22",
"count": 1
},
{
"date": "2025-05-28",
"count": 2
},
{
"date": "2025-06-02",
"count": 1
},
{
"date": "2025-06-18",
"count": 1
},
{
"date": "2025-06-26",
"count": 1
},
{
"date": "2025-06-28",
"count": 2
},
{
"date": "2025-06-30",
"count": 1
},
{
"date": "2025-07-04",
"count": 1
},
{
"date": "2025-07-05",
"count": 1
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-07-11",
"count": 1
},
{
"date": "2025-07-14",
"count": 2
},
{
"date": "2025-07-21",
"count": 1
},
{
"date": "2025-07-23",
"count": 1
},
{
"date": "2025-07-28",
"count": 2
},
{
"date": "2025-08-05",
"count": 1
},
{
"date": "2025-08-10",
"count": 1
},
{
"date": "2025-08-12",
"count": 1
},
{
"date": "2025-08-13",
"count": 2
},
{
"date": "2025-08-18",
"count": 1
},
{
"date": "2025-08-19",
"count": 1
},
{
"date": "2025-08-20",
"count": 1
},
{
"date": "2025-08-21",
"count": 1
},
{
"date": "2025-09-01",
"count": 1
},
{
"date": "2025-09-03",
"count": 1
},
{
"date": "2025-09-04",
"count": 1
},
{
"date": "2025-09-05",
"count": 1
},
{
"date": "2025-09-06",
"count": 1
},
{
"date": "2025-09-14",
"count": 1
},
{
"date": "2025-09-15",
"count": 1
},
{
"date": "2025-09-16",
"count": 2
},
{
"date": "2025-09-20",
"count": 1
},
{
"date": "2025-09-22",
"count": 1
},
{
"date": "2025-09-23",
"count": 1
},
{
"date": "2025-09-29",
"count": 1
},
{
"date": "2025-10-20",
"count": 1
},
{
"date": "2025-10-21",
"count": 1
},
{
"date": "2025-10-27",
"count": 1
},
{
"date": "2025-11-05",
"count": 1
},
{
"date": "2025-11-11",
"count": 1
},
{
"date": "2025-11-12",
"count": 1
},
{
"date": "2025-11-18",
"count": 1
},
{
"date": "2025-11-26",
"count": 1
},
{
"date": "2025-11-27",
"count": 2
},
{
"date": "2025-12-02",
"count": 1
},
{
"date": "2025-12-11",
"count": 1
},
{
"date": "2025-12-12",
"count": 1
},
{
"date": "2025-12-16",
"count": 1
},
{
"date": "2025-12-24",
"count": 1
},
{
"date": "2025-12-29",
"count": 1
},
{
"date": "2026-01-03",
"count": 1
},
{
"date": "2026-01-12",
"count": 1
},
{
"date": "2026-01-13",
"count": 1
},
{
"date": "2026-01-26",
"count": 1
},
{
"date": "2026-01-29",
"count": 1
},
{
"date": "2026-01-30",
"count": 1
},
{
"date": "2026-02-01",
"count": 1
},
{
"date": "2026-02-02",
"count": 1
},
{
"date": "2026-02-06",
"count": 1
},
{
"date": "2026-02-08",
"count": 1
},
{
"date": "2026-02-20",
"count": 1
},
{
"date": "2026-02-22",
"count": 1
},
{
"date": "2026-02-25",
"count": 1
},
{
"date": "2026-02-26",
"count": 1
},
{
"date": "2026-02-27",
"count": 1
},
{
"date": "2026-03-03",
"count": 1
},
{
"date": "2026-03-07",
"count": 1
},
{
"date": "2026-03-11",
"count": 1
},
{
"date": "2026-03-12",
"count": 1
},
{
"date": "2026-03-13",
"count": 2
},
{
"date": "2026-03-14",
"count": 1
},
{
"date": "2026-03-15",
"count": 1
},
{
"date": "2026-03-16",
"count": 3
},
{
"date": "2026-03-18",
"count": 1
},
{
"date": "2026-03-19",
"count": 1
},
{
"date": "2026-04-01",
"count": 1
},
{
"date": "2026-04-04",
"count": 1
},
{
"date": "2026-04-07",
"count": 1
},
{
"date": "2026-04-08",
"count": 1
},
{
"date": "2026-04-10",
"count": 1
},
{
"date": "2026-04-23",
"count": 1
},
{
"date": "2026-04-24",
"count": 1
},
{
"date": "2026-04-27",
"count": 1
},
{
"date": "2026-04-28",
"count": 1
},
{
"date": "2026-04-29",
"count": 1
},
{
"date": "2026-05-07",
"count": 1
},
{
"date": "2026-05-12",
"count": 1
},
{
"date": "2026-05-16",
"count": 1
},
{
"date": "2026-05-17",
"count": 1
},
{
"date": "2026-05-20",
"count": 2
},
{
"date": "2026-05-26",
"count": 1
},
{
"date": "2026-05-27",
"count": 1
},
{
"date": "2026-05-30",
"count": 1
},
{
"date": "2026-06-04",
"count": 1
},
{
"date": "2026-06-10",
"count": 1
},
{
"date": "2026-06-11",
"count": 1
},
{
"date": "2026-06-14",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-06-23",
"count": 1
},
{
"date": "2026-06-26",
"count": 1
},
{
"date": "2026-06-27",
"count": 1
},
{
"date": "2026-07-04",
"count": 1
},
{
"date": "2026-07-06",
"count": 1
},
{
"date": "2026-07-07",
"count": 1
},
{
"date": "2026-07-21",
"count": 1
},
{
"date": "2026-07-23",
"count": 1
},
{
"date": "2026-07-25",
"count": 2
}
],
"complete": true,
"collected": 584,
"total_forks": 590
},
"star_history": null,
"open_issues_and_prs": 155
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"Justfile",
"vendor/github.com/Masterminds/semver/v3/Makefile",
"vendor/github.com/aws/smithy-go/Makefile",
"vendor/github.com/buger/jsonparser/Makefile",
"vendor/github.com/containers/ocicrypt/Makefile",
"vendor/github.com/denisbrodbeck/machineid/makefile",
"vendor/github.com/distribution/reference/Makefile",
"vendor/github.com/emicklei/go-restful/v3/Makefile",
"vendor/github.com/felixge/httpsnoop/Makefile",
"vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml",
"vendor/github.com/gogo/protobuf/gogoproto/Makefile",
"vendor/github.com/gogo/protobuf/proto/Makefile",
"vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile",
"vendor/github.com/gorilla/mux/Makefile",
"vendor/github.com/munnerz/goautoneg/Makefile",
"vendor/github.com/onsi/ginkgo/v2/Makefile",
"vendor/github.com/pkg/errors/Makefile",
"vendor/github.com/prometheus/procfs/Makefile",
"vendor/github.com/samber/lo/Makefile",
"vendor/github.com/smallstep/pkcs7/Makefile",
"vendor/github.com/spf13/cobra/Makefile",
"vendor/github.com/stefanberger/go-pkcs11uri/Makefile",
"vendor/github.com/wk8/go-ordered-map/v2/Makefile",
"vendor/go.etcd.io/bbolt/Makefile",
"vendor/go.etcd.io/raft/v3/Makefile",
"vendor/go.opentelemetry.io/otel/Makefile",
"vendor/go.uber.org/atomic/Makefile",
"vendor/go.uber.org/multierr/Makefile",
"vendor/go.uber.org/zap/Makefile",
"vendor/google.golang.org/grpc/Makefile",
"vendor/modernc.org/gc/v3/Makefile",
"vendor/modernc.org/libc/Makefile",
"vendor/modernc.org/mathutil/Makefile",
"vendor/modernc.org/memory/Makefile",
"vendor/modernc.org/sqlite/Makefile",
"vendor/modernc.org/strutil/Makefile",
"vendor/modernc.org/token/Makefile",
"vendor/oras.land/oras-go/v2/Makefile",
"vendor/sigs.k8s.io/controller-runtime/Makefile",
"vendor/sigs.k8s.io/json/Makefile",
"vendor/sigs.k8s.io/kustomize/kyaml/openapi/Makefile"
],
"api_schema_files": [
"pkg/plugin/v1/remote/plugin.proto",
"pkg/plugin/v2/pluginv2/pluginv2.proto",
"vendor/github.com/containers/ocicrypt/utils/keyprovider/keyprovider.proto",
"vendor/github.com/gogo/protobuf/gogoproto/gogo.proto",
"vendor/github.com/google/gnostic-models/extensions/extension.proto",
"vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.proto",
"vendor/github.com/google/gnostic-models/openapiv3/OpenAPIv3.proto",
"vendor/github.com/google/gnostic-models/openapiv3/annotations.proto",
"vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.proto",
"vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.proto",
"vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.proto",
"vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.proto",
"vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.proto",
"vendor/go.etcd.io/etcd/api/v3/authpb/auth.proto",
"vendor/go.etcd.io/etcd/api/v3/etcdserverpb/etcdserver.proto",
"vendor/go.etcd.io/etcd/api/v3/etcdserverpb/raft_internal.proto",
"vendor/go.etcd.io/etcd/api/v3/etcdserverpb/rpc.proto",
"vendor/go.etcd.io/etcd/api/v3/membershippb/membership.proto",
"vendor/go.etcd.io/etcd/api/v3/mvccpb/kv.proto",
"vendor/go.etcd.io/etcd/api/v3/versionpb/version.proto",
"vendor/go.etcd.io/etcd/server/v3/etcdserver/api/snap/snappb/snap.proto",
"vendor/go.etcd.io/etcd/server/v3/lease/leasepb/lease.proto",
"vendor/go.etcd.io/etcd/server/v3/storage/wal/walpb/record.proto",
"vendor/go.etcd.io/raft/v3/raftpb/raft.proto",
"vendor/k8s.io/api/admission/v1/generated.proto",
"vendor/k8s.io/api/admission/v1beta1/generated.proto",
"vendor/k8s.io/api/admissionregistration/v1/generated.proto",
"vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto",
"vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto",
"vendor/k8s.io/api/apidiscovery/v2/generated.proto",
"vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto",
"vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto",
"vendor/k8s.io/api/apps/v1/generated.proto",
"vendor/k8s.io/api/apps/v1beta1/generated.proto",
"vendor/k8s.io/api/apps/v1beta2/generated.proto",
"vendor/k8s.io/api/authentication/v1/generated.proto",
"vendor/k8s.io/api/authentication/v1alpha1/generated.proto",
"vendor/k8s.io/api/authentication/v1beta1/generated.proto",
"vendor/k8s.io/api/authorization/v1/generated.proto",
"vendor/k8s.io/api/authorization/v1beta1/generated.proto",
"vendor/k8s.io/api/autoscaling/v1/generated.proto",
"vendor/k8s.io/api/autoscaling/v2/generated.proto",
"vendor/k8s.io/api/batch/v1/generated.proto",
"vendor/k8s.io/api/batch/v1beta1/generated.proto",
"vendor/k8s.io/api/certificates/v1/generated.proto",
"vendor/k8s.io/api/certificates/v1alpha1/generated.proto",
"vendor/k8s.io/api/certificates/v1beta1/generated.proto",
"vendor/k8s.io/api/coordination/v1/generated.proto",
"vendor/k8s.io/api/coordination/v1alpha2/generated.proto",
"vendor/k8s.io/api/coordination/v1beta1/generated.proto",
"vendor/k8s.io/api/core/v1/generated.proto",
"vendor/k8s.io/api/discovery/v1/generated.proto",
"vendor/k8s.io/api/discovery/v1beta1/generated.proto",
"vendor/k8s.io/api/events/v1/generated.proto",
"vendor/k8s.io/api/events/v1beta1/generated.proto",
"vendor/k8s.io/api/extensions/v1beta1/generated.proto",
"vendor/k8s.io/api/flowcontrol/v1/generated.proto",
"vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto",
"vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto",
"vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto",
"vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto",
"vendor/k8s.io/api/networking/v1/generated.proto",
"vendor/k8s.io/api/networking/v1beta1/generated.proto",
"vendor/k8s.io/api/node/v1/generated.proto",
"vendor/k8s.io/api/node/v1alpha1/generated.proto",
"vendor/k8s.io/api/node/v1beta1/generated.proto",
"vendor/k8s.io/api/policy/v1/generated.proto",
"vendor/k8s.io/api/policy/v1beta1/generated.proto",
"vendor/k8s.io/api/rbac/v1/generated.proto",
"vendor/k8s.io/api/rbac/v1alpha1/generated.proto",
"vendor/k8s.io/api/rbac/v1beta1/generated.proto",
"vendor/k8s.io/api/resource/v1/generated.proto",
"vendor/k8s.io/api/resource/v1alpha3/generated.proto",
"vendor/k8s.io/api/resource/v1beta1/generated.proto",
"vendor/k8s.io/api/resource/v1beta2/generated.proto",
"vendor/k8s.io/api/scheduling/v1/generated.proto",
"vendor/k8s.io/api/scheduling/v1alpha2/generated.proto",
"vendor/k8s.io/api/scheduling/v1beta1/generated.proto",
"vendor/k8s.io/api/storage/v1/generated.proto",
"vendor/k8s.io/api/storage/v1alpha1/generated.proto",
"vendor/k8s.io/api/storage/v1beta1/generated.proto",
"vendor/k8s.io/api/storagemigration/v1beta1/generated.proto",
"vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto",
"vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto",
"vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto",
"vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto",
"vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto",
"vendor/k8s.io/apimachinery/pkg/runtime/generated.proto",
"vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.proto",
"vendor/k8s.io/apimachinery/pkg/util/intstr/generated.proto",
"vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto",
"vendor/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/kmsv2/v2/api.proto",
"vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto",
"vendor/k8s.io/kms/apis/v1beta1/api.proto",
"vendor/k8s.io/kms/apis/v2/api.proto",
"vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.proto",
"vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.proto",
"vendor/k8s.io/metrics/pkg/apis/metrics/v1alpha1/generated.proto",
"vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto",
"vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client/client.proto",
"vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.json"
],
"has_devcontainer": true,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod"
],
"largest_source_bytes": 155079,
"source_files_sampled": 743,
"oversized_source_files": 2,
"agent_instruction_files": [
"CLAUDE.md"
],
"agent_instruction_max_bytes": 580
},
"dependencies": {
"manifests": [
"go.mod"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "google.golang.org/grpc",
"direct": true,
"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": 6
},
{
"name": "github.com/docker/docker",
"direct": true,
"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": 122
},
{
"name": "github.com/go-jose/go-jose/v4",
"direct": false,
"version": "v4.1.3",
"severity": "high",
"ecosystem": "go",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-78h2-9frx-2jm8",
"GO-2026-4945"
],
"fixed_version": "4.1.4",
"advisory_count": 2,
"oldest_advisory_days": 116
},
{
"name": "oras.land/oras-go/v2",
"direct": false,
"version": "v2.6.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": 26
},
{
"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/ulikunitz/xz",
"direct": false,
"version": "v0.5.14",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-jc7w-c686-c4v9",
"GO-2025-3922"
],
"fixed_version": "0.5.15",
"advisory_count": 2,
"oldest_advisory_days": 333
},
{
"name": "go.mongodb.org/mongo-driver",
"direct": false,
"version": "v1.14.0",
"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": 167
},
{
"name": "go.etcd.io/etcd/server/v3",
"direct": true,
"version": "v3.6.8",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5736"
],
"fixed_version": "3.6.11",
"advisory_count": 1,
"oldest_advisory_days": 3
},
{
"name": "k8s.io/kubernetes",
"direct": true,
"version": "v1.36.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2025-3521",
"GO-2025-3547"
],
"fixed_version": null,
"advisory_count": 2,
"oldest_advisory_days": 489
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.5",
"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": "go.opentelemetry.io/otel",
"direct": false,
"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": 3
},
{
"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": 20
},
{
"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": 13
},
{
"name": "golang.org/x/text",
"direct": false,
"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": 13
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 3,
"unknown": 7,
"critical": 1,
"moderate": 3
},
"advisory_count": 37,
"affected_count": 14,
"assessed_count": 285,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 4
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/blang/semver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.5.1+incompatible"
},
{
"name": "github.com/blang/semver/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.0.0"
},
{
"name": "github.com/denisbrodbeck/machineid",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.1"
},
{
"name": "github.com/docker/cli",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v29.2.0+incompatible"
},
{
"name": "github.com/docker/docker",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v28.5.2+incompatible"
},
{
"name": "github.com/evanphx/json-patch/v5",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.9.11"
},
{
"name": "github.com/ghodss/yaml",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.0"
},
{
"name": "github.com/go-logr/logr",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.3"
},
{
"name": "github.com/go-openapi/loads",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.22.0"
},
{
"name": "github.com/google/go-containerregistry",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.20.7"
},
{
"name": "github.com/google/go-github/v53",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v53.2.1-0.20230815134205-bb00f570d301"
},
{
"name": "github.com/gorilla/websocket",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.4-0.20250319132907-e064f32e3674"
},
{
"name": "github.com/hashicorp/go-hclog",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.14.1"
},
{
"name": "github.com/hashicorp/go-plugin",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/hashicorp/golang-lru/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.0.7"
},
{
"name": "github.com/invopop/jsonschema",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.12.0"
},
{
"name": "github.com/loft-sh/admin-apis",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260707131545-11a67ade9341"
},
{
"name": "github.com/loft-sh/agentapi/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.11.0-rc.1"
},
{
"name": "github.com/loft-sh/analytics-client",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20240219162240-2f4c64b2494e"
},
{
"name": "github.com/loft-sh/api/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.11.0-rc.1"
},
{
"name": "github.com/loft-sh/e2e-framework",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260423133544-5291e728f979"
},
{
"name": "github.com/loft-sh/image",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20250625154753-87447a6ad364"
},
{
"name": "github.com/loft-sh/utils",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.29"
},
{
"name": "github.com/mgutz/ansi",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20200706080929-d51e80ef957d"
},
{
"name": "github.com/mitchellh/go-homedir",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.0"
},
{
"name": "github.com/moby/term",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.2"
},
{
"name": "github.com/olekukonko/tablewriter",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.5"
},
{
"name": "github.com/onsi/ginkgo/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.28.1"
},
{
"name": "github.com/onsi/gomega",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.39.1"
},
{
"name": "github.com/pkg/errors",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.9.1"
},
{
"name": "github.com/prometheus/client_model",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.2"
},
{
"name": "github.com/prometheus/common",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.67.5"
},
{
"name": "github.com/rhysd/go-github-selfupdate",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.2.3"
},
{
"name": "github.com/samber/lo",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.51.0"
},
{
"name": "github.com/sirupsen/logrus",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.9.3"
},
{
"name": "github.com/skratchdot/open-golang",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20200116055534-eef842397966"
},
{
"name": "github.com/spf13/cobra",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.2"
},
{
"name": "github.com/spf13/pflag",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.10"
},
{
"name": "go.etcd.io/etcd/etcdutl/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.6.8"
},
{
"name": "go.etcd.io/etcd/server/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.6.8"
},
{
"name": "go.uber.org/atomic",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.0"
},
{
"name": "golang.org/x/mod",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.0"
},
{
"name": "google.golang.org/grpc",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.80.0"
},
{
"name": "google.golang.org/protobuf",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.36.12-0.20260120151049-f2248ac996af"
},
{
"name": "gopkg.in/yaml.v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"name": "gotest.tools",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.2.0+incompatible"
},
{
"name": "gotest.tools/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.5.2"
},
{
"name": "k8s.io/api",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/apiextensions-apiserver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/apimachinery",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/apiserver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/cli-runtime",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/client-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/cluster-bootstrap",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/component-helpers",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/klog/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.140.0"
},
{
"name": "k8s.io/kube-aggregator",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/kubectl",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/kubelet",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/kubernetes",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.36.0"
},
{
"name": "k8s.io/metrics",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/pod-security-admission",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "k8s.io/utils",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260210185600-b8788abfbbc2"
},
{
"name": "modernc.org/sqlite",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.29.10"
},
{
"name": "sigs.k8s.io/controller-runtime",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.23.1-0.20260424122448-c8b4b9d61fbd"
},
{
"name": "sigs.k8s.io/e2e-framework",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.0"
},
{
"name": "sigs.k8s.io/gateway-api",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.1"
},
{
"name": "sigs.k8s.io/yaml",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/evanphx/json-patch",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.8.1+incompatible"
},
{
"name": "github.com/google/go-cmp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.7.0"
},
{
"name": "github.com/google/go-github/v30",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v30.1.0"
},
{
"name": "github.com/google/uuid",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/kballard/go-shellquote",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20180428030007-95032a82bc51"
},
{
"name": "github.com/loft-sh/log",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20240219160058-26d83ffb46ac"
},
{
"name": "github.com/peterbourgon/ff/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.4.0"
},
{
"name": "github.com/tcnksm/go-gitconfig",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.2"
},
{
"name": "go.etcd.io/etcd/api/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.6.8"
},
{
"name": "go.etcd.io/etcd/client/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.6.8"
},
{
"name": "go.uber.org/zap",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.27.1"
},
{
"name": "golang.org/x/exp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20251219203646-944ab1f22d93"
},
{
"name": "golang.org/x/oauth2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.36.0"
},
{
"name": "gopkg.in/yaml.v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.4.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "github.com/blang/semver",
"direct": true,
"version": "v3.5.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/blang/semver/v4",
"direct": true,
"version": "v4.0.0",
"ecosystem": "go"
},
{
"name": "github.com/denisbrodbeck/machineid",
"direct": true,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/docker/cli",
"direct": true,
"version": "v29.2.0+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/docker",
"direct": true,
"version": "v28.5.2+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/evanphx/json-patch",
"direct": true,
"version": "v5.8.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/evanphx/json-patch/v5",
"direct": true,
"version": "v5.9.11",
"ecosystem": "go"
},
{
"name": "github.com/ghodss/yaml",
"direct": true,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/logr",
"direct": true,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/loads",
"direct": true,
"version": "v0.22.0",
"ecosystem": "go"
},
{
"name": "github.com/google/go-cmp",
"direct": true,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/google/go-containerregistry",
"direct": true,
"version": "v0.20.7",
"ecosystem": "go"
},
{
"name": "github.com/google/go-github/v30",
"direct": true,
"version": "v30.1.0",
"ecosystem": "go"
},
{
"name": "github.com/google/go-github/v53",
"direct": true,
"version": "v53.2.1-0.20230815134205-bb00f570d301",
"ecosystem": "go"
},
{
"name": "github.com/google/uuid",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/websocket",
"direct": true,
"version": "v1.5.4-0.20250319132907-e064f32e3674",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/go-hclog",
"direct": true,
"version": "v0.14.1",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/go-plugin",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/golang-lru/v2",
"direct": true,
"version": "v2.0.7",
"ecosystem": "go"
},
{
"name": "github.com/invopop/jsonschema",
"direct": true,
"version": "v0.12.0",
"ecosystem": "go"
},
{
"name": "github.com/kballard/go-shellquote",
"direct": true,
"version": "v0.0.0-20180428030007-95032a82bc51",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/admin-apis",
"direct": true,
"version": "v0.0.0-20260707131545-11a67ade9341",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/agentapi/v4",
"direct": true,
"version": "v4.11.0-rc.1",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/analytics-client",
"direct": true,
"version": "v0.0.0-20240219162240-2f4c64b2494e",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/api/v4",
"direct": true,
"version": "v4.11.0-rc.1",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/e2e-framework",
"direct": true,
"version": "v0.0.0-20260423133544-5291e728f979",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/image",
"direct": true,
"version": "v0.0.0-20250625154753-87447a6ad364",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/log",
"direct": true,
"version": "v0.0.0-20240219160058-26d83ffb46ac",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/utils",
"direct": true,
"version": "v0.0.29",
"ecosystem": "go"
},
{
"name": "github.com/mgutz/ansi",
"direct": true,
"version": "v0.0.0-20200706080929-d51e80ef957d",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/go-homedir",
"direct": true,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/term",
"direct": true,
"version": "v0.5.2",
"ecosystem": "go"
},
{
"name": "github.com/olekukonko/tablewriter",
"direct": true,
"version": "v0.0.5",
"ecosystem": "go"
},
{
"name": "github.com/onsi/ginkgo/v2",
"direct": true,
"version": "v2.28.1",
"ecosystem": "go"
},
{
"name": "github.com/onsi/gomega",
"direct": true,
"version": "v1.39.1",
"ecosystem": "go"
},
{
"name": "github.com/peterbourgon/ff/v3",
"direct": true,
"version": "v3.4.0",
"ecosystem": "go"
},
{
"name": "github.com/pkg/errors",
"direct": true,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_model",
"direct": true,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/common",
"direct": true,
"version": "v0.67.5",
"ecosystem": "go"
},
{
"name": "github.com/rhysd/go-github-selfupdate",
"direct": true,
"version": "v1.2.3",
"ecosystem": "go"
},
{
"name": "github.com/samber/lo",
"direct": true,
"version": "v1.51.0",
"ecosystem": "go"
},
{
"name": "github.com/sirupsen/logrus",
"direct": true,
"version": "v1.9.3",
"ecosystem": "go"
},
{
"name": "github.com/skratchdot/open-golang",
"direct": true,
"version": "v0.0.0-20200116055534-eef842397966",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cobra",
"direct": true,
"version": "v1.10.2",
"ecosystem": "go"
},
{
"name": "github.com/spf13/pflag",
"direct": true,
"version": "v1.0.10",
"ecosystem": "go"
},
{
"name": "github.com/tcnksm/go-gitconfig",
"direct": true,
"version": "v0.1.2",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/api/v3",
"direct": true,
"version": "v3.6.8",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/client/v3",
"direct": true,
"version": "v3.6.8",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/etcdutl/v3",
"direct": true,
"version": "v3.6.8",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/server/v3",
"direct": true,
"version": "v3.6.8",
"ecosystem": "go"
},
{
"name": "go.uber.org/atomic",
"direct": true,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/zap",
"direct": true,
"version": "v1.27.1",
"ecosystem": "go"
},
{
"name": "golang.org/x/exp",
"direct": true,
"version": "v0.0.0-20251219203646-944ab1f22d93",
"ecosystem": "go"
},
{
"name": "golang.org/x/mod",
"direct": true,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/oauth2",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "google.golang.org/grpc",
"direct": true,
"version": "v1.80.0",
"ecosystem": "go"
},
{
"name": "google.golang.org/protobuf",
"direct": true,
"version": "v1.36.12-0.20260120151049-f2248ac996af",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v2",
"direct": true,
"version": "v2.4.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v3",
"direct": true,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "gotest.tools",
"direct": true,
"version": "v2.2.0+incompatible",
"ecosystem": "go"
},
{
"name": "gotest.tools/v3",
"direct": true,
"version": "v3.5.2",
"ecosystem": "go"
},
{
"name": "k8s.io/api",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/apiextensions-apiserver",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/apimachinery",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/apiserver",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/cli-runtime",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/client-go",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/cluster-bootstrap",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/component-helpers",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/klog/v2",
"direct": true,
"version": "v2.140.0",
"ecosystem": "go"
},
{
"name": "k8s.io/kube-aggregator",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/kubectl",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/kubelet",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/kubernetes",
"direct": true,
"version": "v1.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/metrics",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/pod-security-admission",
"direct": true,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/utils",
"direct": true,
"version": "v0.0.0-20260210185600-b8788abfbbc2",
"ecosystem": "go"
},
{
"name": "modernc.org/sqlite",
"direct": true,
"version": "v1.29.10",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/controller-runtime",
"direct": true,
"version": "v0.23.1-0.20260424122448-c8b4b9d61fbd",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/e2e-framework",
"direct": true,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/gateway-api",
"direct": true,
"version": "v1.5.1",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/yaml",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "cel.dev/expr",
"direct": false,
"version": "v0.25.1",
"ecosystem": "go"
},
{
"name": "github.com/acarl005/stripansi",
"direct": false,
"version": "v0.0.0-20180116102854-5a71ef0e047d",
"ecosystem": "go"
},
{
"name": "github.com/alecaivazis/survey/v2",
"direct": false,
"version": "v2.3.7",
"ecosystem": "go"
},
{
"name": "github.com/antlr4-go/antlr/v4",
"direct": false,
"version": "v4.13.1",
"ecosystem": "go"
},
{
"name": "github.com/asaskevich/govalidator",
"direct": false,
"version": "v0.0.0-20230301143203-a9d515a09cc2",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2",
"direct": false,
"version": "v1.41.5",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream",
"direct": false,
"version": "v1.7.8",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/config",
"direct": false,
"version": "v1.32.12",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/credentials",
"direct": false,
"version": "v1.19.12",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/feature/ec2/imds",
"direct": false,
"version": "v1.18.20",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/feature/s3/manager",
"direct": false,
"version": "v1.17.58",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/internal/configsources",
"direct": false,
"version": "v1.4.21",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2",
"direct": false,
"version": "v2.7.21",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/internal/ini",
"direct": false,
"version": "v1.8.6",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/internal/v4a",
"direct": false,
"version": "v1.4.22",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding",
"direct": false,
"version": "v1.13.7",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/internal/checksum",
"direct": false,
"version": "v1.9.13",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/internal/presigned-url",
"direct": false,
"version": "v1.13.21",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/internal/s3shared",
"direct": false,
"version": "v1.19.21",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/s3",
"direct": false,
"version": "v1.97.3",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/signin",
"direct": false,
"version": "v1.0.8",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/sso",
"direct": false,
"version": "v1.30.13",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/ssooidc",
"direct": false,
"version": "v1.35.17",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/sts",
"direct": false,
"version": "v1.41.9",
"ecosystem": "go"
},
{
"name": "github.com/aws/smithy-go",
"direct": false,
"version": "v1.24.2",
"ecosystem": "go"
},
{
"name": "github.com/azure/azure-sdk-for-go/sdk/azcore",
"direct": false,
"version": "v1.20.0",
"ecosystem": "go"
},
{
"name": "github.com/azure/azure-sdk-for-go/sdk/azidentity",
"direct": false,
"version": "v1.13.1",
"ecosystem": "go"
},
{
"name": "github.com/azure/azure-sdk-for-go/sdk/internal",
"direct": false,
"version": "v1.11.2",
"ecosystem": "go"
},
{
"name": "github.com/azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage",
"direct": false,
"version": "v1.8.1",
"ecosystem": "go"
},
{
"name": "github.com/azure/azure-sdk-for-go/sdk/storage/azblob",
"direct": false,
"version": "v1.6.4",
"ecosystem": "go"
},
{
"name": "github.com/azure/go-ansiterm",
"direct": false,
"version": "v0.0.0-20250102033503-faa5f7b0171c",
"ecosystem": "go"
},
{
"name": "github.com/azuread/microsoft-authentication-library-for-go",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/bahlo/generic-list-go",
"direct": false,
"version": "v0.2.0",
"ecosystem": "go"
},
{
"name": "github.com/beorn7/perks",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/buger/jsonparser",
"direct": false,
"version": "v1.1.2",
"ecosystem": "go"
},
{
"name": "github.com/burntsushi/toml",
"direct": false,
"version": "v1.5.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/chai2010/gettext-go",
"direct": false,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "github.com/cloudflare/circl",
"direct": false,
"version": "v1.6.3",
"ecosystem": "go"
},
{
"name": "github.com/containerd/stargz-snapshotter/estargz",
"direct": false,
"version": "v0.18.1",
"ecosystem": "go"
},
{
"name": "github.com/containers/libtrust",
"direct": false,
"version": "v0.0.0-20230121012942-c1716e8a8d01",
"ecosystem": "go"
},
{
"name": "github.com/containers/ocicrypt",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "github.com/containers/storage",
"direct": false,
"version": "v1.58.1-0.20250515004000-78f4258b2bd9",
"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.7.0",
"ecosystem": "go"
},
{
"name": "github.com/creack/pty",
"direct": false,
"version": "v1.1.21",
"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/distribution",
"direct": false,
"version": "v2.8.3+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/docker-credential-helpers",
"direct": false,
"version": "v0.9.3",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-connections",
"direct": false,
"version": "v0.5.0",
"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/emicklei/go-restful/v3",
"direct": false,
"version": "v3.13.0",
"ecosystem": "go"
},
{
"name": "github.com/exponent-io/jsonpath",
"direct": false,
"version": "v0.0.0-20210407135951-1de76d718b3f",
"ecosystem": "go"
},
{
"name": "github.com/fatih/camelcase",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/fatih/color",
"direct": false,
"version": "v1.15.0",
"ecosystem": "go"
},
{
"name": "github.com/felixge/httpsnoop",
"direct": false,
"version": "v1.0.4",
"ecosystem": "go"
},
{
"name": "github.com/frankban/quicktest",
"direct": false,
"version": "v1.14.5",
"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.9.0",
"ecosystem": "go"
},
{
"name": "github.com/go-errors/errors",
"direct": false,
"version": "v1.4.2",
"ecosystem": "go"
},
{
"name": "github.com/go-jose/go-jose/v4",
"direct": false,
"version": "v4.1.3",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/stdr",
"direct": false,
"version": "v1.2.2",
"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.2",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/jsonreference",
"direct": false,
"version": "v0.21.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-task/slim-sprig/v3",
"direct": false,
"version": "v3.0.0",
"ecosystem": "go"
},
{
"name": "github.com/gogo/protobuf",
"direct": false,
"version": "v1.3.2",
"ecosystem": "go"
},
{
"name": "github.com/golang-jwt/jwt/v5",
"direct": false,
"version": "v5.3.0",
"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.7.0",
"ecosystem": "go"
},
{
"name": "github.com/google/go-querystring",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/google/pprof",
"direct": false,
"version": "v0.0.0-20260115054156-294ebfa9ad83",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/mux",
"direct": false,
"version": "v1.8.1",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/go-grpc-middleware/v2",
"direct": false,
"version": "v2.3.3",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/grpc-gateway/v2",
"direct": false,
"version": "v2.28.0",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/yamux",
"direct": false,
"version": "v0.1.1",
"ecosystem": "go"
},
{
"name": "github.com/inconshreveable/go-update",
"direct": false,
"version": "v0.0.0-20160112193335-8152e7eb6ccf",
"ecosystem": "go"
},
{
"name": "github.com/inconshreveable/mousetrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/jonboulle/clockwork",
"direct": false,
"version": "v0.5.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/k0kubun/go-ansi",
"direct": false,
"version": "v0.0.0-20180517002512-3bf9e2903213",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.5",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/pgzip",
"direct": false,
"version": "v1.2.6",
"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/lithammer/dedent",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/apiserver",
"direct": false,
"version": "v0.0.0-20260707184419-aef558a5ae8d",
"ecosystem": "go"
},
{
"name": "github.com/loft-sh/external-types",
"direct": false,
"version": "v0.1.0-alpha.2.0.20260409132559-a38365a8cbf2",
"ecosystem": "go"
},
{
"name": "github.com/mailru/easyjson",
"direct": false,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "github.com/makenowjust/heredoc",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/semver/v3",
"direct": false,
"version": "v3.4.0",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-colorable",
"direct": false,
"version": "v0.1.13",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-isatty",
"direct": false,
"version": "v0.0.20",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-runewidth",
"direct": false,
"version": "v0.0.16",
"ecosystem": "go"
},
{
"name": "github.com/microsoft/go-winio",
"direct": false,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/miekg/pkcs11",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/go-testing-interface",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/go-wordwrap",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/mapstructure",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/spdystream",
"direct": false,
"version": "v0.5.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/capability",
"direct": false,
"version": "v0.4.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/mountinfo",
"direct": false,
"version": "v0.7.2",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/user",
"direct": false,
"version": "v0.4.0",
"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.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/mxk/go-flowrate",
"direct": false,
"version": "v0.0.0-20140419014527-cca7078d478f",
"ecosystem": "go"
},
{
"name": "github.com/ncruces/go-strftime",
"direct": false,
"version": "v0.1.9",
"ecosystem": "go"
},
{
"name": "github.com/nytimes/gziphandler",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/oklog/run",
"direct": false,
"version": "v1.0.0",
"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.3.0",
"ecosystem": "go"
},
{
"name": "github.com/otiai10/copy",
"direct": false,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "github.com/peterbourgon/diskv",
"direct": false,
"version": "v2.0.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/pkg/browser",
"direct": false,
"version": "v0.0.0-20240102092130-5ac0b6a4141c",
"ecosystem": "go"
},
{
"name": "github.com/pmezard/go-difflib",
"direct": false,
"version": "v1.0.1-0.20181226105442-5d4384ee4fb2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_golang",
"direct": false,
"version": "v1.23.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/procfs",
"direct": false,
"version": "v0.19.2",
"ecosystem": "go"
},
{
"name": "github.com/protonmail/go-crypto",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/remyoudompheng/bigfft",
"direct": false,
"version": "v0.0.0-20230129092748-24d4a6f8daec",
"ecosystem": "go"
},
{
"name": "github.com/rivo/uniseg",
"direct": false,
"version": "v0.4.7",
"ecosystem": "go"
},
{
"name": "github.com/robfig/cron/v3",
"direct": false,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "github.com/russross/blackfriday/v2",
"direct": false,
"version": "v2.1.0",
"ecosystem": "go"
},
{
"name": "github.com/smallstep/pkcs7",
"direct": false,
"version": "v0.1.1",
"ecosystem": "go"
},
{
"name": "github.com/stefanberger/go-pkcs11uri",
"direct": false,
"version": "v0.0.0-20230803200340-78284954bff6",
"ecosystem": "go"
},
{
"name": "github.com/stoewer/go-strcase",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/sytten/logrus-zap-hook",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/ulikunitz/xz",
"direct": false,
"version": "v0.5.14",
"ecosystem": "go"
},
{
"name": "github.com/vbatts/tar-split",
"direct": false,
"version": "v0.12.2",
"ecosystem": "go"
},
{
"name": "github.com/vbauerster/mpb/v8",
"direct": false,
"version": "v8.10.2",
"ecosystem": "go"
},
{
"name": "github.com/vividcortex/ewma",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/vladimirvivien/gexe",
"direct": false,
"version": "v0.4.1",
"ecosystem": "go"
},
{
"name": "github.com/wk8/go-ordered-map/v2",
"direct": false,
"version": "v2.1.8",
"ecosystem": "go"
},
{
"name": "github.com/x448/float16",
"direct": false,
"version": "v0.8.4",
"ecosystem": "go"
},
{
"name": "github.com/xiang90/probing",
"direct": false,
"version": "v0.0.0-20221125231312-a49e3df8f510",
"ecosystem": "go"
},
{
"name": "github.com/xlab/treeprint",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "go.etcd.io/bbolt",
"direct": false,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/client/pkg/v3",
"direct": false,
"version": "v3.6.8",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/pkg/v3",
"direct": false,
"version": "v3.6.8",
"ecosystem": "go"
},
{
"name": "go.etcd.io/raft/v3",
"direct": false,
"version": "v3.6.0",
"ecosystem": "go"
},
{
"name": "go.mongodb.org/mongo-driver",
"direct": false,
"version": "v1.14.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/auto/sdk",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
"direct": false,
"version": "v0.68.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
"direct": false,
"version": "v0.65.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel",
"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/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/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.uber.org/multierr",
"direct": false,
"version": "v1.11.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/net",
"direct": false,
"version": "v0.55.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": false,
"version": "v0.20.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.43.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": false,
"version": "v0.37.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": "gomodules.xyz/jsonpatch/v2",
"direct": false,
"version": "v2.4.0",
"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/rpc",
"direct": false,
"version": "v0.0.0-20260406210006-6f92a3bedf2d",
"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": "k8s.io/component-base",
"direct": false,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/cri-api",
"direct": false,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/cri-client",
"direct": false,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/kms",
"direct": false,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "k8s.io/kube-openapi",
"direct": false,
"version": "v0.0.0-20260330154417-16be699c7b31",
"ecosystem": "go"
},
{
"name": "k8s.io/kube-proxy",
"direct": false,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "k8s.io/streaming",
"direct": false,
"version": "v0.36.0",
"ecosystem": "go"
},
{
"name": "modernc.org/gc/v3",
"direct": false,
"version": "v3.0.0-20240107210532-573471604cb6",
"ecosystem": "go"
},
{
"name": "modernc.org/libc",
"direct": false,
"version": "v1.49.3",
"ecosystem": "go"
},
{
"name": "modernc.org/mathutil",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "modernc.org/memory",
"direct": false,
"version": "v1.8.0",
"ecosystem": "go"
},
{
"name": "modernc.org/strutil",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "modernc.org/token",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "mvdan.cc/sh/v3",
"direct": false,
"version": "v3.6.0",
"ecosystem": "go"
},
{
"name": "oras.land/oras-go/v2",
"direct": false,
"version": "v2.6.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/apiserver-network-proxy/konnectivity-client",
"direct": false,
"version": "v0.34.0",
"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.21.1",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/kustomize/kyaml",
"direct": false,
"version": "v0.21.1",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/randfill",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/structured-merge-diff/v6",
"direct": false,
"version": "v6.3.2",
"ecosystem": "go"
}
],
"collected": true,
"truncated": false,
"total_count": 285,
"direct_count": 82,
"indirect_count": 203
}
},
"maintainership": {
"issues": {
"open_prs": 45,
"merged_prs": 2891,
"open_issues": 110,
"closed_ratio": 0.854,
"closed_issues": 644,
"closed_unmerged_prs": 422
},
"bus_factor": 2,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "FabianKramm",
"commits": 1881,
"avatar_url": "https://avatars.githubusercontent.com/u/10119814?v=4"
},
{
"type": "User",
"login": "matskiv",
"commits": 227,
"avatar_url": "https://avatars.githubusercontent.com/u/1605799?v=4"
},
{
"type": "User",
"login": "ishankhare07",
"commits": 174,
"avatar_url": "https://avatars.githubusercontent.com/u/7482025?v=4"
},
{
"type": "User",
"login": "facchettos",
"commits": 150,
"avatar_url": "https://avatars.githubusercontent.com/u/22717502?v=4"
},
{
"type": "User",
"login": "johannesfrey",
"commits": 132,
"avatar_url": "https://avatars.githubusercontent.com/u/3787730?v=4"
},
{
"type": "User",
"login": "neogopher",
"commits": 116,
"avatar_url": "https://avatars.githubusercontent.com/u/87601990?v=4"
},
{
"type": "User",
"login": "rohantmp",
"commits": 81,
"avatar_url": "https://avatars.githubusercontent.com/u/8311215?v=4"
},
{
"type": "User",
"login": "nprokopic",
"commits": 75,
"avatar_url": "https://avatars.githubusercontent.com/u/5638639?v=4"
},
{
"type": "User",
"login": "Piotr1215",
"commits": 74,
"avatar_url": "https://avatars.githubusercontent.com/u/8086638?v=4"
},
{
"type": "User",
"login": "zerbitx",
"commits": 51,
"avatar_url": "https://avatars.githubusercontent.com/u/100507?v=4"
}
],
"contributors_sampled": 99,
"top_contributor_share": 0.494
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"actionlint.yml",
"auto-approve-bot-prs.yaml",
"backport.yaml",
"clean-github-cache.yaml",
"cleanup-backport-branches.yaml",
"conflict-check.yaml",
"e2e-ginkgo-nightly.yaml",
"e2e-ginkgo.yaml",
"e2e.yaml",
"go-licenses-check.yaml",
"lint.yaml",
"unit-tests.yaml"
],
"has_docs_dir": true,
"linter_configs": [
".golangci.yaml",
".golangci.yml"
],
"has_editorconfig": true,
"has_linter_config": true,
"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": 2,
"reason": "branch protection is not maximal on development and all release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "29 out of 29 merged PRs checked by a CI test -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 9,
"reason": "Found 28/30 approved changesets -- score normalized to 9",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 16 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": 10,
"reason": "packaging workflow 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": 7,
"reason": "SAST tool is not run on all commits -- score normalized to 7",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 8,
"reason": "4 out of the last 4 releases have a total of 4 signed artifacts.",
"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": "23 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "00fce0122f87db0743d17683aa68aebe096c58ab",
"ran_at": "2026-07-28T16:58:07Z",
"aggregate_score": 6.5,
"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-28T16:45:47Z",
"oldest_open_prs": [
{
"number": 1558,
"created_at": "2024-02-26T10:29:34Z",
"last_comment_at": "2024-07-01T07:54:30Z",
"last_comment_author": "mavogel"
},
{
"number": 1611,
"created_at": "2024-03-19T08:51:11Z",
"last_comment_at": "2024-03-19T08:51:29Z",
"last_comment_author": "netlify"
},
{
"number": 1785,
"created_at": "2024-05-22T02:20:18Z",
"last_comment_at": "2024-07-09T01:15:52Z",
"last_comment_author": "imkira"
},
{
"number": 2074,
"created_at": "2024-08-16T00:55:33Z",
"last_comment_at": "2024-08-16T07:45:34Z",
"last_comment_author": "JuniorJPDJ"
},
{
"number": 2331,
"created_at": "2024-12-13T12:31:54Z",
"last_comment_at": "2025-01-14T08:57:48Z",
"last_comment_author": "maheshbaliga"
},
{
"number": 2629,
"created_at": "2025-03-29T18:27:00Z",
"last_comment_at": "2025-03-29T18:27:19Z",
"last_comment_author": "netlify"
},
{
"number": 2652,
"created_at": "2025-04-07T14:55:08Z",
"last_comment_at": "2025-08-14T22:10:01Z",
"last_comment_author": "cbron"
},
{
"number": 2717,
"created_at": "2025-04-25T12:54:10Z",
"last_comment_at": "2025-04-27T06:04:53Z",
"last_comment_author": "mayooot"
},
{
"number": 2996,
"created_at": "2025-07-16T14:23:09Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3096,
"created_at": "2025-08-14T15:44:35Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3165,
"created_at": "2025-09-03T08:38:17Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3340,
"created_at": "2025-11-04T11:28:27Z",
"last_comment_at": "2025-11-10T06:50:45Z",
"last_comment_author": "pascalbreuninger"
},
{
"number": 3378,
"created_at": "2025-11-28T13:34:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3607,
"created_at": "2026-02-26T13:27:33Z",
"last_comment_at": "2026-02-26T16:38:05Z",
"last_comment_author": "FabianKramm"
},
{
"number": 3655,
"created_at": "2026-03-09T14:35:16Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3720,
"created_at": "2026-03-19T15:58:27Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3729,
"created_at": "2026-03-24T14:41:43Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3770,
"created_at": "2026-04-01T18:18:49Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3807,
"created_at": "2026-04-08T09:22:55Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3827,
"created_at": "2026-04-10T08:59:41Z",
"last_comment_at": "2026-07-21T21:02:04Z",
"last_comment_author": "gyuhan87"
}
],
"last_merged_pr_at": "2026-07-28T13:13:46Z",
"ci_last_conclusion": "FAILURE",
"oldest_open_issues": [
{
"number": 14,
"created_at": "2021-05-15T13:51:30Z",
"last_comment_at": "2024-03-26T06:00:38Z",
"last_comment_author": "joaocc"
},
{
"number": 42,
"created_at": "2021-06-08T07:28:28Z",
"last_comment_at": "2023-12-15T19:41:11Z",
"last_comment_author": "jiridanek"
},
{
"number": 52,
"created_at": "2021-06-18T09:50:07Z",
"last_comment_at": "2022-11-02T18:56:34Z",
"last_comment_author": "matskiv"
},
{
"number": 60,
"created_at": "2021-06-23T11:06:54Z",
"last_comment_at": "2024-05-01T11:26:23Z",
"last_comment_author": "everflux"
},
{
"number": 138,
"created_at": "2021-09-27T10:42:57Z",
"last_comment_at": "2021-09-27T22:32:08Z",
"last_comment_author": "dirien"
},
{
"number": 145,
"created_at": "2021-10-10T19:05:29Z",
"last_comment_at": "2023-01-10T10:14:26Z",
"last_comment_author": "matskiv"
},
{
"number": 146,
"created_at": "2021-10-12T15:27:46Z",
"last_comment_at": "2021-10-13T07:48:16Z",
"last_comment_author": "sam-sre"
},
{
"number": 153,
"created_at": "2021-10-18T19:30:19Z",
"last_comment_at": "2023-10-06T17:25:04Z",
"last_comment_author": "itsaviral2609"
},
{
"number": 180,
"created_at": "2021-11-08T22:25:29Z",
"last_comment_at": "2022-10-14T14:18:07Z",
"last_comment_author": "matskiv"
},
{
"number": 190,
"created_at": "2021-11-17T03:01:02Z",
"last_comment_at": "2022-01-10T16:00:34Z",
"last_comment_author": "matskiv"
},
{
"number": 193,
"created_at": "2021-11-23T10:49:00Z",
"last_comment_at": "2021-11-25T11:07:55Z",
"last_comment_author": "olljanat"
},
{
"number": 250,
"created_at": "2021-12-13T22:09:17Z",
"last_comment_at": "2022-08-11T17:55:14Z",
"last_comment_author": "sgreene570"
},
{
"number": 283,
"created_at": "2022-01-10T14:13:51Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 363,
"created_at": "2022-02-07T19:56:56Z",
"last_comment_at": "2026-01-14T13:10:50Z",
"last_comment_author": "usersina"
},
{
"number": 438,
"created_at": "2022-04-15T18:53:07Z",
"last_comment_at": "2022-10-13T10:42:29Z",
"last_comment_author": "sandeep540"
},
{
"number": 441,
"created_at": "2022-04-19T12:45:36Z",
"last_comment_at": "2022-05-30T08:58:30Z",
"last_comment_author": "giorio94"
},
{
"number": 503,
"created_at": "2022-05-31T10:37:48Z",
"last_comment_at": "2022-10-31T21:48:33Z",
"last_comment_author": "pratikjagrut"
},
{
"number": 504,
"created_at": "2022-05-31T14:22:18Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 508,
"created_at": "2022-06-01T08:53:10Z",
"last_comment_at": "2025-04-06T14:50:07Z",
"last_comment_author": "lucasfcnunes"
},
{
"number": 509,
"created_at": "2022-06-01T08:56:43Z",
"last_comment_at": "2026-07-23T16:12:30Z",
"last_comment_author": "antoinetran"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/loft-sh/vcluster",
"host": "github.com",
"name": "vcluster",
"owner": "loft-sh"
},
"metrics": {
"overall": {
"key": "overall",
"band": "excellent",
"name": "Overall health",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"security": 62,
"vitality": 99,
"community": 85,
"governance": 79,
"engineering": 94
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 99,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 99,
"inputs": {
"commits_last_year": 538,
"human_commit_share": 0.98,
"days_since_last_push": 0,
"active_weeks_last_year": 50
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "50/52 weeks with commits",
"points": 34.6,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 50
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "538 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 538
}
}
],
"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": null,
"notes": [],
"value": 98,
"inputs": {
"releases_count": 100,
"latest_release_tag": "v0.36.1-rc.0",
"releases_from_tags": false,
"days_since_latest_release": 1,
"mean_days_between_releases": 2.2
},
"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 1 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 1
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~2.2 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 2.2
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "4 out of the last 4 releases have a total of 4 signed artifacts.",
"points": 8,
"status": "partial",
"details": [],
"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": 5,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 5 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 5
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "excellent",
"name": "Community & Adoption",
"value": 85,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"forks": 590,
"stars": 11243,
"watchers": 51,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "11,243 stars",
"points": 60,
"status": "met",
"details": [
{
"code": "stars",
"params": {
"count": 11243
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "590 forks",
"points": 23.1,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 590
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "51 watchers",
"points": 9.4,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 51
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"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": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "good",
"name": "Sustainability & Governance",
"value": 79,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 99,
"top_contributor_share": 0.494
},
"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 49% of commits",
"points": 11.4,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 49
}
}
],
"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 16 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "excellent",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 87,
"inputs": {
"merged_prs": 2891,
"open_issues": 110,
"closed_issues": 644,
"issue_closed_ratio": 0.854,
"closed_unmerged_prs": 422
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "85% of issues closed",
"points": 39.9,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 85
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "2891/3313 decided PRs merged",
"points": 33.4,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 2891,
"decided": 3313
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 28/30 approved changesets -- score normalized to 9",
"points": 13.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 76,
"inputs": {
"followers": 740,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "loft-sh",
"public_repos": 165,
"account_age_days": 2263
},
"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": "740 followers of loft-sh",
"points": 20.6,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 740,
"login": "loft-sh"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "165 public repos, account ~6 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 165
}
},
{
"code": "account_age_years",
"params": {
"years": 6
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/loft-sh/vcluster"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 10
},
"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 10 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 10
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "677 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 677
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "excellent",
"name": "Engineering Quality",
"value": 94,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "excellent",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "12 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 12
}
}
],
"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": ".golangci.yaml, .golangci.yml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yaml, .golangci.yml"
}
}
],
"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": 6.4,
"status": "met",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "29 out of 29 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"topics": [
"kubernetes",
"vcluster",
"virtual-clusters",
"multi-tenancy",
"cloud-native",
"platform-engineering",
"helm",
"kubectl",
"k8s",
"k3s"
],
"has_wiki": true,
"homepage": "https://www.vcluster.com",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://www.vcluster.com",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "10 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 10
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 62,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 18,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 0,
"scorecard_aggregate": 6.5
},
"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": 1.5,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "29 out of 29 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 28/30 approved changesets -- score normalized to 9",
"points": 6.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 16 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 detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 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 7",
"points": 3.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "4 out of the last 4 releases have a total of 4 signed artifacts.",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "23 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 285 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": 285
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 50,
"inputs": {
"source": "osv",
"advisories": 37,
"affected_packages": 14,
"assessed_packages": 285,
"unassessed_packages": 0,
"affected_by_severity": "critical 1, high 3, moderate 3, unknown 7",
"direct_affected_packages": 4
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "4 affected: google.golang.org/grpc v1.80.0 (critical 9.1), github.com/docker/docker v28.5.2+incompatible (high 8.8), go.etcd.io/etcd/server/v3 v3.6.8 (unknown), +1 more",
"points": 6.9,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 4,
"packages": "google.golang.org/grpc v1.80.0 (critical 9.1), github.com/docker/docker v28.5.2+incompatible (high 8.8), go.etcd.io/etcd/server/v3 v3.6.8 (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": "2 advisory-carrying package(s) unaddressed past 90 days; oldest published 489 days ago",
"points": 30.9,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 2,
"oldest": 489
}
}
],
"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": 285,
"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": 11
},
"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": 83,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.969,
"agent_instruction_files": [
"CLAUDE.md"
],
"agent_instruction_max_bytes": 580
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "CLAUDE.md"
}
}
],
"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": "95 of 98 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 95,
"sampled": 98
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "excellent",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 91,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"Justfile",
"vendor/github.com/Masterminds/semver/v3/Makefile",
"vendor/github.com/aws/smithy-go/Makefile",
"vendor/github.com/buger/jsonparser/Makefile",
"vendor/github.com/containers/ocicrypt/Makefile",
"vendor/github.com/denisbrodbeck/machineid/makefile",
"vendor/github.com/distribution/reference/Makefile",
"vendor/github.com/emicklei/go-restful/v3/Makefile",
"vendor/github.com/felixge/httpsnoop/Makefile",
"vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml",
"vendor/github.com/gogo/protobuf/gogoproto/Makefile",
"vendor/github.com/gogo/protobuf/proto/Makefile",
"vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile",
"vendor/github.com/gorilla/mux/Makefile",
"vendor/github.com/munnerz/goautoneg/Makefile",
"vendor/github.com/onsi/ginkgo/v2/Makefile",
"vendor/github.com/pkg/errors/Makefile",
"vendor/github.com/prometheus/procfs/Makefile",
"vendor/github.com/samber/lo/Makefile",
"vendor/github.com/smallstep/pkcs7/Makefile",
"vendor/github.com/spf13/cobra/Makefile",
"vendor/github.com/stefanberger/go-pkcs11uri/Makefile",
"vendor/github.com/wk8/go-ordered-map/v2/Makefile",
"vendor/go.etcd.io/bbolt/Makefile",
"vendor/go.etcd.io/raft/v3/Makefile",
"vendor/go.opentelemetry.io/otel/Makefile",
"vendor/go.uber.org/atomic/Makefile",
"vendor/go.uber.org/multierr/Makefile",
"vendor/go.uber.org/zap/Makefile",
"vendor/google.golang.org/grpc/Makefile",
"vendor/modernc.org/gc/v3/Makefile",
"vendor/modernc.org/libc/Makefile",
"vendor/modernc.org/mathutil/Makefile",
"vendor/modernc.org/memory/Makefile",
"vendor/modernc.org/sqlite/Makefile",
"vendor/modernc.org/strutil/Makefile",
"vendor/modernc.org/token/Makefile",
"vendor/oras.land/oras-go/v2/Makefile",
"vendor/sigs.k8s.io/controller-runtime/Makefile",
"vendor/sigs.k8s.io/json/Makefile",
"vendor/sigs.k8s.io/kustomize/kyaml/openapi/Makefile"
],
"has_devcontainer": true,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0.09,
"toolchain_manifests": [
"go.mod"
],
"dependency_bot_commit_share": 0.01
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Justfile, vendor/github.com/Masterminds/semver/v3/Makefile, vendor/github.com/aws/smithy-go/Makefile, vendor/github.com/buger/jsonparser/Makefile, vendor/github.com/containers/ocicrypt/Makefile, vendor/github.com/denisbrodbeck/machineid/makefile, vendor/github.com/distribution/reference/Makefile, vendor/github.com/emicklei/go-restful/v3/Makefile, vendor/github.com/felixge/httpsnoop/Makefile, vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml, vendor/github.com/gogo/protobuf/gogoproto/Makefile, vendor/github.com/gogo/protobuf/proto/Makefile, vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile, vendor/github.com/gorilla/mux/Makefile, vendor/github.com/munnerz/goautoneg/Makefile, vendor/github.com/onsi/ginkgo/v2/Makefile, vendor/github.com/pkg/errors/Makefile, vendor/github.com/prometheus/procfs/Makefile, vendor/github.com/samber/lo/Makefile, vendor/github.com/smallstep/pkcs7/Makefile, vendor/github.com/spf13/cobra/Makefile, vendor/github.com/stefanberger/go-pkcs11uri/Makefile, vendor/github.com/wk8/go-ordered-map/v2/Makefile, vendor/go.etcd.io/bbolt/Makefile, vendor/go.etcd.io/raft/v3/Makefile, vendor/go.opentelemetry.io/otel/Makefile, vendor/go.uber.org/atomic/Makefile, vendor/go.uber.org/multierr/Makefile, vendor/go.uber.org/zap/Makefile, vendor/google.golang.org/grpc/Makefile, vendor/modernc.org/gc/v3/Makefile, vendor/modernc.org/libc/Makefile, vendor/modernc.org/mathutil/Makefile, vendor/modernc.org/memory/Makefile, vendor/modernc.org/sqlite/Makefile, vendor/modernc.org/strutil/Makefile, vendor/modernc.org/token/Makefile, vendor/oras.land/oras-go/v2/Makefile, vendor/sigs.k8s.io/controller-runtime/Makefile, vendor/sigs.k8s.io/json/Makefile, vendor/sigs.k8s.io/kustomize/kyaml/openapi/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Justfile, vendor/github.com/Masterminds/semver/v3/Makefile, vendor/github.com/aws/smithy-go/Makefile, vendor/github.com/buger/jsonparser/Makefile, vendor/github.com/containers/ocicrypt/Makefile, vendor/github.com/denisbrodbeck/machineid/makefile, vendor/github.com/distribution/reference/Makefile, vendor/github.com/emicklei/go-restful/v3/Makefile, vendor/github.com/felixge/httpsnoop/Makefile, vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml, vendor/github.com/gogo/protobuf/gogoproto/Makefile, vendor/github.com/gogo/protobuf/proto/Makefile, vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile, vendor/github.com/gorilla/mux/Makefile, vendor/github.com/munnerz/goautoneg/Makefile, vendor/github.com/onsi/ginkgo/v2/Makefile, vendor/github.com/pkg/errors/Makefile, vendor/github.com/prometheus/procfs/Makefile, vendor/github.com/samber/lo/Makefile, vendor/github.com/smallstep/pkcs7/Makefile, vendor/github.com/spf13/cobra/Makefile, vendor/github.com/stefanberger/go-pkcs11uri/Makefile, vendor/github.com/wk8/go-ordered-map/v2/Makefile, vendor/go.etcd.io/bbolt/Makefile, vendor/go.etcd.io/raft/v3/Makefile, vendor/go.opentelemetry.io/otel/Makefile, vendor/go.uber.org/atomic/Makefile, vendor/go.uber.org/multierr/Makefile, vendor/go.uber.org/zap/Makefile, vendor/google.golang.org/grpc/Makefile, vendor/modernc.org/gc/v3/Makefile, vendor/modernc.org/libc/Makefile, vendor/modernc.org/mathutil/Makefile, vendor/modernc.org/memory/Makefile, vendor/modernc.org/sqlite/Makefile, vendor/modernc.org/strutil/Makefile, vendor/modernc.org/token/Makefile, vendor/oras.land/oras-go/v2/Makefile, vendor/sigs.k8s.io/controller-runtime/Makefile, vendor/sigs.k8s.io/json/Makefile, vendor/sigs.k8s.io/kustomize/kyaml/openapi/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": ".golangci.yaml, .golangci.yml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yaml, .golangci.yml"
}
}
],
"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": "devcontainer, Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "devcontainer, Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "9 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 9,
"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": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 155079,
"source_files_sampled": 743,
"oversized_source_files": 2
},
"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": "2/743 source files over 60KB",
"points": 54.9,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 743,
"oversized": 2
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [],
"has_mcp_signal": false,
"api_schema_files": [
"pkg/plugin/v1/remote/plugin.proto",
"pkg/plugin/v2/pluginv2/pluginv2.proto",
"vendor/github.com/containers/ocicrypt/utils/keyprovider/keyprovider.proto",
"vendor/github.com/gogo/protobuf/gogoproto/gogo.proto",
"vendor/github.com/google/gnostic-models/extensions/extension.proto",
"vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.proto",
"vendor/github.com/google/gnostic-models/openapiv3/OpenAPIv3.proto",
"vendor/github.com/google/gnostic-models/openapiv3/annotations.proto",
"vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.proto",
"vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.proto",
"vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.proto",
"vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.proto",
"vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.proto",
"vendor/go.etcd.io/etcd/api/v3/authpb/auth.proto",
"vendor/go.etcd.io/etcd/api/v3/etcdserverpb/etcdserver.proto",
"vendor/go.etcd.io/etcd/api/v3/etcdserverpb/raft_internal.proto",
"vendor/go.etcd.io/etcd/api/v3/etcdserverpb/rpc.proto",
"vendor/go.etcd.io/etcd/api/v3/membershippb/membership.proto",
"vendor/go.etcd.io/etcd/api/v3/mvccpb/kv.proto",
"vendor/go.etcd.io/etcd/api/v3/versionpb/version.proto",
"vendor/go.etcd.io/etcd/server/v3/etcdserver/api/snap/snappb/snap.proto",
"vendor/go.etcd.io/etcd/server/v3/lease/leasepb/lease.proto",
"vendor/go.etcd.io/etcd/server/v3/storage/wal/walpb/record.proto",
"vendor/go.etcd.io/raft/v3/raftpb/raft.proto",
"vendor/k8s.io/api/admission/v1/generated.proto",
"vendor/k8s.io/api/admission/v1beta1/generated.proto",
"vendor/k8s.io/api/admissionregistration/v1/generated.proto",
"vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto",
"vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto",
"vendor/k8s.io/api/apidiscovery/v2/generated.proto",
"vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto",
"vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto",
"vendor/k8s.io/api/apps/v1/generated.proto",
"vendor/k8s.io/api/apps/v1beta1/generated.proto",
"vendor/k8s.io/api/apps/v1beta2/generated.proto",
"vendor/k8s.io/api/authentication/v1/generated.proto",
"vendor/k8s.io/api/authentication/v1alpha1/generated.proto",
"vendor/k8s.io/api/authentication/v1beta1/generated.proto",
"vendor/k8s.io/api/authorization/v1/generated.proto",
"vendor/k8s.io/api/authorization/v1beta1/generated.proto",
"vendor/k8s.io/api/autoscaling/v1/generated.proto",
"vendor/k8s.io/api/autoscaling/v2/generated.proto",
"vendor/k8s.io/api/batch/v1/generated.proto",
"vendor/k8s.io/api/batch/v1beta1/generated.proto",
"vendor/k8s.io/api/certificates/v1/generated.proto",
"vendor/k8s.io/api/certificates/v1alpha1/generated.proto",
"vendor/k8s.io/api/certificates/v1beta1/generated.proto",
"vendor/k8s.io/api/coordination/v1/generated.proto",
"vendor/k8s.io/api/coordination/v1alpha2/generated.proto",
"vendor/k8s.io/api/coordination/v1beta1/generated.proto",
"vendor/k8s.io/api/core/v1/generated.proto",
"vendor/k8s.io/api/discovery/v1/generated.proto",
"vendor/k8s.io/api/discovery/v1beta1/generated.proto",
"vendor/k8s.io/api/events/v1/generated.proto",
"vendor/k8s.io/api/events/v1beta1/generated.proto",
"vendor/k8s.io/api/extensions/v1beta1/generated.proto",
"vendor/k8s.io/api/flowcontrol/v1/generated.proto",
"vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto",
"vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto",
"vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto",
"vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto",
"vendor/k8s.io/api/networking/v1/generated.proto",
"vendor/k8s.io/api/networking/v1beta1/generated.proto",
"vendor/k8s.io/api/node/v1/generated.proto",
"vendor/k8s.io/api/node/v1alpha1/generated.proto",
"vendor/k8s.io/api/node/v1beta1/generated.proto",
"vendor/k8s.io/api/policy/v1/generated.proto",
"vendor/k8s.io/api/policy/v1beta1/generated.proto",
"vendor/k8s.io/api/rbac/v1/generated.proto",
"vendor/k8s.io/api/rbac/v1alpha1/generated.proto",
"vendor/k8s.io/api/rbac/v1beta1/generated.proto",
"vendor/k8s.io/api/resource/v1/generated.proto",
"vendor/k8s.io/api/resource/v1alpha3/generated.proto",
"vendor/k8s.io/api/resource/v1beta1/generated.proto",
"vendor/k8s.io/api/resource/v1beta2/generated.proto",
"vendor/k8s.io/api/scheduling/v1/generated.proto",
"vendor/k8s.io/api/scheduling/v1alpha2/generated.proto",
"vendor/k8s.io/api/scheduling/v1beta1/generated.proto",
"vendor/k8s.io/api/storage/v1/generated.proto",
"vendor/k8s.io/api/storage/v1alpha1/generated.proto",
"vendor/k8s.io/api/storage/v1beta1/generated.proto",
"vendor/k8s.io/api/storagemigration/v1beta1/generated.proto",
"vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto",
"vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto",
"vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto",
"vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto",
"vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto",
"vendor/k8s.io/apimachinery/pkg/runtime/generated.proto",
"vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.proto",
"vendor/k8s.io/apimachinery/pkg/util/intstr/generated.proto",
"vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto",
"vendor/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/kmsv2/v2/api.proto",
"vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto",
"vendor/k8s.io/kms/apis/v1beta1/api.proto",
"vendor/k8s.io/kms/apis/v2/api.proto",
"vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.proto",
"vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.proto",
"vendor/k8s.io/metrics/pkg/apis/metrics/v1alpha1/generated.proto",
"vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto",
"vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client/client.proto",
"vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.json"
]
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": "pkg/plugin/v1/remote/plugin.proto, pkg/plugin/v2/pluginv2/pluginv2.proto, vendor/github.com/containers/ocicrypt/utils/keyprovider/keyprovider.proto, vendor/github.com/gogo/protobuf/gogoproto/gogo.proto, vendor/github.com/google/gnostic-models/extensions/extension.proto, vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.proto, vendor/github.com/google/gnostic-models/openapiv3/OpenAPIv3.proto, vendor/github.com/google/gnostic-models/openapiv3/annotations.proto, vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.proto, vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.proto, vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.proto, vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.proto, vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.proto, vendor/go.etcd.io/etcd/api/v3/authpb/auth.proto, vendor/go.etcd.io/etcd/api/v3/etcdserverpb/etcdserver.proto, vendor/go.etcd.io/etcd/api/v3/etcdserverpb/raft_internal.proto, vendor/go.etcd.io/etcd/api/v3/etcdserverpb/rpc.proto, vendor/go.etcd.io/etcd/api/v3/membershippb/membership.proto, vendor/go.etcd.io/etcd/api/v3/mvccpb/kv.proto, vendor/go.etcd.io/etcd/api/v3/versionpb/version.proto, vendor/go.etcd.io/etcd/server/v3/etcdserver/api/snap/snappb/snap.proto, vendor/go.etcd.io/etcd/server/v3/lease/leasepb/lease.proto, vendor/go.etcd.io/etcd/server/v3/storage/wal/walpb/record.proto, vendor/go.etcd.io/raft/v3/raftpb/raft.proto, vendor/k8s.io/api/admission/v1/generated.proto, vendor/k8s.io/api/admission/v1beta1/generated.proto, vendor/k8s.io/api/admissionregistration/v1/generated.proto, vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto, vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto, vendor/k8s.io/api/apidiscovery/v2/generated.proto, vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto, vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto, vendor/k8s.io/api/apps/v1/generated.proto, vendor/k8s.io/api/apps/v1beta1/generated.proto, vendor/k8s.io/api/apps/v1beta2/generated.proto, vendor/k8s.io/api/authentication/v1/generated.proto, vendor/k8s.io/api/authentication/v1alpha1/generated.proto, vendor/k8s.io/api/authentication/v1beta1/generated.proto, vendor/k8s.io/api/authorization/v1/generated.proto, vendor/k8s.io/api/authorization/v1beta1/generated.proto, vendor/k8s.io/api/autoscaling/v1/generated.proto, vendor/k8s.io/api/autoscaling/v2/generated.proto, vendor/k8s.io/api/batch/v1/generated.proto, vendor/k8s.io/api/batch/v1beta1/generated.proto, vendor/k8s.io/api/certificates/v1/generated.proto, vendor/k8s.io/api/certificates/v1alpha1/generated.proto, vendor/k8s.io/api/certificates/v1beta1/generated.proto, vendor/k8s.io/api/coordination/v1/generated.proto, vendor/k8s.io/api/coordination/v1alpha2/generated.proto, vendor/k8s.io/api/coordination/v1beta1/generated.proto, vendor/k8s.io/api/core/v1/generated.proto, vendor/k8s.io/api/discovery/v1/generated.proto, vendor/k8s.io/api/discovery/v1beta1/generated.proto, vendor/k8s.io/api/events/v1/generated.proto, vendor/k8s.io/api/events/v1beta1/generated.proto, vendor/k8s.io/api/extensions/v1beta1/generated.proto, vendor/k8s.io/api/flowcontrol/v1/generated.proto, vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto, vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto, vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto, vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto, vendor/k8s.io/api/networking/v1/generated.proto, vendor/k8s.io/api/networking/v1beta1/generated.proto, vendor/k8s.io/api/node/v1/generated.proto, vendor/k8s.io/api/node/v1alpha1/generated.proto, vendor/k8s.io/api/node/v1beta1/generated.proto, vendor/k8s.io/api/policy/v1/generated.proto, vendor/k8s.io/api/policy/v1beta1/generated.proto, vendor/k8s.io/api/rbac/v1/generated.proto, vendor/k8s.io/api/rbac/v1alpha1/generated.proto, vendor/k8s.io/api/rbac/v1beta1/generated.proto, vendor/k8s.io/api/resource/v1/generated.proto, vendor/k8s.io/api/resource/v1alpha3/generated.proto, vendor/k8s.io/api/resource/v1beta1/generated.proto, vendor/k8s.io/api/resource/v1beta2/generated.proto, vendor/k8s.io/api/scheduling/v1/generated.proto, vendor/k8s.io/api/scheduling/v1alpha2/generated.proto, vendor/k8s.io/api/scheduling/v1beta1/generated.proto, vendor/k8s.io/api/storage/v1/generated.proto, vendor/k8s.io/api/storage/v1alpha1/generated.proto, vendor/k8s.io/api/storage/v1beta1/generated.proto, vendor/k8s.io/api/storagemigration/v1beta1/generated.proto, vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto, vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto, vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto, vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto, vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto, vendor/k8s.io/apimachinery/pkg/runtime/generated.proto, vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.proto, vendor/k8s.io/apimachinery/pkg/util/intstr/generated.proto, vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto, vendor/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/kmsv2/v2/api.proto, vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto, vendor/k8s.io/kms/apis/v1beta1/api.proto, vendor/k8s.io/kms/apis/v2/api.proto, vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.proto, vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.proto, vendor/k8s.io/metrics/pkg/apis/metrics/v1alpha1/generated.proto, vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto, vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client/client.proto, vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.json",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "pkg/plugin/v1/remote/plugin.proto, pkg/plugin/v2/pluginv2/pluginv2.proto, vendor/github.com/containers/ocicrypt/utils/keyprovider/keyprovider.proto, vendor/github.com/gogo/protobuf/gogoproto/gogo.proto, vendor/github.com/google/gnostic-models/extensions/extension.proto, vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.proto, vendor/github.com/google/gnostic-models/openapiv3/OpenAPIv3.proto, vendor/github.com/google/gnostic-models/openapiv3/annotations.proto, vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.proto, vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.proto, vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.proto, vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.proto, vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.proto, vendor/go.etcd.io/etcd/api/v3/authpb/auth.proto, vendor/go.etcd.io/etcd/api/v3/etcdserverpb/etcdserver.proto, vendor/go.etcd.io/etcd/api/v3/etcdserverpb/raft_internal.proto, vendor/go.etcd.io/etcd/api/v3/etcdserverpb/rpc.proto, vendor/go.etcd.io/etcd/api/v3/membershippb/membership.proto, vendor/go.etcd.io/etcd/api/v3/mvccpb/kv.proto, vendor/go.etcd.io/etcd/api/v3/versionpb/version.proto, vendor/go.etcd.io/etcd/server/v3/etcdserver/api/snap/snappb/snap.proto, vendor/go.etcd.io/etcd/server/v3/lease/leasepb/lease.proto, vendor/go.etcd.io/etcd/server/v3/storage/wal/walpb/record.proto, vendor/go.etcd.io/raft/v3/raftpb/raft.proto, vendor/k8s.io/api/admission/v1/generated.proto, vendor/k8s.io/api/admission/v1beta1/generated.proto, vendor/k8s.io/api/admissionregistration/v1/generated.proto, vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto, vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto, vendor/k8s.io/api/apidiscovery/v2/generated.proto, vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto, vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto, vendor/k8s.io/api/apps/v1/generated.proto, vendor/k8s.io/api/apps/v1beta1/generated.proto, vendor/k8s.io/api/apps/v1beta2/generated.proto, vendor/k8s.io/api/authentication/v1/generated.proto, vendor/k8s.io/api/authentication/v1alpha1/generated.proto, vendor/k8s.io/api/authentication/v1beta1/generated.proto, vendor/k8s.io/api/authorization/v1/generated.proto, vendor/k8s.io/api/authorization/v1beta1/generated.proto, vendor/k8s.io/api/autoscaling/v1/generated.proto, vendor/k8s.io/api/autoscaling/v2/generated.proto, vendor/k8s.io/api/batch/v1/generated.proto, vendor/k8s.io/api/batch/v1beta1/generated.proto, vendor/k8s.io/api/certificates/v1/generated.proto, vendor/k8s.io/api/certificates/v1alpha1/generated.proto, vendor/k8s.io/api/certificates/v1beta1/generated.proto, vendor/k8s.io/api/coordination/v1/generated.proto, vendor/k8s.io/api/coordination/v1alpha2/generated.proto, vendor/k8s.io/api/coordination/v1beta1/generated.proto, vendor/k8s.io/api/core/v1/generated.proto, vendor/k8s.io/api/discovery/v1/generated.proto, vendor/k8s.io/api/discovery/v1beta1/generated.proto, vendor/k8s.io/api/events/v1/generated.proto, vendor/k8s.io/api/events/v1beta1/generated.proto, vendor/k8s.io/api/extensions/v1beta1/generated.proto, vendor/k8s.io/api/flowcontrol/v1/generated.proto, vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto, vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto, vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto, vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto, vendor/k8s.io/api/networking/v1/generated.proto, vendor/k8s.io/api/networking/v1beta1/generated.proto, vendor/k8s.io/api/node/v1/generated.proto, vendor/k8s.io/api/node/v1alpha1/generated.proto, vendor/k8s.io/api/node/v1beta1/generated.proto, vendor/k8s.io/api/policy/v1/generated.proto, vendor/k8s.io/api/policy/v1beta1/generated.proto, vendor/k8s.io/api/rbac/v1/generated.proto, vendor/k8s.io/api/rbac/v1alpha1/generated.proto, vendor/k8s.io/api/rbac/v1beta1/generated.proto, vendor/k8s.io/api/resource/v1/generated.proto, vendor/k8s.io/api/resource/v1alpha3/generated.proto, vendor/k8s.io/api/resource/v1beta1/generated.proto, vendor/k8s.io/api/resource/v1beta2/generated.proto, vendor/k8s.io/api/scheduling/v1/generated.proto, vendor/k8s.io/api/scheduling/v1alpha2/generated.proto, vendor/k8s.io/api/scheduling/v1beta1/generated.proto, vendor/k8s.io/api/storage/v1/generated.proto, vendor/k8s.io/api/storage/v1alpha1/generated.proto, vendor/k8s.io/api/storage/v1beta1/generated.proto, vendor/k8s.io/api/storagemigration/v1beta1/generated.proto, vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto, vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto, vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto, vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto, vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto, vendor/k8s.io/apimachinery/pkg/runtime/generated.proto, vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.proto, vendor/k8s.io/apimachinery/pkg/util/intstr/generated.proto, vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto, vendor/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/kmsv2/v2/api.proto, vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto, vendor/k8s.io/kms/apis/v1beta1/api.proto, vendor/k8s.io/kms/apis/v2/api.proto, vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.proto, vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.proto, vendor/k8s.io/metrics/pkg/apis/metrics/v1alpha1/generated.proto, vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto, vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client/client.proto, vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.json"
}
}
],
"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": null,
"points": 0,
"status": "missed",
"details": [],
"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-28T16:59:12.398400Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/l/loft-sh/vcluster.svg",
"full_name": "loft-sh/vcluster",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}