Звіт у форматі JSON машиночитний
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 11615,
"has_wiki": false,
"homepage": null,
"languages": {
"C": 4239038,
"Go": 16522864,
"C++": 1184484,
"HCL": 68896,
"Shell": 448264,
"Makefile": 122958,
"Dockerfile": 25456,
"Go Template": 5481
},
"pushed_at": "2026-07-24T15:53:26Z",
"created_at": "2026-05-06T01:16:21Z",
"owner_type": "Organization",
"updated_at": "2026-07-24T15:53:33Z",
"description": "Provides a fantastic way to manage accelerator resources in Kubernetes.",
"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",
"C"
]
},
"owner": {
"blog": null,
"name": "GPUStack",
"type": "Organization",
"login": "gpustack",
"company": null,
"location": null,
"followers": 245,
"avatar_url": "https://avatars.githubusercontent.com/u/169020824?v=4",
"created_at": "2024-05-06T05:32:51Z",
"is_verified": null,
"public_repos": 17,
"account_age_days": 810
},
"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.7.1",
"kind": "patch",
"published_at": "2026-07-23T16:04:12Z"
},
{
"tag": "v0.7.0",
"kind": "minor",
"published_at": "2026-07-21T12:53:32Z"
},
{
"tag": "v0.6.6",
"kind": "patch",
"published_at": "2026-07-13T08:37:18Z"
},
{
"tag": "v0.6.5",
"kind": "patch",
"published_at": "2026-07-10T11:56:15Z"
},
{
"tag": "v0.6.4",
"kind": "patch",
"published_at": "2026-07-09T14:32:24Z"
},
{
"tag": "v0.5.4",
"kind": "patch",
"published_at": "2026-07-09T08:34:50Z"
},
{
"tag": "v0.6.3",
"kind": "patch",
"published_at": "2026-07-09T03:08:05Z"
},
{
"tag": "v0.6.2",
"kind": "patch",
"published_at": "2026-07-05T13:10:20Z"
},
{
"tag": "v0.6.1",
"kind": "patch",
"published_at": "2026-07-03T08:18:30Z"
},
{
"tag": "v0.6.1-rc1",
"kind": "prerelease",
"published_at": "2026-07-03T07:02:11Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2026-07-03T00:32:18Z"
},
{
"tag": "v0.5.3",
"kind": "patch",
"published_at": "2026-06-21T04:56:30Z"
}
],
"recent_commits": [
{
"oid": "62c409f3aa4f9ea883ae233e9aa6c73fcb40439c",
"body": "…ed InstanceType (#55)\n\n* fix(e2e): reactivate the drain-latched InstanceType in case-2 cleanup\n\nDraining a pool that still holds an admitted workload latches its InstanceType Inactive by design (NodeQueueReconciler drives the ClusterQueue HoldAndDrain to evict the workload and syncInactive mirrors \n[…]\n is correct in both paths; only the case's drain trigger raced the admission->accounting lag.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>\n\n---------\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(e2e): make case-2 drain deterministic and restore the drain-latch…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-24T15:53:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "73e032f40f516632be654c8c0241794f8ff387e3",
"body": "…card (#53)\n\n* fix(deviceplugin): report cross-mode-held cards Unhealthy in ListAndWatch\n\nA card held in another allocation mode (exclusive/shared/sliced) was\nadvertised Healthy by design, but kubelet picks device tokens freely:\nGetPreferredAllocation is advisory and never even runs under the defaul\n[…]\n, and the sliced section skips independently when no\n <base>.sliced companion is advertised.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>\n\n---------\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(deviceplugin): never co-locate cross-mode claims on one physical …",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-24T14:01:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "69764aed381525b3d627effe1c73fed681cedcff",
"body": "…lity matrix (#54)\n\nResolve each GPU node group's os and drivers_preset from the live `nebius mk8s node-group get-compatibility-matrix` for the cluster's release (newest available driver preset) via a per-group data.external, so gpu_instance_types needs only platform + preset; os/drivers_preset rema\n[…]\nnd left them orphaned in ~/.kube/config across runs. Precompute the real entry name in the null_resource triggers and delete context/cluster/user by it.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(infra/nebius): auto-resolve GPU os/drivers_preset from compatibi…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-24T13:45:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a720eddbe74ce7aea575ca6ae354e3c0b0d6b81f",
"body": "Signed-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat: add agents",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-24T01:41:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8a69a1656f5e0e66b345dba466f9d6a792e7f571",
"body": "GpmMetricsGetV.V1 set gpmMetrics.Version via STRUCT_VERSION(gpmMetrics, 1) — the\nsize-encoded `sizeof | ver<<24` scheme NVML uses only for its size-versioned structs\n(memory-info, gpu-instance-profile-info). The GPM metrics API instead takes a plain\nversion number: nvml.h defines `#define NVML_GPM_M\n[…]\nutilization stuck at 0 there.\n\nSet gpmMetrics.Version to the plain GPM_METRICS_GET_VERSION (=1) constant the binding\nalready generates for this purpose.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(nvml): send the plain GPM version to nvmlGpmMetricsGet",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-23T15:45:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0f78a460bbd46c09bbe7f66c825a23274a2ea731",
"body": "* docs(spec): add nvidia dynamic mig allocation plan\n\n- Second of two specs; builds the allocation path on the metadata\n realignment spec 1 (Shipped) landed.\n- Planned: 8 features (F1-F8), 10-task implementation plan (T1-T10),\n KEP-format test plan; Codex + Kimi dual cross-check folded in.\n\nSigned\n[…]\nadd the transient-enumeration-orphan risk as a deferred follow-up\n- advance Status to Shipped\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>\n\n---------\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat: dynamic NVIDIA MIG allocation (#51)",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-23T15:37:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5b66ad7f7e15e5d86124ef9a10e32c82d56577e8",
"body": "Report the backing Pod's container waiting message as the Instance\nphase message instead of the generic startup hint, and degrade the\nphase to NotReady when the waiting reason indicates an image pull\nfailure (ErrImagePull/ImagePullBackOff/InvalidImageName), so a stuck\nInstance is no longer reported as Starting and can be stopped.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(worker): surface container waiting detail in instance phase (#50)",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-23T09:19:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e805953e7d7b6bab69cda2e4f0b90e6fe7a3a563",
"body": "…cluster (#49)\n\n* feat(infra): rename computes/nebius vars and default boot disk to 100gb\n\n- parent_id -> project_id, vm_name_prefix -> name_prefix\n- fold platform/preset/image_family into a single instance_type object\n- boot_disk_size_gibibytes -> boot_disk_size_gb, default 100 (was 64)\n- hardcode \n[…]\ne_group resource's\nfor_each consumes.\n\nFollow-up to Tasks 7-8 of terraform-infra-adjustments.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>\n\n---------\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(infra): k3s containerd/ports, boot-disk params, new nebius mk8s …",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-23T06:11:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c1d8e2503e1da71d2377382ece62ef1dfe27e578",
"body": "…idate vm sizing vars (#48)\n\n- default ssh_public_key to ~/.ssh/id_ed25519.pub in both the nebius compute\n and eks cluster modules\n- fix the nebius ssh_command output to drop the /32 CIDR suffix Nebius\n returns and add the -i private-key flag (derived from ssh_public_key)\n- collapse the nebius mod\n[…]\n documented with a platform ->\n preset -> image_family reference table; default now points at\n gpu-h100-sxm / 1gpu-16vcpu-200gb / ubuntu24.04-cuda13.0\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(infra): default ssh key to ed25519, fix nebius ssh output, consol…",
"author_name": "Frank Mai",
"author_login": "thxCode",
"committed_at": "2026-07-22T07:12:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6add4aa3f9bde61ee9deea5bf85d33e1da51c8ad",
"body": "* feat(infra): add nebius network/subnet PoC + toolchain fix\n\n- Add hashicorp/random 3.9.0 to required_providers\n- Fix NEIBUS_ -> NEBIUS_AUTHKEY_PRIVATE_PATH typo in the service-account provider block\n- Add random_string.suffix + locals.vm_name for unique resource naming\n- Add nebius_vpc_v1_network.\n[…]\n tables, and the\nplatform/preset/region availability reference.\n\nTask 5 of nebius-compute-vm.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>\n\n---------\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(infra): add Nebius standalone compute VM Terraform module (#47)",
"author_name": "Frank Mai",
"author_login": "thxCode",
"committed_at": "2026-07-22T05:33:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d5c370e879ed98f1898dd7f28669c1b4addf63f6",
"body": "Release-tag builds resolve CACHE_FROM_REF to the version-line cache\n(e.g. -v0.7) and fall back to DEFAULT_BRANCH when it is absent. The\nfallback pointed at a \"-dev\" ref that no branch ever writes -- pushes to\nmain store the build cache under \"-main\" -- so the first release of a\nversion line always m\n[…]\nausts the runner disk.\nPoint the fallback (and the stale story comments) at the real\ndefault-branch cache, \"-main\". Applies to both ci.yml and pack.yml.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(ci): fall back to the main build cache for release tags",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-21T12:44:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f702a6baf3de5b3e46479eca4bb3d98662568883",
"body": "* docs(spec): add accelerator slicing metadata realignment plan\n\n- per-card LogicalSliced/PhysicalSliced + group AcceleratorSlicedDetail\n- InstanceType desired/observed split (Status.Detail backfilled by reconciler)\n- device-plugin/node-capacity/gateway re-plumb; remove --slicing-policy + MemoryPerc\n[…]\ned\n\n- flip Status Built -> Shipped after end-to-end e2e verification on real NVIDIA hardware.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>\n\n---------\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): realign accelerator slicing metadata (#46)",
"author_name": "Frank Mai",
"author_login": "thxCode",
"committed_at": "2026-07-21T12:03:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4e26b10ccbaa48ae82c3b9e5e0eb1e759b0a53b6",
"body": "…d injection\n\n- update Stage 5 allocator note: MetaX (sgpu subdevice + METAX_SGPUS) and\n Cambricon (cnDev sMLU profile + instance) now have real per-slice isolation\n- drop the \"two remaining stub vendors\" follow-up; all sliceable vendors covered\n- mark the spec Status: Shipped\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs: sync architecture + mark spec shipped for metax/cambricon slice…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-19T12:46:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b3b24373928fa08b5d69b280c71c5e4ca884837a",
"body": "- register a !opts.NoSliced Sliced server and spawn the level-based sMLU\n reclaim loop (broadcast live-pods + resync ticker) in Start\n- add the AllocationMode==Sliced branch: reject multi-card, derive\n (cores%, memMiB) from the shared helpers, reserve/reuse the profile +\n instance, inject the dev\n[…]\n\n- add responder branch table tests (single-card/default-cores/no-memory/\n multi-card/exclusive-isolation)\n\nTask 5 of metax-cambricon-sliced-injection.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(cambricon): wire sliced smlu responder + reclaim loop",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-19T12:46:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "65c9630f6f52eccff6e8f714618f087e5266a7fc",
"body": "- add smluDriver seam (ensure-mode, profile/instance create-destroy, list)\n over the cndev wrappers, with an in-memory fake for hardware-free tests\n- map (cores%, memMiB) to the cndev quota (mluQuota %, memorySize bytes)\n- encode a bounded, decodable instance name that carries the pod UID\n- write a\n[…]\nre cndev-free so it builds and tests on darwin; the real\n cndev driver lands linux-tagged in the next task\n\nTask 4 of metax-cambricon-sliced-injection.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(cambricon): add smlu lifecycle core",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-19T12:46:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a8de4db875f0fe3f2c86eb9931f21624288bf3c9",
"body": "- add so.Lookup-guarded sMLU wrappers over the generated low-level calls\n- get/set smlu mode, create/destroy profile, create/destroy instance by\n name, list all instances\n- drop the unexported cndevMluInstance handle from CreateSMluInstance;\n instances are addressed by name for every downstream op\n- add a guard-path unit test asserting FUNCTION_NOT_FOUND without the .so\n\nTask 3 of metax-cambricon-sliced-injection.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(cambricon): add exported cndev smlu wrappers",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-19T12:46:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a332eca3007162b57ccc232b6676678964f621b1",
"body": "- register a !opts.NoSliced Sliced server and gate the reclaim loop on it\n- branch GetContainerAllocateResponse on AllocationMode==Sliced: reject a multi-card allocation, derive (cores%,memMiB) via the shared helpers, reserve a whole-card or partial slice, and inject METAX_SGPUS + /dev/mxcd + the ca\n[…]\nault-cores/no-memory/multi-card/exclusive-isolation branches and the loop's seeded-gate + both tick sources\n\nTask 2 of metax-cambricon-sliced-injection.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(metax): wire sliced sgpu responder + reclaim loop",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-19T12:46:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1b547ebf5d90f793fba961b880892562a09bab36",
"body": "- add the sgpuManager sysfs seam (EnsureModel/SetSchedClass/Create/Remove/global List) with a hardware-gated real impl isolated behind the interface\n- add the pure METAX_SGPUS encoder and pod-UID alias encode/decode correlation key\n- add fail-closed JSON marker render/parse + atomic temp-rename writ\n[…]\ncard/reclaim branches + the real sysfs impl + concurrent -race with a fake manager and fake soft-slice dirs\n\nTask 1 of metax-cambricon-sliced-injection.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(metax): add fail-closed sgpu translation + reclaim core",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-19T12:46:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8c2cc0df64223a053e6a9b44081d20c1a08e42b6",
"body": "- capture the stateful sysfs/cnDev slicing design, reclaim architecture, 5-task plan and KEP test plan\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(spec): plan metax/cambricon sliced runtime injection",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-19T12:46:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0dbefdbc827c46d38b67e89419e6ae094f3c9056",
"body": "- architecture.md: Hygon compute is now a spatial partition (count x\n 100, disjoint CU bitmask); MThreads/Hygon sliced Allocate now does\n real injection, leaving only Cambricon/MetaX as passthrough stubs.\n- record that .sliced>1 is NVIDIA-only and the Pod webhook should reject\n it for other vendo\n[…]\n Hygon card\n -> co-located slices strand) + K2 to the spec Risks & Open Questions.\n\nFollow-up review documentation for mthreads-hygon-sliced-injection.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs: sync architecture + spec with hygon/mthreads slicing review",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-18T08:20:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bdc33b81cebfdd102471c7e4731e317ab882932d",
"body": "- register a !NoSliced Sliced device-plugin server in New().\n- branch GetContainerAllocateResponse on AllocationMode==Sliced: per\n allocated card, call the vdev translation core to write one\n vdev<i>.conf into the pod work dir, mount it at /etc/vdev/docker/\n alongside the DTK (/opt/dtk -> /opt/hy\n[…]\ne /etc/vdev/docker\n mount, the whole-card marker, multi-card per-card confs, and the\n no-memory rejection.\n\nTask 3 of mthreads-hygon-sliced-injection.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(hygon): wire sliced vdev.conf injection into the responder",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-18T08:20:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a6ff14b257389a319fcd25db470ad0bfd05ba4a4",
"body": "- flip the detector CoresPercentageOvercommit true->false: the vdev.conf\n assigns each slice a disjoint CU bitmask, so compute is a spatial\n partition, not overcommit (C1).\n- add hygon/vdev.go: a concurrency-guarded, on-disk-derived translation\n core deriving a per-pod vdev.conf slot (restart-sur\n[…]\ntion,\n restart reconstruction, idempotency, concurrency, and fail-closed\n parsing / scanning / exhaustion.\n\nTask 2 of mthreads-hygon-sliced-injection.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(hygon): add fail-closed sliced vdev.conf translation core",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-18T08:20:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4c74f40d5e43e0851cf265f2a5305e90f1bdca5c",
"body": "- register a !NoSliced Sliced device-plugin server in New().\n- branch GetContainerAllocateResponse on AllocationMode==Sliced,\n following the NVIDIA/Ascend template: collect the allocated\n accelerator/group pairs, then emit MTHREADS_QOS_MEMORY_LIMIT\n (hard VRAM cap, bytes) and MTHREADS_QOS_COMPUTI\n[…]\nmoryMib /\n SlicedCoresPercent helpers.\n- add table tests for the qos-env encoding and non-sliced isolation.\n\nTask 1 of mthreads-hygon-sliced-injection.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(mthreads): inject qos env for sliced allocations",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-18T08:20:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "739d7b5a6cf3185bd3fffa3a3945e208fc6b5062",
"body": "- add the planned spec for MThreads QoS-env and Hygon vdev.conf sliced\n injection branches, scoped to the two stateless vendors.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(spec): plan mthreads/hygon sliced runtime injection",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-18T08:20:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09fa0b59deb34aec6b52212061854c819fa74398",
"body": "- rewrite the four-gate list as five gates: Pod webhook -> Kueue\n credits -> AdmissionCheck -> default scheduler -> DeviceManager allocator\n- describe the Devices ledger as gate 3's backing store, not a gate\n- replace the fixed MaxPartitions=512 narrative with per-vendor max\n slices and the comput\n[…]\name and the Task 1 AcceleratorSliced wording (MaxSize, value struct),\n and mark it Shipped\n\nTask 4 of accelerator-slicing-capability-and-pool-feedback.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(architecture): redraw admission as a five-gate chain",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-17T15:38:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cb04774e899c6a82739c7d46b4903020bdcc024e",
"body": "The v1 InstanceType and Instance types are aliases of their v1alpha1 sources,\nand the api/v1 Condition/Status types are aliased too, so their root\napplyconfigurations reference the source sub-configs. The per-type v1/api\nsub-config files are therefore dead — unreferenced, only self-referential, and\n\n[…]\nCondition/Status); the module still builds, tests, and lints, and a full\nmake generate (nuke + regen) leaves the applyconfiguration tree byte-identical.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "chore(kubeclients): drop orphaned v1/api applyconfiguration sub-configs",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-17T15:38:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6984dab77c726d32d8e12bd01973f57bac7faefd",
"body": "…criptor\n\n- replace InstanceTypeAccelerator.Sliceable bool with a value Feature AcceleratorsFeature + IsSliceable(), reserving the removed protobuf field number\n- keep the field a value (not a pointer) so InstanceTypeSpec stays comparable for the workergateway aggregation map key\n- migrate the slice\n[…]\nhook as a field.Error\n- regenerate deepcopy / protobuf / CRD / openapi / applyconfiguration\n\nTask 3 of accelerator-slicing-capability-and-pool-feedback.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): fold instancetype slicing into a structured feature des…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-17T15:38:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e9597a642adb8359ae2b70220517719aaff969b4",
"body": "…on .sliced\n\n- NodeCapacityReconciler reads the same-named Devices CR for the per-manufacturer max slice count + compute-overcommit, presence-gated on the device-plugin's bare .sliced pool (> 0), reverse-patching the four .sliced.* keys when it is absent or 0\n- .sliced.cores-percentage = cards × max\n[…]\nde without a deep copy and patch a fresh Node object so the informer cache is never mutated\n\nTask 2 of accelerator-slicing-capability-and-pool-feedback.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): source sliced node capacity from Node + Devices, gated …",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-17T15:38:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ee282a650df9c5b6a4569e7809bc368ef2588c02",
"body": "- add value-typed AcceleratorSliced{MaxSize,CoresPercentageOvercommit,MemoryPercentageStep} + AcceleratorsFeature{PhysicalSliced,LogicalSliced} on DevicesGroup, with MaxSlices()\n- move RoCE to DeviceTopology; drop AcceleratorFeatures + *Partition bools + MaxPartitions\n- detect per-vendor LogicalSlic\n[…]\npcopy/CRD/applyconfiguration\n- note the worktree make-generate caveat in the generate skill\n\nTask 1 of accelerator-slicing-capability-and-pool-feedback.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(devices): make accelerator slicing a vendor-aware group capability",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-17T15:38:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d71cf7c80f74ba919a665325edfb56bd2a48c99a",
"body": "… on all paths\n\nAn exclusive whole-card claim (nvidia.com/gpu) and a shared claim\n(nvidia.com/gpu.shared) could be allocated the same physical card on the raw\n(non-Kueue) path: Allocate stamped a mode without checking the card's current\nmode, and identical concurrent claims could all be misattribute\n[…]\nion-per-Pod constraint and the concurrent\n identical-request limitations in docs/architecture.md.\n- Cover it with table-driven, race-tested unit tests.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(deviceplugin): enforce exclusive/shared per-card mutual exclusion…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-16T09:06:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f398cc9fad3d489aa5d665392f61be75481bbe1d",
"body": "… on one card\n\n- Add cases/case-22.sh: on a real >=2-card nvidia node, occupy every card\n exclusively then submit a shared claim, and assert it is never placed onto an\n exclusive card — on both the Kueue LocalQueue path (variant A) and the raw\n path (variant B).\n- Fill the exclusive cards sequent\n[…]\ngate / Unschedulable) before scoring a held\n PASS; self-recovering trap restores the baseline on pass and fail.\n- Register the case in the suite table.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "test(operator-e2e): add CASE 22 — exclusive/shared must not co-locate…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-16T09:06:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "674f5583e093684f0f000a48b38902ac80f10782",
"body": "- Record the device-plugin exclusive/shared per-card mutual-exclusion bug, its\n two root causes (missing on-node Allocate gate; concurrent-admission pod\n misattribution), the on-node fix, and the reproduction/verification evidence\n as a shipped KEP-style spec.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(spec): add the exclusive/shared per-card exclusion bug-fix spec",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-16T09:06:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b1566d6e4b21e4b95a4d789ab482d757dcaa382c",
"body": "- raise the worker startupProbe failureThreshold from 10 to 60 (~50s -> ~300s)\n- on boot the worker installs NFD/Kueue/CSI and, when migrating from v0.5.x,\n reaps a stranded Kueue and upgrades it (recreating the controller); the old\n budget killed the pod mid-repair, stranding the Kueue release pending-rollback\n so it never converged\n\nTask 5 of robust-migration-from-v0.5.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(chart): give the worker startup headroom to self-heal kueue on boot",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T14:57:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83308048c85b5f9d0ca5e1202cdb797bbef397bb",
"body": "- rename v0.5-to-v0.6.md to from-v0.5.md and reframe the title/intro from a\n v0.6-specific path to \"from v0.5.x to a higher version\" (v0.6.x kept as the\n concrete worked example)\n- document the Kueue finalizer-deadlock hazard and the operator's automatic\n self-heal (reap orphaned webhooks/finaliz\n[…]\name kept: it\n targets v0.5.x orphans regardless of target version)\n- update the README links to the new filename\n\nTask 3 of robust-migration-from-v0.5.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(migration): generalize the v0.5 guide to any higher version",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T14:57:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "20fa8787de3ffe271de38127410f88c8dbc1cc94",
"body": "- add Chart.RepairViaUpgradeOnly: when set, Install repairs a bad-status\n (e.g. failed) release with a helm upgrade rather than the destructive\n uninstall+install path\n- also recover a release wedged pending-upgrade/pending-rollback (an interrupted\n operation, e.g. the worker killed mid-upgrade):\n[…]\nllers (NFD/CSI/device-manager) keep the default (false), unchanged\n- extend the nextStep decision-table unit test\n\nTask 2 of robust-migration-from-v0.5.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(helm): repair bad-status release via upgrade instead of uninstall",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T14:57:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7353e772dd30d143777c2b4403fec79e956d4a91",
"body": "- add reapOrphanedKueue: gate on a Terminating kueue.x-k8s.io CRD, then delete\n the kueue webhook configs (by helm release label) before stripping the\n resource-in-use finalizers, so the freed CRDs drain and the (re)install\n recreates them\n- call it at the top of installKueue; no-op and idempoten\n[…]\nt unit tests: no-op-when-healthy, webhook-before-strip ordering,\n finalizer strip, error propagation, drain wait\n\nTask 1 of robust-migration-from-v0.5.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(worker): self-heal orphaned kueue before reinstall",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T14:57:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f6a2b3e338a830a23f6fcc643bdcfe70eced3cac",
"body": "- development.md: the worker v1 InstanceTypeFlavor catalog is now\n read-only (list + watch), not list-only\n- advance the spec Status to Shipped\n\nShip of aggregated-instancetype-name-and-flavor-watch.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs: mark instancetypeflavor catalog watch-capable and ship the spec",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T08:54:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "983ea4c1f65b22f173da0ab88332707a1d9481d1",
"body": "- register an InstanceTypeFlavor informer factory so a worker subscribed\n with its GVK gets a watch-backed informer, not just the live-list proxy\n- accept watch=true on GET /instancetypeflavors, mirroring instancetypes\n- add OpHandleClusterInstanceTypeFlavor to tag per-cluster flavor events\n- add O\n[…]\ncontributing cluster\n- refresh the stale list-only comments now that no worker GVK lacks watch\n\nTask 4 of aggregated-instancetype-name-and-flavor-watch.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(workergateway): stream aggregated instance-type-flavor watch",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T08:54:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f4012f23f6f4f24170ba634a0d574e00e9dda728",
"body": "…watch\n\n- implement rest.Watcher on InstanceTypeFlavorHandler via WithListWatch,\n watching the operator-owned ResourceFlavors through a WithWatch client\n- project the many-ResourceFlavor -> one-flavor catalog with a backing\n count multiset: ADD a flavor on its first backer, DELETE on its last\n- se\n[…]\n stamp deletes with\n a DeletionTimestamp so both survive the wrapper's resource-version dedup\n\nTask 3 of aggregated-instancetype-name-and-flavor-watch.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): serve InstanceTypeFlavor watch from the ResourceFlavor …",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T08:54:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e5d5d30222913c5e9dd1533e3b9653b26fc4b477",
"body": "- flip the genclient marker to onlyVerbs=get,list,watch so the typed\n client exposes Watch and lister-gen emits the lister the watch-driven\n informer depends on (get is required for the lister; the apiserver\n still serves only list+watch, so the client Get stays unused)\n- refresh the type doc fro\n[…]\nad-only (list and watch)\n- regenerate client/lister/informer/apiservice for InstanceTypeFlavor\n\nTask 2 of aggregated-instancetype-name-and-flavor-watch.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(api): add watch verb to InstanceTypeFlavor and regenerate client",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T08:54:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f925e486874bc3b27ab99a74b02ae43526b4275c",
"body": "- add buildAggregatedInstanceTypeName: accelerated encodes accelerator\n group + per-unit cpu, non-accelerated omits both, strips the Gi suffix\n- replace both first-seen GenerateName/Name sites (list Next + watch\n Handle) so the same hardware profile reads identically across clusters\n- drop the now\n[…]\nd retarget the spec-built name\n assertions; add a focused TestBuildAggregatedInstanceTypeName\n\nTask 1 of aggregated-instancetype-name-and-flavor-watch.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(workergateway): derive aggregated instancetype name from spec",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T08:54:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "57bfd123010c07c7989cae13fcd8ede6ce354251",
"body": "…watch\n\n- capture the planned two-track feature spec (Status: Planned)\n- Track A: spec-derived aggregated InstanceType name\n- Track B: end-to-end InstanceTypeFlavor watch (verb + apiserver + gateway)\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(spec): add spec-derived aggregated instancetype naming & flavor …",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T08:54:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e93cac673a175394cd98cefeaa4ed981974f0398",
"body": "…modules\n\nFix a pod-network black-hole in the k3s module and make a few related\nimprovements to the test-infra Terraform and its documentation.\n\nk3s host-gw route residue: k3s-uninstall.sh (via k3s-killall.sh) deletes\nthe cni0/flannel.1 interfaces and flushes iptables, but never removes the\nhost-gw \n[…]\nME to each infra component (eks, k3s, s3/aws, incluster)\ncovering what it provisions, prerequisites, common apply/destroy steps,\nvariables, and outputs.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(testing/infra): clean stale k3s host-gw routes and improve infra …",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T07:09:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fe35dd34514b477b0fadd8b34b89675918341b67",
"body": "Multi-word Go source files under pkg/worker/controllers/worker and\npkg/worker/webhooks/worker used flat-concatenated names (instancetype.go,\nnodecapacity.go, ...), the only hand-written outliers left in the repo.\nRename them to snake_case (instance_type.go, node_capacity.go, ...) so\nthey match the m\n[…]\nut are\nunchanged (make generate produces no diff). Sync the stale filename\nmentions in docs/ and the e2e skill, and record the naming rule in\nCLAUDE.md.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "refactor(worker): rename controller/webhook files to snake_case",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T02:23:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "94edf6e6ee7fbf61c63fc14f668ec30ce8e6185f",
"body": "- key GPU node groups by name (map(list(string)) -> gpu-<name>) instead of positional list index, so adding or editing one entry no longer rotates the untouched node groups\n- remove helm_release, the helm provider, var.image, and the gpustack_operator_image local so the module only provisions the cluster\n- strip the cluster's context/cluster/user from ~/.kube/config on destroy via a self.triggers-only, on_failure=continue local-exec\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(testing): stop eks gpu node-group rotation and slim the module",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T01:41:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e6b60c5bb3ce4b58c9bf6c7138e28b480944ad90",
"body": "- new testing/infra/clusters/k3s module: install/uninstall K3s on SSH-reachable hosts via remote-exec, driven by server/agent host lists (user@host, per-role SSH ports)\n- first server bootstraps embedded etcd (--cluster-init); extra servers and agents join with a shared random_string token; an empty\n[…]\no ~/.ssh/id_ed25519 (the provisioner cannot auth RSA against OpenSSH 8.8+)\n- expose context_name, server_hosts, agent_hosts, and kubeconfig_path outputs\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(testing): add a k3s-over-ssh cluster module",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-15T01:41:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1b73fdc51e3ad0d98a69796b550214ba7ca53170",
"body": "Regenerate InstanceTypeUnitResources applyconfiguration so its unit CPU\ndoc comment reads \"cores\", matching the source type comment that\nc0d4a01 changed from \"milli-cores\" to \"cores\" but did not regenerate.\nPure generated-code sync; no behavior change.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "chore(api): sync applyconfiguration unit CPU comment to cores",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-14T07:04:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0788710219b872fb086f36e89223694c29583d99",
"body": "Remove the validation that required acceleratorSlicedCoresPercentage to be\ngreater than or equal to acceleratorSlicedMemoryPercentage. The per-card\ncompute (SM) budget and the VRAM budget of a slice are independent, so a\nsliced request may set any combination of the two percentages in [0,100].\n\nDrop\n[…]\nok (validateSlicedContainer). Update the AcceleratorSlicedCoresPercentage\nfield doc and regenerate the derived API code, and align docs/architecture.md.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): decouple sliced compute and memory budgets",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-14T07:04:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "309c5e2baa0b732b424b1e45a76c04f3d17805c6",
"body": "… and immutability rules\n\n- note a CPU-only (acceleratable=false) type's unit CPU must be 1 core\n- describe the whole-spec freeze on update (except displayName and\n inactive), replacing the narrower unitResources/localStorage wording\n- record that create-time shape checks are not re-run on update\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(architecture): align instancetype webhook contract with cpu-only…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-13T08:03:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "554083d6e8122464551247fecc238b2fe04bf887",
"body": "…nd inactive\n\n- replace the unit-spec immutability check with a whole-spec one: mask\n the admin-editable displayName and inactive, then reject any remaining\n spec change with a single forbidden error\n- a newly added spec field is frozen automatically by the masked compare\n- enforce immutability on\n[…]\n, groups, acceleratable,\n unit resources, local storage) cases, plus a legacy-compat regression\n\nTask 2 of instancetype-spec-immutability-and-cpu-unit.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): freeze instancetype spec on update except displayname a…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-13T08:03:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c0d4a01f6e8820c4af69d1d75cc812e33bea0eea",
"body": "- branch validateInstanceTypeUnitSpec on acceleratable: a\n non-acceleratable type now requires unit cpu to parse to exactly 1,\n while an acceleratable type keeps the positive-integer / no-suffix rule\n- correct the InstanceTypeUnitResources.CPU doc comment (cores, not\n milli-cores)\n- add an acceleratable test fixture and a non-accel unit-cpu==1 matrix\n\nTask 1 of instancetype-spec-immutability-and-cpu-unit.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): pin cpu-only instancetype unit cpu to 1 core",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-13T08:03:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28ef5784f964fc059de3c85e895b6ef90820c7a8",
"body": "- update the CPU-agnostic guard-path case to expect DisplayName\n \"CPU-only\", matching the behavior added in 2b699d3\n- fix the stale doc comment on TestInstanceTypeWebhook_DefaultDisplayName\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "test(worker): align cpu-agnostic displayname assertion with backport",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-13T08:03:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dade38e35936fde96458308692310ca458abbec8",
"body": "Let the gpustack-operator-release skill re-cut an existing vX.Y.Z under\nthe same version, for fixing a mis-tagged commit, a bad build, or notes\nthat need a full redo.\n\nOverwrite is delete + recreate (never force-push): Phase 1 detects an\nexisting tag and asks whether to pick a new version, overwrite\n[…]\nn extra confirm\nwhen the target is a promoted GA or holds the Latest badge. Phase 6\nre-promotes a formerly-promoted GA that CI rebuilt as a pre-release.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(skills): support overwrite (re-publish) in release skill",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-13T03:31:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2b699d3dad05656e4e9505d6141b251aba3e04e8",
"body": "… type\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "refactor(worker): backport display name to non-acceleratable instance…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-13T02:35:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "235b1c03e0f26aa3038d07e881f8d246e1b4ed85",
"body": "- Reformat prose into tables/bullets and ASCII flow diagrams (my-* style)\n- Fold the e2e case prose into a Case-table Needs column\n- Defer duplicated orchestration/flow detail to the shared orchestration.md\n- Preserve all frontmatter, commands, case tables, and hard rules verbatim\n\nTrims the six SKILL.md bodies ~25% (895 to 669 lines) with no behavioral change.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(skills): slim gpustack-operator SKILL.md files",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-13T02:25:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a57811896b86c5d7c2b09db77d6040756d8e2c22",
"body": "Signed-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "test: bump terraform modules version",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-13T02:25:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d04c5653882bfae3b9a3eea66d2cdf44d896c7a2",
"body": "…hip with the shipped model\n\n- rewrite the running-instance stop paragraph: the stop reads the backing\n ClusterQueue StopPolicy (HoldAndDrain, or the InstanceType deleted/gone), an\n admin Hold keeps running Pods, and a ClusterQueue watch drives it while the\n InstanceType watch is narrowed to the \n[…]\ns\n one-way sticky backfill, and split StopPolicy ownership across the two\n reconcilers (Hold<->None vs HoldAndDrain) in both the prose and the diagram\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(architecture): align running-instance stop and StopPolicy owners…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-12T15:50:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "538e237d397f4198e062f904c60c68d85abe7784",
"body": "- The worker's webhook serving cert (<release>-worker-cert) and the delegated\n editable-settings store (gpustack-settings) are provisioned at runtime, not by\n helm templating, so `helm uninstall` left them behind in the namespace.\n- Delete both by fixed name in the post-delete cleanup hook, and mi\n[…]\n standalone GPUStack app's\n own secrets are untouched.\n\nFound while tearing down the live e2e for the instancetype-inactive-and-aggregation-phase spec.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(chart): remove worker-provisioned secrets on uninstall",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-12T15:50:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e3952a67025ecaec3695cf65940667fd55d42d27",
"body": "- add Phase to AggregatedInstanceTypeOnceMaxRequestCandidate, populated at\n every candidate-construction site (Next + the three Handle sites)\n- tier Recompute counts only Active candidates toward OnceMaxRequest/Remaining;\n non-Active candidates stay listed but contribute zero and never seed\n- item\n[…]\nDisplayName\n- match Handle tier identity on the stable Candidates[0].Accelerator.OnceMaxRequest\n\nTask T5 of instancetype-inactive-and-aggregation-phase.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(workergateway): filter aggregated instance types by candidate phase",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-12T15:50:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3578ca2d8c8ee19766cb02b335360301bc95b625",
"body": "- Default webhook: clear manufacturer/product/family and skip enrichment for\n a CPU-manufacturer-agnostic type (awareness off and not acceleratable), so\n no arbitrary flavor identity is stamped onto the collapsed pool\n- Default webhook: default DisplayName to Product (preserving an admin value);\n \n[…]\nnceType\n- rewrite the awareness-off webhook test and add DisplayName + empty-manufacturer cases\n\nTask T4 of instancetype-inactive-and-aggregation-phase.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): make cpu-agnostic instance types carry no manufacturer",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-12T15:50:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6df8bac7a268ca9d317f9d47bb6dac05283cf50c",
"body": "… policy\n\n- stop a running instance when its type is gone or being deleted, or when its\n backing ClusterQueue is HoldAndDrain (a pool drain or a teardown that evicts\n admitted workloads); a Hold-Inactive type keeps its running Pods and a new\n Instance under it simply stays pending\n- read the back\n[…]\ne; align the case-2 e2e and its drain-recycle\n reference to the StopPolicy-based log and watch\n\nTask T3 of instancetype-inactive-and-aggregation-phase.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): drive instance stop from the backing cluster queue stop…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-12T15:50:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0adeb9b38d9054cdbc69b8c2c90f03592a8e524f",
"body": "- add syncInactive converging Spec.Inactive and the queue StopPolicy per a\n forward-before-mirror truth table: Inactive drives the Hold<->None pair,\n a stopped queue backfills Inactive=true one-way, HoldAndDrain is never\n downgraded and never cleared on None (memoryless, non-oscillating)\n- run th\n[…]\nlect the Hold<->None ownership\n- cover all six truth-table rows plus post-convergence stability\n\nTask T2 of instancetype-inactive-and-aggregation-phase.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): sync instancetype inactive with cluster queue stop policy",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-12T15:50:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6e0df36ab369817ac1f201637237633487121d23",
"body": "- map HoldAndDrain to Draining when reserved, else Inactive; Hold to Inactive\n- add local clusterQueueHasReserved mirroring the node queue check\n- pass the full ClusterQueue and simplify the draining check in computeStatus\n- cover all four summary branches in a new table test\n\nTask T1 of instancetype-inactive-and-aggregation-phase.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(apistatus): derive cluster queue phase from stop policy",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-12T15:50:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6103d5d7179aa6390dba74de1fa9766c08576cf1",
"body": "… Stop to bool\n\n- add InstanceTypeSpec.DisplayName (maxLength=64) and Inactive fields\n- change InstanceSpec.Stop from *bool to bool; drop ptr wrappers at call sites\n- regenerate protobuf, deepcopy, CRD, openapi and applyconfiguration\n\nTask T0 of instancetype-inactive-and-aggregation-phase.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(api): add InstanceType Inactive/DisplayName and migrate Instance…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-12T15:50:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "648d0b713ea58bce30d35f34afcb2a29f6d668a7",
"body": "Phase 7 only asserted isPrerelease/isDraft, which cannot prove the Latest\nbadge actually landed. Add a repo latest-release check against $VER and\nexplain why isLatest is not a valid gh release view --json field (it is a\nrepo-level pointer, not a per-release property).\n\nPhase 0 called `make version`, for which this repo has no target; replace\nit with a note that the version is derived from the git tag at build time\nvia ldflags.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "chore(release-skill): verify Latest badge and drop dead make version",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T14:12:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "618e7b16cab06b56ddeb825e2030a05c9334d32f",
"body": "Turn AggregatedInstanceTypeFlavorSpec from an alias into a struct that\nembeds InstanceTypeFlavorSpec and adds a Clusters field, then have the\naggregate list operator accumulate every contributing cluster per spec\ninstead of only deduplicating. Result sorts each item's Clusters so the\noutput is deterministic regardless of cluster iteration order.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(workergateway): populate clusters in aggregated instancetypeflavor",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T11:40:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eaa150ce526727ea31bdf6e9427a3e2fbf65ace6",
"body": "- separate the built-in application settings with blank lines\n- collapse the Node/InstanceType management doc block into a section marker\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "style(settings): tidy editable settings comments and spacing",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T10:51:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bda6d094b7898589433a0c17b4ebbdc08d47d866",
"body": "…list\n\n- retain the typed client on _Worker for on-demand listing\n- add defaultListerFactories covering all worker GVKs via a generic listAll + kmeta.EachListItem\n- IterateWorkers lists live when a GVK has no informer, else skips; a failed cluster list is skipped\n- drop defaultGVKs: subscribing with\n[…]\nformer worker stays registered\n- cover the zero-informer Subscribe lifecycle with a regression test\n\nTask 3 of workergateway-instancetypeflavor-listing.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(workergateway): proxy informer-less gvks via a live per-cluster …",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T10:51:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0cfdf68dcc4b59f3f0a7b36a86dfe1609d3a0d78",
"body": "- table-driven cases for per-cluster tagging and empty result\n- aggregate dedup by Spec, differing specs preserved\n- sorted ordering: accelerated first then name, deterministic within groups\n- Next rejects non-flavor objects\n\nTask 2 of workergateway-instancetypeflavor-listing.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "test(workergateway): cover instancetypeflavor list operators",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T10:51:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae743aee2fb7afbd82cc33a2c9b8c95191787108",
"body": "- add OpListClusterInstanceTypeFlavors: tag each cluster's flavors by cluster\n- add OpListAggregateInstanceTypeFlavors: dedup flavors by Spec, sort accelerated-first then name\n- wire GET /instancetypeflavors to both operators via IterateWorkers\n\nTask 1 of workergateway-instancetypeflavor-listing.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(workergateway): add cross-cluster instancetypeflavor list operators",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T10:51:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "512f5dc8aff229776b546d8bd851042ba8fcde6f",
"body": "- match the exact pinned sftp-server path so an exec command ending in\n /sftp-server is not silently rerouted to the sftp branch\n- stage the sftp-server atomically (temp inode then rename) so a concurrent\n session cannot hit ETXTBSY or a partial-write window\n- require EPERM (rc==1) in the case-21 mknod check, not any non-zero rc\n\nFollows the end-of-build review of ssh-instance-noninteractive-ssh.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(ssh-server): harden the sftp subsystem dispatch",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T06:55:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e161c5ec860e0645c0007d22084366b48f9a1938",
"body": "- document a VS Code Remote-SSH connect + integrated terminal in main\n- document an sshfs mount round-trip through the bundled sftp-server\n- link the runbook from the e2e skill references\n\nTask 4.2 of ssh-instance-noninteractive-ssh.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(e2e): add a manual ssh-instance verification runbook",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T06:55:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b4f09241fe7233615e52a7e994ed96a1184d556e",
"body": "- add an sftp put/get round-trip check to case-21\n- assert the uploaded file lands in main's filesystem, not the sidecar\n- renumber the port-forward step and refresh the case header + SKILL.md prose\n\nTask 4.1 of ssh-instance-noninteractive-ssh.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "test(e2e): assert the sftp round-trip in the non-interactive ssh case",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T06:55:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8be026589a1b96e0ecd9fa062efc6a79bc997f9a",
"body": "- point instance-ssh-server-image at gpustack/ssh-server:v1.3.0\n- sync the default in docs/settings.md\n\nTask 3.2 of ssh-instance-noninteractive-ssh.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "build(settings): bump the default ssh-server image to v1.3.0",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T06:55:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "198512277a33d685765813d05615b2fca1b454b0",
"body": "- add an sftp branch to chroot.sh matching the pinned sftp-server path and internal-sftp\n- stage the bundled static server into the target's /tmp before the cap-drop\n- run it inside the target's rootfs so sftp/sshfs/scp operate on main's files\n- keep the same confinement and suppress the banner on this path\n\nTask 2.2 of ssh-instance-noninteractive-ssh.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(ssh-server): serve the sftp subsystem from within the target",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T06:55:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cbf49f2c54b69cc8ec50cd608e7e81ddca6dc509",
"body": "- add a cross-compiled build stage for a CGO-free github.com/pkg/sftp server\n- serve SFTP over stdin/stdout so sshd can invoke it as the sftp subsystem\n- pin pkg/sftp v1.13.7 and strip the binary\n- COPY it into the image at /usr/local/bin/gpustack-sftp-server for staging into main\n\nTask 2.1 of ssh-instance-noninteractive-ssh.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "build(ssh-server): bundle a static sftp-server binary",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T06:55:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5b8784ac8bffccdde8b5aff888645331020c3da8",
"body": "- replace Alpine's active `AllowTcpForwarding no` with `yes` so port-forwarding works\n- add `AllowStreamLocalForwarding yes` for unix-socket forwarding\n- pin `Subsystem sftp /usr/lib/ssh/sftp-server`, replacing the shipped internal-sftp\n- drop the shipped active lines first so sshd reads exactly ours (no duplicate Subsystem)\n\nTask 1.2 of ssh-instance-noninteractive-ssh.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(ssh-server): enable ssh forwarding and pin the sftp subsystem",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T06:55:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6a900f00b45ab89e3fffeffe0f07a7492dac61c6",
"body": "- dispatch chroot.sh on $SSH_ORIGINAL_COMMAND instead of always launching a login shell\n- empty request keeps the interactive banner + login shell, byte-for-byte\n- a command request runs `$SHELL -c \"<cmd>\"` in the target with no banner\n- factor the nsenter+chroot+cap-drop chain into a shared enter()\n[…]\npath stays confined\n- move the tty clear into the interactive branch so it never corrupts a command stream\n\nTask 1.1 of ssh-instance-noninteractive-ssh.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(ssh-server): run non-interactive ssh requests in the target",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T06:55:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9a5d0e31ad9b4f98819b97297f24bcd7214afebf",
"body": "- add case-21 asserting `ssh host '<cmd>'` runs in main with no banner\n- assert the exec path is capability-stripped and host mknod denied\n- keep interactive login (banner + shell) as a regression guard\n- round-trip a loopback tcp port-forward through the instance\n- register case 21 in the e2e skill case table and prose\n\nTask 0.1 of ssh-instance-noninteractive-ssh.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "test(e2e): add non-interactive ssh instance case",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-10T06:55:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90dbc4354a5ede4bdb611bee36d77ad76e4c7b93",
"body": "The Kueue 0.18 chart's Workload CRD declares selectableFields, which the\napiserver only accepts on Kubernetes 1.31+. Install the 0.17 chart on older\nclusters while always running the 0.18 controller image: it supports\nQuotaCheckStrategy and works unchanged against the 0.17 CRDs (the controller\nnever\n[…]\nundle both Kueue charts in the image; lower the operator chart's kubeVersion\n floor to >=1.23\n- add helm.Client.KubeVersion to read the cluster version\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(chart): run kueue on kubernetes down to 1.23",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-09T14:05:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3d8e40102736c31f91a12637919b9e4c6e6cf5d0",
"body": "Replace the per-version kind-config files with a single\nkind-config.yaml.tmpl and render it per matrix leg in the ci-chart\nlint-test job, covering v1.23 through v1.35 (every other minor). The\nrendered config lands in $RUNNER_TEMP, so it never touches the repo.\n\nDecouple releases from the version matrix: lint-test is skipped on tag\npushes and pack no longer depends on it.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "ci(chart): matrix-test kind across k8s versions via config template",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-09T14:05:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1fa523d7d1b06744369730bc3986e6607c0a488a",
"body": "Signed-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "refactor: enhance release skill",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-09T08:57:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3646cd5b1974923d322822458da1e7d8630cc65f",
"body": "Signed-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "refactor: adjust code base",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-09T02:13:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68c4f21096089ff9fd9843569bbd4daae83dc380",
"body": "Signed-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs: architecture and walkthrough",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-09T00:49:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c7795096d0370a67443063ce31a625de12dfdbe6",
"body": "…architecture\n\n- add docs/walkthrough.md: a recorded run on a live cluster, all real kubectl output\n- section 1 lists every materialized object (real kubectl get) + per-type labels/spec as expanded YAML\n- each operation shows a before/after kubectl get instancetypes comparison: node management remov\n[…]\nycle, and enabling CPU-manufacturer awareness\n- reference it from the architecture Example section\n- node names genericized; no cloud/provider specifics\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(walkthrough): add a live end-to-end walkthrough referenced from …",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4734ee0502cae7e8904980bdc48f88a002378816",
"body": "- set Status to Shipped\n- clarify the migration Non-Goal: no operator-automatic migration; an admin cleanup script handles the old-scheme orphans (the single-dash v0.6.0-2 line never shipped, so the real path is v0.5.x → this release, both double-dash)\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(spec): mark instancetype-cpu-manufacturer-awareness shipped",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a4af23be2d21da83c0a080d85d9d3aaa929ae8f2",
"body": "…le takes effect\n\n- replace the flavor note set wholesale instead of a subset overwrite, so cpuDetail is added when awareness flips on and removed when it flips off\n- add syncNodeFlavorNotes with a regression test covering add/remove/no-op/retired-note\n- reserve room for the .count/.capacity suffix \n[…]\nent the aware generic CPU pool over-count as a known limitation in the spec\n\nFollows the end-of-build review of instancetype-cpu-manufacturer-awareness.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(worker): sync resource flavor notes exactly so the cpudetail togg…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "57cc011b30beb58cc634775cbdc67c12f3b4de3c",
"body": "….6.x scheme\n\n- correct the v0.5-to-v0.6 guide's v0.6.x endpoint to the double-dash split names\n- move the orphan discriminator off the bare gpustack-- prefix (now also v0.6.x)\n- key the cleanup on the v0.5.x-only -Nc-Ng unit-spec so it never deletes the v0.6.x chain\n- note v0.5.x InstanceTypes were\n[…]\ncts\n- validate on the live cluster: a hand-created v0.5.x set is removed, the v0.6.x chain untouched\n\nTask 8 of instancetype-cpu-manufacturer-awareness.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(migration): retarget the v0.5→v0.6 cleanup to the double-dash v0…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2032e29e01ac0d40ac92dd3ed5e7f07a6d66ceaf",
"body": "- parseResourceFlavorCapacity reads the flavor's own-key capacity (acceleratable when accelerated, else general), scoped by the feature.gpustack.ai/acceleratable boolean and skipping a key with no .capacity — Go's map iteration otherwise read the general.<gKey> key (no .capacity sibling, added when \n[…]\nmap-order); the real-key Devices sync + stale-key drop; the .count-tolerant candidate-devices lookup\n\nTask 7 of instancetype-cpu-manufacturer-awareness.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "fix(worker): propagate the real cpu key so accelerated pools admit",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "65eace3d90f59f7e7658edb371d0e8ccc4b9a51a",
"body": "- add case-18: finest double-dash CPU flavor + cpuDetail note; awareness toggle collapses/splits the InstanceTypeFlavor catalog without rewriting flavors; trap restores the setting and removes aware-window derived types\n- add case-19: awareness on splits the accelerated type by CPU with the real GPU\n[…]\nvalues contract + remote-builder mirror procedure) and a troubleshooting accelerator-detection guard\n\nTask 6 of instancetype-cpu-manufacturer-awareness.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "test(e2e): cover cpu-manufacturer awareness and reconcile the suite",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bbdda0dd97090e25193b52076bcc2bcfba5c396e",
"body": "…kage task\n\n- add Task 8: migration guide + orphan-cleanup script for the single-dash -> double-dash rename and the InstanceType Group split, validated on a live cluster\n- tie the name-scheme risk to the Task 8 mitigation\n- keep the builder host / cluster out of tracked files (supplied at run time)\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(spec): plan the gpustack-- migration (task 8) and refine the pac…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "88da1ac50af2b62d00d7979ba7619dec6e830b1f",
"body": "- architecture: general key always CPU-accurate; finest-grain flavors + acceleratable discriminator + cpuDetail; collapse/split naming + rewritten worked example\n- settings: add instance-type-aware-cpu-manufacturer; drop the deleted GPUSTACK_GENERAL_NODE_KEY_WITH_CPU_NAME env var\n- readme: note the optional CPU-manufacturer pool split\n\nTask 5 of instancetype-cpu-manufacturer-awareness.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs: document cpu-manufacturer awareness",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0334314fcb69e358e3a38652d884b50616086714",
"body": "- InstanceTypeFlavorSpec: rename Group -> AcceleratorGroup (proto 1), add GeneralGroup (proto 9)\n- OnList groups per instance-type-aware-cpu-manufacturer (read from remote): off collapses generic to one row + per-accelerator rows; on splits per-gKey / per-(gKey,aKey)\n- name rows gpustack--... (no os\n[…]\nrop the transitional group note now the catalog reads generalGroup/acceleratorGroup\n- regenerate api\n\nTask 4 of instancetype-cpu-manufacturer-awareness.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): make the instancetypeflavor catalog cpu-manufacturer aware",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "73e630a9d66fdf04a79dab14dac2777f391e162f",
"body": "- foldCPUDetail unmarshals the flavor cpuDetail note into the acceleratable-correct target: spec.Accelerator.CPU (accelerated) or the embedded spec.CPU (generic)\n- webhook Default folds it only when instance-type-aware-cpu-manufacturer is true\n- ignore json errors via pkg/utils/json Should* (cpuDetail is nice-to-have)\n- unit-test the JSON<->spec round-trip and the unaware skip gate\n\nTask 3 of instancetype-cpu-manufacturer-awareness.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): fold cpu detail into the instance type when aware",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc8f5b96fbe4a730ed7a0aa5774634fc2833435d",
"body": "- rename InstanceType spec Group -> AcceleratorGroup, add GeneralGroup (proto 12, last)\n- consolidate the label algebra in nodefeature: PoolScheduleLabels, PoolFlavorSelector, NodeFlavor.DerivedInstanceTypeIdentity\n- webhook defaults GeneralGroup to the \"generic\" sentinel; validation requires Accele\n[…]\nsubset-match so a collapsed queue is not missed\n- regenerate api (pb/crd/openapi/applyconfiguration)\n\nTask 2 of instancetype-cpu-manufacturer-awareness.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): make the aggregation layer cpu-manufacturer aware",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "db2cb0e49cb1f60b57554aad6f310cb4d5a6dd16",
"body": "- add instance-type-aware-cpu-manufacturer setting (default false)\n- always blend the node's real cpu identity into the general key; drop the startup toggle\n- align NodeFlavor to InstanceType: GeneralKey + AcceleratorKey (+ OwnKey), drop polymorphic Key\n- name flavors gpustack--${gKey}[--${aKey}]-${\n[…]\n flavors, aware-gated for accelerated)\n- drop the .count sizing pin from the Devices selector labels\n\nTask 1 of instancetype-cpu-manufacturer-awareness.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "feat(worker): reflect real cpu into finest-grain flavors",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T15:07:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e7f444919c289bbfa1c102ad428b5d229059adbf",
"body": "Signed-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "refactor(extensionapis): adjust instance type flavor",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-08T01:30:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "89d2e2108afa10d9908fb40504049d133f2df04e",
"body": "- advance Status from Built to Shipped after the full ship verification\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs(spec): mark instancetype-declarative-management shipped",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-07T15:32:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "666ba6a306295d144ff065fd9df0d0fb5f99833e",
"body": "- rewrite every operator-e2e case header (case-1..case-17) to a six-field template: title + mutation posture, Goal, Environment (incl. auto-skip), Inputs (MOCKED vs real), Expected, Cleanup\n- rewrite the chart-e2e case headers (case-1..case-3) to the same template\n- drop all spec anchors from the sc\n[…]\nno-spec-anchors rule into both SKILL.md files as a \"Case header contract\" section\n- de-anchor the operator-e2e case table (drop the (Story) column tags)\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "test(e2e): generalize case headers to a spec-anchor-free contract",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-07T15:32:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8820129e559075a7fd6c937e33f34136f42182c8",
"body": "…ship split\n\n- architecture.md Stage 4: split the reconciler ownership — NodeQueueReconciler\n owns the quota / StopPolicy / AdmissionCheck ref / drain (incl. treating a\n terminating flavor as absent), InstanceTypeReconciler is narrowed to the CQ's\n existence + labels + isolation + status with rec\n[…]\n7 done; note the terminating-flavor drain\n semantics; drop the dead ClusterQueue memory-note references\n\nTask 5 of instancetype-declarative-management.\n\nSigned-off-by: thxCode <thxcode0824@gmail.com>",
"is_bot": false,
"headline": "docs: sync architecture/settings/dev/README + spec to the queue-owner…",
"author_name": "thxCode",
"author_login": "thxCode",
"committed_at": "2026-07-07T15:32:33Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 12,
"commits_last_year": 389,
"latest_release_at": "2026-07-23T16:04:12Z",
"latest_release_tag": "v0.7.1",
"releases_from_tags": false,
"days_since_last_push": 1,
"active_weeks_last_year": 13,
"days_since_latest_release": 2,
"mean_days_between_releases": 2.3
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 87,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": []
},
"popularity": {
"forks": 0,
"stars": 1,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 1
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"example",
"examples",
"sample"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile",
"staging/github.com/gogo/protobuf/Makefile",
"staging/github.com/gogo/protobuf/conformance/Makefile",
"staging/github.com/gogo/protobuf/gogoproto/Makefile",
"staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/Makefile",
"staging/github.com/gogo/protobuf/proto/Makefile",
"staging/github.com/gogo/protobuf/proto/proto3_proto/Makefile",
"staging/github.com/gogo/protobuf/proto/test_proto/Makefile",
"staging/github.com/gogo/protobuf/protobuf/Makefile",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/Makefile",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/plugin/Makefile",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile",
"staging/github.com/gogo/protobuf/test/Makefile",
"staging/github.com/gogo/protobuf/test/asymetric-issue125/Makefile",
"staging/github.com/gogo/protobuf/test/cachedsize/Makefile",
"staging/github.com/gogo/protobuf/test/casttype/Makefile",
"staging/github.com/gogo/protobuf/test/castvalue/Makefile",
"staging/github.com/gogo/protobuf/test/custombytesnonstruct/Makefile",
"staging/github.com/gogo/protobuf/test/data/Makefile",
"staging/github.com/gogo/protobuf/test/deterministic/Makefile",
"staging/github.com/gogo/protobuf/test/empty-issue70/Makefile",
"staging/github.com/gogo/protobuf/test/enumcustomname/Makefile",
"staging/github.com/gogo/protobuf/test/enumdecl/Makefile",
"staging/github.com/gogo/protobuf/test/enumdecl_all/Makefile",
"staging/github.com/gogo/protobuf/test/enumprefix/Makefile",
"staging/github.com/gogo/protobuf/test/enumstringer/Makefile",
"staging/github.com/gogo/protobuf/test/example/Makefile",
"staging/github.com/gogo/protobuf/test/filedotname/Makefile",
"staging/github.com/gogo/protobuf/test/fuzztests/Makefile",
"staging/github.com/gogo/protobuf/test/group/Makefile",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/Makefile",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/imported/Makefile",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/importing/Makefile",
"staging/github.com/gogo/protobuf/test/importdedup/Makefile",
"staging/github.com/gogo/protobuf/test/importduplicate/Makefile",
"staging/github.com/gogo/protobuf/test/indeximport-issue72/Makefile",
"staging/github.com/gogo/protobuf/test/int64support/Makefile",
"staging/github.com/gogo/protobuf/test/issue260/Makefile",
"staging/github.com/gogo/protobuf/test/issue261/Makefile",
"staging/github.com/gogo/protobuf/test/issue262/Makefile",
"staging/github.com/gogo/protobuf/test/issue312/Makefile",
"staging/github.com/gogo/protobuf/test/issue312/events/Makefile",
"staging/github.com/gogo/protobuf/test/issue322/Makefile",
"staging/github.com/gogo/protobuf/test/issue330/Makefile",
"staging/github.com/gogo/protobuf/test/issue34/Makefile",
"staging/github.com/gogo/protobuf/test/issue411/Makefile",
"staging/github.com/gogo/protobuf/test/issue427/Makefile",
"staging/github.com/gogo/protobuf/test/issue42order/Makefile",
"staging/github.com/gogo/protobuf/test/issue435/Makefile",
"staging/github.com/gogo/protobuf/test/issue438/Makefile",
"staging/github.com/gogo/protobuf/test/issue444/Makefile",
"staging/github.com/gogo/protobuf/test/issue449/Makefile",
"staging/github.com/gogo/protobuf/test/issue498/Makefile",
"staging/github.com/gogo/protobuf/test/issue503/Makefile",
"staging/github.com/gogo/protobuf/test/issue530/Makefile",
"staging/github.com/gogo/protobuf/test/issue617/Makefile",
"staging/github.com/gogo/protobuf/test/issue620/Makefile",
"staging/github.com/gogo/protobuf/test/issue630/Makefile",
"staging/github.com/gogo/protobuf/test/issue8/Makefile",
"staging/github.com/gogo/protobuf/test/mapdefaults/Makefile",
"staging/github.com/gogo/protobuf/test/mapsproto2/Makefile",
"staging/github.com/gogo/protobuf/test/merge/Makefile",
"staging/github.com/gogo/protobuf/test/moredefaults/Makefile",
"staging/github.com/gogo/protobuf/test/nopackage/Makefile",
"staging/github.com/gogo/protobuf/test/oneof/Makefile",
"staging/github.com/gogo/protobuf/test/oneof3/Makefile",
"staging/github.com/gogo/protobuf/test/oneofembed/Makefile",
"staging/github.com/gogo/protobuf/test/packed/Makefile",
"staging/github.com/gogo/protobuf/test/proto3extension/Makefile",
"staging/github.com/gogo/protobuf/test/protobuffer/Makefile",
"staging/github.com/gogo/protobuf/test/protosize/Makefile",
"staging/github.com/gogo/protobuf/test/registration/Makefile",
"staging/github.com/gogo/protobuf/test/required/Makefile",
"staging/github.com/gogo/protobuf/test/setextensionbytes/Makefile",
"staging/github.com/gogo/protobuf/test/sizeunderscore/Makefile",
"staging/github.com/gogo/protobuf/test/stdtypes/Makefile",
"staging/github.com/gogo/protobuf/test/tags/Makefile",
"staging/github.com/gogo/protobuf/test/theproto3/Makefile",
"staging/github.com/gogo/protobuf/test/typedecl/Makefile",
"staging/github.com/gogo/protobuf/test/typedecl_all/Makefile",
"staging/github.com/gogo/protobuf/test/typedeclimport/Makefile",
"staging/github.com/gogo/protobuf/test/types/Makefile",
"staging/github.com/gogo/protobuf/test/unmarshalmerge/Makefile",
"staging/github.com/gogo/protobuf/test/unrecognized/Makefile",
"staging/github.com/gogo/protobuf/test/unrecognizedgroup/Makefile",
"staging/github.com/gogo/protobuf/test/xxxfields/Makefile",
"staging/github.com/gogo/protobuf/vanity/test/Makefile"
],
"api_schema_files": [
"api/v1/generated.proto",
"api/worker/v1/generated.proto",
"api/worker/v1alpha1/generated.proto",
"staging/github.com/gogo/protobuf/conformance/internal/conformance_proto/conformance.proto",
"staging/github.com/gogo/protobuf/gogoproto/gogo.proto",
"staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto",
"staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto",
"staging/github.com/gogo/protobuf/proto/proto3_proto/proto3.proto",
"staging/github.com/gogo/protobuf/proto/test_proto/test.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/api.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/empty.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/field_mask.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/source_context.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/struct.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/type.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/deprecated/deprecated.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base/extension_base.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra/extension_extra.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_user/extension_user.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc_empty.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/a.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/b.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/importing/importing.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/a.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/b.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt/m.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m1.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m2.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m3.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m4.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m1.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m2.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m1.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m2.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_all.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi1.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi2.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi3.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3/proto3.proto",
"staging/github.com/gogo/protobuf/test/asymetric-issue125/asym.proto",
"staging/github.com/gogo/protobuf/test/cachedsize/cachedsize.proto",
"staging/github.com/gogo/protobuf/test/casttype/casttype.proto",
"staging/github.com/gogo/protobuf/test/casttype/combos/both/casttype.proto",
"staging/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.proto",
"staging/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.proto",
"staging/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.proto",
"staging/github.com/gogo/protobuf/test/castvalue/castvalue.proto",
"staging/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.proto",
"staging/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.proto",
"staging/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.proto",
"staging/github.com/gogo/protobuf/test/combos/both/thetest.proto",
"staging/github.com/gogo/protobuf/test/combos/marshaler/thetest.proto",
"staging/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.proto",
"staging/github.com/gogo/protobuf/test/custombytesnonstruct/proto.proto",
"staging/github.com/gogo/protobuf/test/dashfilename/dash-filename.proto",
"staging/github.com/gogo/protobuf/test/data/data.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/df.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/dg.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/nc.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/ne.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/nx.proto",
"staging/github.com/gogo/protobuf/test/deterministic/deterministic.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/eb.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/ec.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/ee.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/em.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/en.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/er.proto",
"staging/github.com/gogo/protobuf/test/empty-issue70/empty.proto",
"staging/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.proto",
"staging/github.com/gogo/protobuf/test/enumdecl/enumdecl.proto",
"staging/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.proto",
"staging/github.com/gogo/protobuf/test/enumprefix/enumprefix.proto",
"staging/github.com/gogo/protobuf/test/enumstringer/enumstringer.proto",
"staging/github.com/gogo/protobuf/test/example/example.proto",
"staging/github.com/gogo/protobuf/test/filedotname/file.dot.proto",
"staging/github.com/gogo/protobuf/test/fuzztests/fuzz.proto",
"staging/github.com/gogo/protobuf/test/group/group.proto",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/imported/a.proto",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/importing/c.proto",
"staging/github.com/gogo/protobuf/test/importdedup/proto.proto",
"staging/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.proto",
"staging/github.com/gogo/protobuf/test/importduplicate/importduplicate.proto",
"staging/github.com/gogo/protobuf/test/importduplicate/proto/proto.proto",
"staging/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.proto",
"staging/github.com/gogo/protobuf/test/indeximport-issue72/index/index.proto",
"staging/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.proto",
"staging/github.com/gogo/protobuf/test/int64support/object.proto",
"staging/github.com/gogo/protobuf/test/issue260/issue260.proto",
"staging/github.com/gogo/protobuf/test/issue261/issue261.proto",
"staging/github.com/gogo/protobuf/test/issue262/timefail.proto",
"staging/github.com/gogo/protobuf/test/issue270/a/a1.proto",
"staging/github.com/gogo/protobuf/test/issue270/a/a2.proto",
"staging/github.com/gogo/protobuf/test/issue270/b/b.proto",
"staging/github.com/gogo/protobuf/test/issue312/events/events.proto",
"staging/github.com/gogo/protobuf/test/issue312/issue312.proto",
"staging/github.com/gogo/protobuf/test/issue322/issue322.proto",
"staging/github.com/gogo/protobuf/test/issue330/issue330.proto",
"staging/github.com/gogo/protobuf/test/issue34/proto.proto",
"staging/github.com/gogo/protobuf/test/issue411/issue411.proto",
"staging/github.com/gogo/protobuf/test/issue427/issue427.proto",
"staging/github.com/gogo/protobuf/test/issue42order/issue42.proto",
"staging/github.com/gogo/protobuf/test/issue435/issue435.proto",
"staging/github.com/gogo/protobuf/test/issue438/issue438.proto",
"staging/github.com/gogo/protobuf/test/issue444/issue444.proto",
"staging/github.com/gogo/protobuf/test/issue449/issue449.proto",
"staging/github.com/gogo/protobuf/test/issue498/issue498.proto",
"staging/github.com/gogo/protobuf/test/issue503/issue503.proto",
"staging/github.com/gogo/protobuf/test/issue530/issue530.proto",
"staging/github.com/gogo/protobuf/test/issue617/issue617.proto",
"staging/github.com/gogo/protobuf/test/issue620/issue620.proto",
"staging/github.com/gogo/protobuf/test/issue630/issue630.proto",
"staging/github.com/gogo/protobuf/test/issue8/proto.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/map.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/header.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/merge/merge.proto",
"staging/github.com/gogo/protobuf/test/moredefaults/md.proto",
"staging/github.com/gogo/protobuf/test/nopackage/nopackage.proto",
"staging/github.com/gogo/protobuf/test/oneof/combos/both/one.proto",
"staging/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.proto",
"staging/github.com/gogo/protobuf/test/oneof/combos/neither/one.proto",
"staging/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.proto",
"staging/github.com/gogo/protobuf/test/oneof/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/combos/both/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/combos/neither/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/one.proto",
"staging/github.com/gogo/protobuf/test/oneofembed/oneofembed.proto",
"staging/github.com/gogo/protobuf/test/packed/packed.proto",
"staging/github.com/gogo/protobuf/test/proto3extension/proto3ext.proto",
"staging/github.com/gogo/protobuf/test/protobuffer/protobuffer.proto",
"staging/github.com/gogo/protobuf/test/protosize/protosize.proto",
"staging/github.com/gogo/protobuf/test/registration/registration.proto",
"staging/github.com/gogo/protobuf/test/required/requiredexample.proto",
"staging/github.com/gogo/protobuf/test/setextensionbytes/setextensionbytes.proto",
"staging/github.com/gogo/protobuf/test/sizerconflict/sizerconflict.proto",
"staging/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.proto",
"staging/github.com/gogo/protobuf/test/stdtypes/stdtypes.proto",
"staging/github.com/gogo/protobuf/test/tags/tags.proto",
"staging/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.proto",
"staging/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.proto",
"staging/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.proto",
"staging/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.proto",
"staging/github.com/gogo/protobuf/test/theproto3/footer.proto",
"staging/github.com/gogo/protobuf/test/theproto3/header.proto",
"staging/github.com/gogo/protobuf/test/theproto3/maps.proto",
"staging/github.com/gogo/protobuf/test/theproto3/theproto3.proto",
"staging/github.com/gogo/protobuf/test/thetest.proto",
"staging/github.com/gogo/protobuf/test/typedecl/typedecl.proto",
"staging/github.com/gogo/protobuf/test/typedecl_all/typedeclall.proto",
"staging/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.proto",
"staging/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.proto",
"staging/github.com/gogo/protobuf/test/types/combos/both/types.proto",
"staging/github.com/gogo/protobuf/test/types/combos/marshaler/types.proto",
"staging/github.com/gogo/protobuf/test/types/combos/neither/types.proto",
"staging/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.proto",
"staging/github.com/gogo/protobuf/test/types/types.proto",
"staging/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.proto",
"staging/github.com/gogo/protobuf/test/unrecognized/unrecognized.proto",
"staging/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.proto",
"staging/github.com/gogo/protobuf/test/xxxfields/xxxfields.proto",
"staging/github.com/gogo/protobuf/vanity/test/gogovanity.proto",
"staging/github.com/gogo/protobuf/vanity/test/proto3.proto",
"staging/github.com/gogo/protobuf/vanity/test/vanity.proto",
"staging/k8s.io/api/admission/v1/generated.proto",
"staging/k8s.io/api/admission/v1beta1/generated.proto",
"staging/k8s.io/api/admissionregistration/v1/generated.proto",
"staging/k8s.io/api/admissionregistration/v1alpha1/generated.proto",
"staging/k8s.io/api/admissionregistration/v1beta1/generated.proto",
"staging/k8s.io/api/apidiscovery/v2/generated.proto",
"staging/k8s.io/api/apidiscovery/v2beta1/generated.proto",
"staging/k8s.io/api/apiserverinternal/v1alpha1/generated.proto",
"staging/k8s.io/api/apps/v1/generated.proto",
"staging/k8s.io/api/apps/v1beta1/generated.proto",
"staging/k8s.io/api/apps/v1beta2/generated.proto",
"staging/k8s.io/api/authentication/v1/generated.proto",
"staging/k8s.io/api/authentication/v1alpha1/generated.proto",
"staging/k8s.io/api/authentication/v1beta1/generated.proto",
"staging/k8s.io/api/authorization/v1/generated.proto",
"staging/k8s.io/api/authorization/v1beta1/generated.proto",
"staging/k8s.io/api/autoscaling/v1/generated.proto",
"staging/k8s.io/api/autoscaling/v2/generated.proto",
"staging/k8s.io/api/autoscaling/v2beta1/generated.proto",
"staging/k8s.io/api/autoscaling/v2beta2/generated.proto",
"staging/k8s.io/api/batch/v1/generated.proto",
"staging/k8s.io/api/batch/v1beta1/generated.proto",
"staging/k8s.io/api/certificates/v1/generated.proto",
"staging/k8s.io/api/certificates/v1alpha1/generated.proto",
"staging/k8s.io/api/certificates/v1beta1/generated.proto",
"staging/k8s.io/api/coordination/v1/generated.proto",
"staging/k8s.io/api/coordination/v1alpha2/generated.proto",
"staging/k8s.io/api/coordination/v1beta1/generated.proto",
"staging/k8s.io/api/core/v1/generated.proto",
"staging/k8s.io/api/discovery/v1/generated.proto",
"staging/k8s.io/api/discovery/v1beta1/generated.proto",
"staging/k8s.io/api/events/v1/generated.proto",
"staging/k8s.io/api/events/v1beta1/generated.proto",
"staging/k8s.io/api/extensions/v1beta1/generated.proto",
"staging/k8s.io/api/flowcontrol/v1/generated.proto",
"staging/k8s.io/api/flowcontrol/v1beta1/generated.proto",
"staging/k8s.io/api/flowcontrol/v1beta2/generated.proto",
"staging/k8s.io/api/flowcontrol/v1beta3/generated.proto",
"staging/k8s.io/api/imagepolicy/v1alpha1/generated.proto",
"staging/k8s.io/api/networking/v1/generated.proto",
"staging/k8s.io/api/networking/v1beta1/generated.proto",
"staging/k8s.io/api/node/v1/generated.proto",
"staging/k8s.io/api/node/v1alpha1/generated.proto",
"staging/k8s.io/api/node/v1beta1/generated.proto",
"staging/k8s.io/api/policy/v1/generated.proto",
"staging/k8s.io/api/policy/v1beta1/generated.proto",
"staging/k8s.io/api/rbac/v1/generated.proto",
"staging/k8s.io/api/rbac/v1alpha1/generated.proto",
"staging/k8s.io/api/rbac/v1beta1/generated.proto",
"staging/k8s.io/api/resource/v1/generated.proto",
"staging/k8s.io/api/resource/v1alpha3/generated.proto",
"staging/k8s.io/api/resource/v1beta1/generated.proto",
"staging/k8s.io/api/resource/v1beta2/generated.proto",
"staging/k8s.io/api/scheduling/v1/generated.proto",
"staging/k8s.io/api/scheduling/v1alpha1/generated.proto",
"staging/k8s.io/api/scheduling/v1beta1/generated.proto",
"staging/k8s.io/api/storage/v1/generated.proto",
"staging/k8s.io/api/storage/v1alpha1/generated.proto",
"staging/k8s.io/api/storage/v1beta1/generated.proto",
"staging/k8s.io/api/storagemigration/v1beta1/generated.proto",
"staging/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto",
"staging/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto",
"staging/k8s.io/apiextensions-apiserver/pkg/apiserver/testdata/swagger.json",
"staging/k8s.io/apimachinery/pkg/api/resource/generated.proto",
"staging/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto",
"staging/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto",
"staging/k8s.io/apimachinery/pkg/apis/testapigroup/v1/generated.proto",
"staging/k8s.io/apimachinery/pkg/runtime/generated.proto",
"staging/k8s.io/apimachinery/pkg/runtime/schema/generated.proto",
"staging/k8s.io/apimachinery/pkg/util/intstr/generated.proto",
"staging/k8s.io/apimachinery/pkg/util/managedfields/internal/testdata/swagger.json",
"staging/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.proto",
"staging/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.proto"
],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod",
"staging/github.com/go-logr/logr/go.mod",
"staging/github.com/gogo/protobuf/go.mod",
"staging/k8s.io/api/go.mod",
"staging/k8s.io/apiextensions-apiserver/go.mod",
"staging/k8s.io/apimachinery/go.mod",
"staging/k8s.io/code-generator/examples/go.mod",
"staging/k8s.io/code-generator/go.mod",
"staging/k8s.io/klog/examples/coexist_klog_v1_and_v2/go.mod",
"staging/k8s.io/klog/examples/go.mod",
"staging/k8s.io/klog/go.mod",
"staging/k8s.io/kube-aggregator/go.mod"
],
"largest_source_bytes": 1643619,
"source_files_sampled": 4636,
"oversized_source_files": 148,
"agent_instruction_files": [
".github/copilot-instructions.md",
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 4400
},
"dependencies": {
"manifests": [
"go.mod"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.45.0",
"severity": "critical",
"ecosystem": "go",
"cvss_score": 10,
"advisory_ids": [
"GHSA-45gg-vh54-h5m9",
"GHSA-5cgq-3rg8-m6cv",
"GHSA-78mq-xcr3-xm33",
"GHSA-89gr-r52h-f8rx",
"GHSA-9m57-25v3-79x9",
"GHSA-f5wc-c3c7-36mc",
"GHSA-jppx-rxg9-jmrx",
"GHSA-q4h4-gmj2-qvw2",
"GHSA-qpw4-5x99-6vjp",
"GHSA-rm3j-f69w-wqmq"
],
"fixed_version": "0.52.0",
"advisory_count": 27,
"oldest_advisory_days": 65
},
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.49.0",
"severity": "critical",
"ecosystem": "go",
"cvss_score": 10,
"advisory_ids": [
"GHSA-45gg-vh54-h5m9",
"GHSA-5cgq-3rg8-m6cv",
"GHSA-78mq-xcr3-xm33",
"GHSA-89gr-r52h-f8rx",
"GHSA-9m57-25v3-79x9",
"GHSA-f5wc-c3c7-36mc",
"GHSA-jppx-rxg9-jmrx",
"GHSA-q4h4-gmj2-qvw2",
"GHSA-qpw4-5x99-6vjp",
"GHSA-rm3j-f69w-wqmq"
],
"fixed_version": "0.52.0",
"advisory_count": 27,
"oldest_advisory_days": 65
},
{
"name": "google.golang.org/grpc",
"direct": true,
"version": "v1.72.2",
"severity": "critical",
"ecosystem": "go",
"cvss_score": 9.1,
"advisory_ids": [
"GHSA-hrxh-6v49-42gf",
"GHSA-p77j-4mvh-x3m3",
"GO-2026-4762"
],
"fixed_version": "1.82.1",
"advisory_count": 3,
"oldest_advisory_days": 129
},
{
"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"
],
"fixed_version": "1.82.1",
"advisory_count": 1,
"oldest_advisory_days": 4
},
{
"name": "github.com/containerd/containerd",
"direct": false,
"version": "v1.7.30",
"severity": "high",
"ecosystem": "go",
"cvss_score": 8.8,
"advisory_ids": [
"GHSA-fqw6-gf59-qr4w",
"GHSA-jpcc-p29g-p8mq",
"GHSA-xhf5-7wjv-pqxp",
"GO-2026-5064",
"GO-2026-5338",
"GO-2026-5378",
"GO-2026-5475",
"GO-2026-5622",
"GO-2026-5758"
],
"fixed_version": "2.3.2",
"advisory_count": 9,
"oldest_advisory_days": 65
},
{
"name": "github.com/golang/glog",
"direct": false,
"version": "v0.0.0-20160126235308-23def4e6c14b",
"severity": "high",
"ecosystem": "go",
"cvss_score": 7.1,
"advisory_ids": [
"GHSA-6wxm-mpqj-6jpf",
"GO-2025-3372"
],
"fixed_version": "1.2.4",
"advisory_count": 2,
"oldest_advisory_days": 544
},
{
"name": "github.com/moby/spdystream",
"direct": false,
"version": "v0.5.0",
"severity": "high",
"ecosystem": "go",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-pc3f-x583-g7j2",
"GO-2026-4958"
],
"fixed_version": "0.5.1",
"advisory_count": 2,
"oldest_advisory_days": 100
},
{
"name": "go.opentelemetry.io/otel",
"direct": false,
"version": "v1.36.0",
"severity": "high",
"ecosystem": "go",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-mh2q-q3fh-2475",
"GO-2026-5506"
],
"fixed_version": "1.41.0",
"advisory_count": 2,
"oldest_advisory_days": 109
},
{
"name": "go.opentelemetry.io/otel/sdk",
"direct": false,
"version": "v1.36.0",
"severity": "high",
"ecosystem": "go",
"cvss_score": 7,
"advisory_ids": [
"GHSA-9h8m-3fm2-qjrq",
"GHSA-hfvc-g4fc-pqhx",
"GO-2026-4394",
"GO-2026-5426"
],
"fixed_version": "1.43.0",
"advisory_count": 4,
"oldest_advisory_days": 173
},
{
"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": 24
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.47.0",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 6.5,
"advisory_ids": [
"GHSA-5cv4-jp36-h3mw",
"GO-2026-4918",
"GO-2026-5025",
"GO-2026-5026",
"GO-2026-5027",
"GO-2026-5028",
"GO-2026-5029",
"GO-2026-5030",
"GO-2026-5942"
],
"fixed_version": "1.26.3",
"advisory_count": 9,
"oldest_advisory_days": 79
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.52.0",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 6.5,
"advisory_ids": [
"GHSA-5cv4-jp36-h3mw",
"GO-2026-4918",
"GO-2026-5025",
"GO-2026-5026",
"GO-2026-5027",
"GO-2026-5028",
"GO-2026-5029",
"GO-2026-5030",
"GO-2026-5942"
],
"fixed_version": "1.26.3",
"advisory_count": 9,
"oldest_advisory_days": 79
},
{
"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": 1
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.38.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5024"
],
"fixed_version": "0.44.0",
"advisory_count": 1,
"oldest_advisory_days": 64
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.42.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5024"
],
"fixed_version": "0.44.0",
"advisory_count": 1,
"oldest_advisory_days": 64
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.31.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5970"
],
"fixed_version": "0.39.0",
"advisory_count": 1,
"oldest_advisory_days": 11
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.35.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5970"
],
"fixed_version": "0.39.0",
"advisory_count": 1,
"oldest_advisory_days": 11
},
{
"name": "go.etcd.io/etcd/server/v3",
"direct": false,
"version": "v3.6.5",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5736"
],
"fixed_version": "3.6.11",
"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": 1
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 6,
"unknown": 6,
"critical": 4,
"moderate": 3
},
"advisory_count": 112,
"affected_count": 19,
"assessed_count": 284,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 10
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/akerl/go-indefinite-article",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/alitto/pond/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.7.1"
},
{
"name": "github.com/davecgh/go-spew",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.2-0.20180830191138-d8f796af33cc"
},
{
"name": "github.com/evanphx/json-patch",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.9.11+incompatible"
},
{
"name": "github.com/go-logr/logr",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.3"
},
{
"name": "github.com/go-openapi/inflect",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.21.5"
},
{
"name": "github.com/go-task/slim-sprig/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.0"
},
{
"name": "github.com/goccy/go-json",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.10.6"
},
{
"name": "github.com/golang/groupcache",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20241129210726-2c02b8208cf8"
},
{
"name": "github.com/google/go-containerregistry",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.20.7"
},
{
"name": "github.com/google/uuid",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/gorilla/mux",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.8.1"
},
{
"name": "github.com/hashicorp/go-multierror",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.1"
},
{
"name": "github.com/henvic/httpretty",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.4"
},
{
"name": "github.com/jonboulle/clockwork",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.0"
},
{
"name": "github.com/mattn/go-runewidth",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.19"
},
{
"name": "github.com/patrickmn/go-cache",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.1.1-0.20191004192108-46f407853014+incompatible"
},
{
"name": "github.com/prometheus/client_golang",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.23.2"
},
{
"name": "github.com/robfig/cron/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"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": "github.com/stretchr/testify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.1"
},
{
"name": "github.com/tidwall/gjson",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.18.0"
},
{
"name": "github.com/tidwall/sjson",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.2.5"
},
{
"name": "go.uber.org/atomic",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.0"
},
{
"name": "go.uber.org/automaxprocs",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "go.uber.org/multierr",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.0"
},
{
"name": "golang.org/x/crypto",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.49.0"
},
{
"name": "golang.org/x/exp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260112195511-716be5621a96"
},
{
"name": "golang.org/x/mod",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.33.0"
},
{
"name": "golang.org/x/net",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.52.0"
},
{
"name": "golang.org/x/sys",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.42.0"
},
{
"name": "golang.org/x/text",
"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": "gopkg.in/yaml.v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"name": "helm.sh/helm/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.21.0"
},
{
"name": "k8s.io/api",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.3"
},
{
"name": "k8s.io/apiextensions-apiserver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.3"
},
{
"name": "k8s.io/apimachinery",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.3"
},
{
"name": "k8s.io/apiserver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.3"
},
{
"name": "k8s.io/cli-runtime",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.3"
},
{
"name": "k8s.io/client-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.3"
},
{
"name": "k8s.io/code-generator",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.3"
},
{
"name": "k8s.io/component-base",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.3"
},
{
"name": "k8s.io/gengo",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20251215205346-5ee0d033ba5b"
},
{
"name": "k8s.io/gengo/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.0.0-20251215205346-5ee0d033ba5b"
},
{
"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.35.1"
},
{
"name": "k8s.io/kube-openapi",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260127142750-a19766b6e2d4"
},
{
"name": "k8s.io/kubectl",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.3"
},
{
"name": "k8s.io/kubelet",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.35.1"
},
{
"name": "k8s.io/utils",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260210185600-b8788abfbbc2"
},
{
"name": "sigs.k8s.io/controller-runtime",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.23.3"
},
{
"name": "sigs.k8s.io/kueue",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.17.1"
},
{
"name": "sigs.k8s.io/node-feature-discovery/api/nfd",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260410111035-2c517aa1a8c1"
},
{
"name": "sigs.k8s.io/structured-merge-diff/v6",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v6.3.2"
},
{
"name": "sigs.k8s.io/yaml",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "github.com/akerl/go-indefinite-article",
"direct": true,
"version": "v0.0.1",
"ecosystem": "go"
},
{
"name": "github.com/alitto/pond/v2",
"direct": true,
"version": "v2.7.1",
"ecosystem": "go"
},
{
"name": "github.com/davecgh/go-spew",
"direct": true,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/davecgh/go-spew",
"direct": true,
"version": "v1.1.2-0.20180830191138-d8f796af33cc",
"ecosystem": "go"
},
{
"name": "github.com/evanphx/json-patch",
"direct": true,
"version": "v5.9.11+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/logr",
"direct": true,
"version": "v1.4.1",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/logr",
"direct": true,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/inflect",
"direct": true,
"version": "v0.21.5",
"ecosystem": "go"
},
{
"name": "github.com/go-task/slim-sprig/v3",
"direct": true,
"version": "v3.0.0",
"ecosystem": "go"
},
{
"name": "github.com/goccy/go-json",
"direct": true,
"version": "v0.10.6",
"ecosystem": "go"
},
{
"name": "github.com/golang/groupcache",
"direct": true,
"version": "v0.0.0-20241129210726-2c02b8208cf8",
"ecosystem": "go"
},
{
"name": "github.com/google/go-containerregistry",
"direct": true,
"version": "v0.20.7",
"ecosystem": "go"
},
{
"name": "github.com/google/uuid",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/mux",
"direct": true,
"version": "v1.8.1",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/go-multierror",
"direct": true,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/henvic/httpretty",
"direct": true,
"version": "v0.1.4",
"ecosystem": "go"
},
{
"name": "github.com/jonboulle/clockwork",
"direct": true,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-runewidth",
"direct": true,
"version": "v0.0.19",
"ecosystem": "go"
},
{
"name": "github.com/patrickmn/go-cache",
"direct": true,
"version": "v2.1.1-0.20191004192108-46f407853014+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_golang",
"direct": true,
"version": "v1.23.2",
"ecosystem": "go"
},
{
"name": "github.com/robfig/cron/v3",
"direct": true,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cobra",
"direct": true,
"version": "v1.10.0",
"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/spf13/pflag",
"direct": true,
"version": "v1.0.9",
"ecosystem": "go"
},
{
"name": "github.com/stretchr/testify",
"direct": true,
"version": "v1.11.1",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/gjson",
"direct": true,
"version": "v1.18.0",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/sjson",
"direct": true,
"version": "v1.2.5",
"ecosystem": "go"
},
{
"name": "go.uber.org/atomic",
"direct": true,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/atomic",
"direct": true,
"version": "v1.7.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/automaxprocs",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/multierr",
"direct": true,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/multierr",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.45.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.49.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/exp",
"direct": true,
"version": "v0.0.0-20240719175910-8a7402abbf56",
"ecosystem": "go"
},
{
"name": "golang.org/x/exp",
"direct": true,
"version": "v0.0.0-20260112195511-716be5621a96",
"ecosystem": "go"
},
{
"name": "golang.org/x/mod",
"direct": true,
"version": "v0.22.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/mod",
"direct": true,
"version": "v0.29.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/mod",
"direct": true,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.47.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.52.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.38.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.42.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.31.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "google.golang.org/grpc",
"direct": true,
"version": "v1.72.2",
"ecosystem": "go"
},
{
"name": "google.golang.org/grpc",
"direct": true,
"version": "v1.80.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v3",
"direct": true,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "helm.sh/helm/v3",
"direct": true,
"version": "v3.21.0",
"ecosystem": "go"
},
{
"name": "k8s.io/api",
"direct": true,
"version": "v0.35.3",
"ecosystem": "go"
},
{
"name": "k8s.io/apimachinery",
"direct": true,
"version": "v0.35.3",
"ecosystem": "go"
},
{
"name": "k8s.io/apiserver",
"direct": true,
"version": "v0.35.3",
"ecosystem": "go"
},
{
"name": "k8s.io/cli-runtime",
"direct": true,
"version": "v0.35.3",
"ecosystem": "go"
},
{
"name": "k8s.io/client-go",
"direct": true,
"version": "v0.35.3",
"ecosystem": "go"
},
{
"name": "k8s.io/code-generator",
"direct": true,
"version": "v0.35.3",
"ecosystem": "go"
},
{
"name": "k8s.io/component-base",
"direct": true,
"version": "v0.35.3",
"ecosystem": "go"
},
{
"name": "k8s.io/gengo",
"direct": true,
"version": "v0.0.0-20251215205346-5ee0d033ba5b",
"ecosystem": "go"
},
{
"name": "k8s.io/gengo/v2",
"direct": true,
"version": "v2.0.0-20250922181213-ec3ebc5fd46b",
"ecosystem": "go"
},
{
"name": "k8s.io/gengo/v2",
"direct": true,
"version": "v2.0.0-20251215205346-5ee0d033ba5b",
"ecosystem": "go"
},
{
"name": "k8s.io/klog/v2",
"direct": true,
"version": "v2.0.0",
"ecosystem": "go"
},
{
"name": "k8s.io/klog/v2",
"direct": true,
"version": "v2.130.1",
"ecosystem": "go"
},
{
"name": "k8s.io/kube-openapi",
"direct": true,
"version": "v0.0.0-20250910181357-589584f1c912",
"ecosystem": "go"
},
{
"name": "k8s.io/kube-openapi",
"direct": true,
"version": "v0.0.0-20260127142750-a19766b6e2d4",
"ecosystem": "go"
},
{
"name": "k8s.io/kubectl",
"direct": true,
"version": "v0.35.3",
"ecosystem": "go"
},
{
"name": "k8s.io/kubelet",
"direct": true,
"version": "v0.35.1",
"ecosystem": "go"
},
{
"name": "k8s.io/utils",
"direct": true,
"version": "v0.0.0-20251002143259-bc988d571ff4",
"ecosystem": "go"
},
{
"name": "k8s.io/utils",
"direct": true,
"version": "v0.0.0-20260210185600-b8788abfbbc2",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/controller-runtime",
"direct": true,
"version": "v0.23.3",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/kueue",
"direct": true,
"version": "v0.17.1",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/node-feature-discovery/api/nfd",
"direct": true,
"version": "v0.0.0-20260410111035-2c517aa1a8c1",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/structured-merge-diff/v6",
"direct": true,
"version": "v6.3.0",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/structured-merge-diff/v6",
"direct": true,
"version": "v6.3.2",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/yaml",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "../../../staging/github.com/go-logr/logr",
"direct": false,
"version": "1.4.1",
"ecosystem": "go"
},
{
"name": "cel.dev/expr",
"direct": false,
"version": "v0.24.0",
"ecosystem": "go"
},
{
"name": "cel.dev/expr",
"direct": false,
"version": "v0.25.1",
"ecosystem": "go"
},
{
"name": "dario.cat/mergo",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/akerl/timber",
"direct": false,
"version": "v0.0.0-20180929185520-02c471ab033b",
"ecosystem": "go"
},
{
"name": "github.com/antlr4-go/antlr/v4",
"direct": false,
"version": "v4.13.0",
"ecosystem": "go"
},
{
"name": "github.com/antlr4-go/antlr/v4",
"direct": false,
"version": "v4.13.1",
"ecosystem": "go"
},
{
"name": "github.com/armon/go-socks5",
"direct": false,
"version": "v0.0.0-20160902184237-e75332964ef5",
"ecosystem": "go"
},
{
"name": "github.com/asaskevich/govalidator",
"direct": false,
"version": "v0.0.0-20230301143203-a9d515a09cc2",
"ecosystem": "go"
},
{
"name": "github.com/azure/go-ansiterm",
"direct": false,
"version": "v0.0.0-20250102033503-faa5f7b0171c",
"ecosystem": "go"
},
{
"name": "github.com/beorn7/perks",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/blang/semver/v4",
"direct": false,
"version": "v4.0.0",
"ecosystem": "go"
},
{
"name": "github.com/burntsushi/toml",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/cenkalti/backoff/v4",
"direct": false,
"version": "v4.3.0",
"ecosystem": "go"
},
{
"name": "github.com/cenkalti/backoff/v5",
"direct": false,
"version": "v5.0.3",
"ecosystem": "go"
},
{
"name": "github.com/cespare/xxhash/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/chai2010/gettext-go",
"direct": false,
"version": "v1.0.3",
"ecosystem": "go"
},
{
"name": "github.com/clipperhouse/uax29/v2",
"direct": false,
"version": "v2.2.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/containerd",
"direct": false,
"version": "v1.7.30",
"ecosystem": "go"
},
{
"name": "github.com/containerd/errdefs",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/log",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/platforms",
"direct": false,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/coreos/go-semver",
"direct": false,
"version": "v0.3.1",
"ecosystem": "go"
},
{
"name": "github.com/coreos/go-systemd/v22",
"direct": false,
"version": "v22.5.0",
"ecosystem": "go"
},
{
"name": "github.com/cyphar/filepath-securejoin",
"direct": false,
"version": "v0.6.1",
"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.12.2",
"ecosystem": "go"
},
{
"name": "github.com/emicklei/go-restful/v3",
"direct": false,
"version": "v3.13.0",
"ecosystem": "go"
},
{
"name": "github.com/evanphx/json-patch/v5",
"direct": false,
"version": "v5.9.11",
"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.13.0",
"ecosystem": "go"
},
{
"name": "github.com/felixge/httpsnoop",
"direct": false,
"version": "v1.0.4",
"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.5.1",
"ecosystem": "go"
},
{
"name": "github.com/go-gorp/gorp/v3",
"direct": false,
"version": "v3.1.0",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/stdr",
"direct": false,
"version": "v1.2.2",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/zapr",
"direct": false,
"version": "v1.2.3",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/jsonpointer",
"direct": false,
"version": "v0.21.0",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/jsonpointer",
"direct": false,
"version": "v0.22.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/jsonreference",
"direct": false,
"version": "v0.20.2",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/jsonreference",
"direct": false,
"version": "v0.21.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag",
"direct": false,
"version": "v0.23.0",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/cmdutils",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/conv",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/fileutils",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/jsonname",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/jsonutils",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/loading",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/mangling",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/netutils",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/stringutils",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/typeutils",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/go-openapi/swag/yamlutils",
"direct": false,
"version": "v0.25.4",
"ecosystem": "go"
},
{
"name": "github.com/gobwas/glob",
"direct": false,
"version": "v0.2.3",
"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.2.2",
"ecosystem": "go"
},
{
"name": "github.com/golang/glog",
"direct": false,
"version": "v0.0.0-20160126235308-23def4e6c14b",
"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/gnostic-models",
"direct": false,
"version": "v0.7.1",
"ecosystem": "go"
},
{
"name": "github.com/google/go-cmp",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/google/pprof",
"direct": false,
"version": "v0.0.0-20250403155104-27863c87afa6",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/websocket",
"direct": false,
"version": "v1.5.4-0.20250319132907-e064f32e3674",
"ecosystem": "go"
},
{
"name": "github.com/gosuri/uitable",
"direct": false,
"version": "v0.0.4",
"ecosystem": "go"
},
{
"name": "github.com/gregjones/httpcache",
"direct": false,
"version": "v0.0.0-20190611155906-901d90724c79",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/go-grpc-middleware/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/go-grpc-prometheus",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/grpc-gateway/v2",
"direct": false,
"version": "v2.26.3",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/grpc-gateway/v2",
"direct": false,
"version": "v2.28.0",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/errwrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/golang-lru/arc/v2",
"direct": false,
"version": "v2.0.7",
"ecosystem": "go"
},
{
"name": "github.com/huandu/xstrings",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/inconshreveable/mousetrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/jmoiron/sqlx",
"direct": false,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "github.com/josharian/intern",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/json-iterator/go",
"direct": false,
"version": "v1.1.12",
"ecosystem": "go"
},
{
"name": "github.com/kisielk/errcheck",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/kisielk/gotool",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.1",
"ecosystem": "go"
},
{
"name": "github.com/kr/pretty",
"direct": false,
"version": "v0.3.1",
"ecosystem": "go"
},
{
"name": "github.com/kylelemons/godebug",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/lann/builder",
"direct": false,
"version": "v0.0.0-20180802200727-47ae307949d0",
"ecosystem": "go"
},
{
"name": "github.com/lann/ps",
"direct": false,
"version": "v0.0.0-20150810152359-62de8c46ede0",
"ecosystem": "go"
},
{
"name": "github.com/lib/pq",
"direct": false,
"version": "v1.11.2",
"ecosystem": "go"
},
{
"name": "github.com/liggitt/tabwriter",
"direct": false,
"version": "v0.0.0-20181228230101-89fcab3d43de",
"ecosystem": "go"
},
{
"name": "github.com/mailru/easyjson",
"direct": false,
"version": "v0.7.7",
"ecosystem": "go"
},
{
"name": "github.com/makenowjust/heredoc",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/goutils",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/semver/v3",
"direct": false,
"version": "v3.4.0",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/sprig/v3",
"direct": false,
"version": "v3.3.0",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/squirrel",
"direct": false,
"version": "v1.5.4",
"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/miekg/dns",
"direct": false,
"version": "v1.1.72",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/copystructure",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/go-wordwrap",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/reflectwalk",
"direct": false,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "github.com/moby/spdystream",
"direct": false,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/term",
"direct": false,
"version": "v0.5.2",
"ecosystem": "go"
},
{
"name": "github.com/modern-go/concurrent",
"direct": false,
"version": "v0.0.0-20180306012644-bacd9c7ef1dd",
"ecosystem": "go"
},
{
"name": "github.com/modern-go/reflect2",
"direct": false,
"version": "v1.0.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/nytimes/gziphandler",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/onsi/ginkgo/v2",
"direct": false,
"version": "v2.27.2",
"ecosystem": "go"
},
{
"name": "github.com/onsi/gomega",
"direct": false,
"version": "v1.38.2",
"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/peterbourgon/diskv",
"direct": false,
"version": "v2.0.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/pkg/errors",
"direct": false,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "github.com/pmezard/go-difflib",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/pmezard/go-difflib",
"direct": false,
"version": "v1.0.1-0.20181226105442-5d4384ee4fb2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_model",
"direct": false,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/common",
"direct": false,
"version": "v0.66.1",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/common",
"direct": false,
"version": "v0.67.5",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/procfs",
"direct": false,
"version": "v0.16.1",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/procfs",
"direct": false,
"version": "v0.20.1",
"ecosystem": "go"
},
{
"name": "github.com/rogpeppe/go-internal",
"direct": false,
"version": "v1.14.1",
"ecosystem": "go"
},
{
"name": "github.com/rubenv/sql-migrate",
"direct": false,
"version": "v1.8.1",
"ecosystem": "go"
},
{
"name": "github.com/russross/blackfriday/v2",
"direct": false,
"version": "v2.1.0",
"ecosystem": "go"
},
{
"name": "github.com/santhosh-tekuri/jsonschema/v6",
"direct": false,
"version": "v6.0.2",
"ecosystem": "go"
},
{
"name": "github.com/shopspring/decimal",
"direct": false,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "github.com/sirupsen/logrus",
"direct": false,
"version": "v1.9.3",
"ecosystem": "go"
},
{
"name": "github.com/sirupsen/logrus",
"direct": false,
"version": "v1.9.4",
"ecosystem": "go"
},
{
"name": "github.com/soheilhy/cmux",
"direct": false,
"version": "v0.1.5",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cast",
"direct": false,
"version": "v1.7.0",
"ecosystem": "go"
},
{
"name": "github.com/stoewer/go-strcase",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/stoewer/go-strcase",
"direct": false,
"version": "v1.3.1",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/match",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/pretty",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/tmc/grpc-websocket-proxy",
"direct": false,
"version": "v0.0.0-20220101234140-673ab2c3ae75",
"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/api/v3",
"direct": false,
"version": "v3.6.5",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/client/pkg/v3",
"direct": false,
"version": "v3.6.5",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/client/v3",
"direct": false,
"version": "v3.6.5",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/pkg/v3",
"direct": false,
"version": "v3.6.5",
"ecosystem": "go"
},
{
"name": "go.etcd.io/etcd/server/v3",
"direct": false,
"version": "v3.6.5",
"ecosystem": "go"
},
{
"name": "go.etcd.io/raft/v3",
"direct": false,
"version": "v3.6.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/auto/sdk",
"direct": false,
"version": "v1.1.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.60.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
"direct": false,
"version": "v0.61.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
"direct": false,
"version": "v0.61.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
"direct": false,
"version": "v0.68.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel",
"direct": false,
"version": "v1.36.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.34.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.34.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.36.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.36.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.36.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.opentelemetry.io/proto/otlp",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/goleak",
"direct": false,
"version": "v1.1.12",
"ecosystem": "go"
},
{
"name": "go.uber.org/zap",
"direct": false,
"version": "v1.19.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/zap",
"direct": false,
"version": "v1.27.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/zap",
"direct": false,
"version": "v1.27.1",
"ecosystem": "go"
},
{
"name": "go.yaml.in/yaml/v2",
"direct": false,
"version": "v2.4.3",
"ecosystem": "go"
},
{
"name": "go.yaml.in/yaml/v2",
"direct": false,
"version": "v2.4.4",
"ecosystem": "go"
},
{
"name": "go.yaml.in/yaml/v3",
"direct": false,
"version": "v3.0.4",
"ecosystem": "go"
},
{
"name": "golang.org/x/oauth2",
"direct": false,
"version": "v0.30.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/oauth2",
"direct": false,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": false,
"version": "v0.18.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": false,
"version": "v0.20.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": false,
"version": "v0.9.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/term",
"direct": false,
"version": "v0.37.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/term",
"direct": false,
"version": "v0.41.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/time",
"direct": false,
"version": "v0.14.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/time",
"direct": false,
"version": "v0.9.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools",
"direct": false,
"version": "v0.0.0-20210106214847-113979e3529a",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools",
"direct": false,
"version": "v0.27.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools",
"direct": false,
"version": "v0.38.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools",
"direct": false,
"version": "v0.42.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools/go/expect",
"direct": false,
"version": "v0.1.1-deprecated",
"ecosystem": "go"
},
{
"name": "gomodules.xyz/jsonpatch/v2",
"direct": false,
"version": "v2.5.0",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/api",
"direct": false,
"version": "v0.0.0-20250303144028-a0af3efb3deb",
"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-20250528174236-200df99c418a",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/rpc",
"direct": false,
"version": "v0.0.0-20260406210006-6f92a3bedf2d",
"ecosystem": "go"
},
{
"name": "google.golang.org/protobuf",
"direct": false,
"version": "v1.36.11",
"ecosystem": "go"
},
{
"name": "google.golang.org/protobuf",
"direct": false,
"version": "v1.36.8",
"ecosystem": "go"
},
{
"name": "gopkg.in/check.v1",
"direct": false,
"version": "v1.0.0-20201130134442-10cb98267c6c",
"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-helpers",
"direct": false,
"version": "v0.35.3",
"ecosystem": "go"
},
{
"name": "k8s.io/klog",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "k8s.io/kms",
"direct": false,
"version": "v0.35.3",
"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.31.2",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/apiserver-network-proxy/konnectivity-client",
"direct": false,
"version": "v0.33.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.20.1",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/kustomize/kyaml",
"direct": false,
"version": "v0.20.1",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/randfill",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
}
],
"collected": true,
"truncated": false,
"total_count": 284,
"direct_count": 74,
"indirect_count": 210
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 54,
"open_issues": 1,
"closed_ratio": 0,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "thxCode",
"commits": 389,
"avatar_url": "https://avatars.githubusercontent.com/u/3394724?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci-chart.yml",
"ci.yml",
"pack.yml",
"sync-image.yml"
],
"has_docs_dir": true,
"linter_configs": [
".golangci.yaml"
],
"has_editorconfig": false,
"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": 5,
"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": "12 out of 12 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": 0,
"reason": "Found 0/20 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 6,
"reason": "project has 2 contributing companies or organizations -- score normalized to 6",
"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": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"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": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 9,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "45 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "62c409f3aa4f9ea883ae233e9aa6c73fcb40439c",
"ran_at": "2026-07-26T02:52:43Z",
"aggregate_score": 3.9,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-24T16:04:33Z",
"oldest_open_prs": [],
"last_merged_pr_at": "2026-07-24T15:53:27Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 52,
"created_at": "2026-07-24T02:53:47Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/gpustack/gpustack-operator",
"host": "github.com",
"name": "gpustack-operator",
"owner": "gpustack"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 56,
"inputs": {
"security": 41,
"vitality": 78,
"community": 43,
"governance": 37,
"engineering": 76
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 78,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 63,
"inputs": {
"commits_last_year": 389,
"human_commit_share": 1,
"days_since_last_push": 1,
"active_weeks_last_year": 13
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 1 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 1
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "13/52 weeks with commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 13
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "389 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 389
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"releases_count": 12,
"latest_release_tag": "v0.7.1",
"releases_from_tags": false,
"days_since_latest_release": 2,
"mean_days_between_releases": 2.3
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "12 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 12
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 2 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 2
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~2.3 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 2.3
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "at_risk",
"name": "Community & Adoption",
"value": 43,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 1,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 1
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "excellent",
"name": "Community health",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (Apache-2.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "Apache-2.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 37,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 16,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 2 contributing companies or organizations -- score normalized to 6",
"points": 6,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "at_risk",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 38,
"inputs": {
"merged_prs": 54,
"open_issues": 1,
"closed_issues": 0,
"issue_closed_ratio": 0,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "0% of issues closed",
"points": 0,
"status": "missed",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 0
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "54/54 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 54,
"decided": 54
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/20 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"followers": 245,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "gpustack",
"public_repos": 17,
"account_age_days": 810
},
"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": "245 followers of gpustack",
"points": 17.2,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 245,
"login": "gpustack"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "17 public repos, account ~2 yr old",
"points": 13.6,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 17
}
},
{
"code": "account_age_years",
"params": {
"years": 2
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 76,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 84,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "4 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 4
}
}
],
"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",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yaml"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "12 out of 12 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": null,
"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": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 41,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 39,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 3.9
},
"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": 3.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "12 out of 12 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 0/20 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 2 contributing companies or organizations -- score normalized to 6",
"points": 1.5,
"status": "partial",
"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": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"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 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "45 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "at_risk",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 284 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": 284
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 47,
"inputs": {
"source": "osv",
"advisories": 112,
"affected_packages": 19,
"assessed_packages": 284,
"unassessed_packages": 0,
"affected_by_severity": "critical 4, high 6, moderate 3, unknown 6",
"direct_affected_packages": 10
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "10 affected: golang.org/x/crypto v0.45.0 (critical 10.0), golang.org/x/crypto v0.49.0 (critical 10.0), google.golang.org/grpc v1.72.2 (critical 9.1), +7 more",
"points": 3,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 10,
"packages": "golang.org/x/crypto v0.45.0 (critical 10.0), golang.org/x/crypto v0.49.0 (critical 10.0), google.golang.org/grpc v1.72.2 (critical 9.1)"
}
},
{
"code": "advisories_affected_more",
"params": {
"count": 7
}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 129 days ago",
"points": 32.6,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 1,
"oldest": 129
}
}
],
"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": 284,
"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": 1
},
"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": 81,
"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": 1,
"agent_instruction_files": [
".github/copilot-instructions.md",
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 4400
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": ".github/copilot-instructions.md, AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".github/copilot-instructions.md, AGENTS.md, 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": "100 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 100,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"Makefile",
"staging/github.com/gogo/protobuf/Makefile",
"staging/github.com/gogo/protobuf/conformance/Makefile",
"staging/github.com/gogo/protobuf/gogoproto/Makefile",
"staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/Makefile",
"staging/github.com/gogo/protobuf/proto/Makefile",
"staging/github.com/gogo/protobuf/proto/proto3_proto/Makefile",
"staging/github.com/gogo/protobuf/proto/test_proto/Makefile",
"staging/github.com/gogo/protobuf/protobuf/Makefile",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/Makefile",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/plugin/Makefile",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile",
"staging/github.com/gogo/protobuf/test/Makefile",
"staging/github.com/gogo/protobuf/test/asymetric-issue125/Makefile",
"staging/github.com/gogo/protobuf/test/cachedsize/Makefile",
"staging/github.com/gogo/protobuf/test/casttype/Makefile",
"staging/github.com/gogo/protobuf/test/castvalue/Makefile",
"staging/github.com/gogo/protobuf/test/custombytesnonstruct/Makefile",
"staging/github.com/gogo/protobuf/test/data/Makefile",
"staging/github.com/gogo/protobuf/test/deterministic/Makefile",
"staging/github.com/gogo/protobuf/test/empty-issue70/Makefile",
"staging/github.com/gogo/protobuf/test/enumcustomname/Makefile",
"staging/github.com/gogo/protobuf/test/enumdecl/Makefile",
"staging/github.com/gogo/protobuf/test/enumdecl_all/Makefile",
"staging/github.com/gogo/protobuf/test/enumprefix/Makefile",
"staging/github.com/gogo/protobuf/test/enumstringer/Makefile",
"staging/github.com/gogo/protobuf/test/example/Makefile",
"staging/github.com/gogo/protobuf/test/filedotname/Makefile",
"staging/github.com/gogo/protobuf/test/fuzztests/Makefile",
"staging/github.com/gogo/protobuf/test/group/Makefile",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/Makefile",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/imported/Makefile",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/importing/Makefile",
"staging/github.com/gogo/protobuf/test/importdedup/Makefile",
"staging/github.com/gogo/protobuf/test/importduplicate/Makefile",
"staging/github.com/gogo/protobuf/test/indeximport-issue72/Makefile",
"staging/github.com/gogo/protobuf/test/int64support/Makefile",
"staging/github.com/gogo/protobuf/test/issue260/Makefile",
"staging/github.com/gogo/protobuf/test/issue261/Makefile",
"staging/github.com/gogo/protobuf/test/issue262/Makefile",
"staging/github.com/gogo/protobuf/test/issue312/Makefile",
"staging/github.com/gogo/protobuf/test/issue312/events/Makefile",
"staging/github.com/gogo/protobuf/test/issue322/Makefile",
"staging/github.com/gogo/protobuf/test/issue330/Makefile",
"staging/github.com/gogo/protobuf/test/issue34/Makefile",
"staging/github.com/gogo/protobuf/test/issue411/Makefile",
"staging/github.com/gogo/protobuf/test/issue427/Makefile",
"staging/github.com/gogo/protobuf/test/issue42order/Makefile",
"staging/github.com/gogo/protobuf/test/issue435/Makefile",
"staging/github.com/gogo/protobuf/test/issue438/Makefile",
"staging/github.com/gogo/protobuf/test/issue444/Makefile",
"staging/github.com/gogo/protobuf/test/issue449/Makefile",
"staging/github.com/gogo/protobuf/test/issue498/Makefile",
"staging/github.com/gogo/protobuf/test/issue503/Makefile",
"staging/github.com/gogo/protobuf/test/issue530/Makefile",
"staging/github.com/gogo/protobuf/test/issue617/Makefile",
"staging/github.com/gogo/protobuf/test/issue620/Makefile",
"staging/github.com/gogo/protobuf/test/issue630/Makefile",
"staging/github.com/gogo/protobuf/test/issue8/Makefile",
"staging/github.com/gogo/protobuf/test/mapdefaults/Makefile",
"staging/github.com/gogo/protobuf/test/mapsproto2/Makefile",
"staging/github.com/gogo/protobuf/test/merge/Makefile",
"staging/github.com/gogo/protobuf/test/moredefaults/Makefile",
"staging/github.com/gogo/protobuf/test/nopackage/Makefile",
"staging/github.com/gogo/protobuf/test/oneof/Makefile",
"staging/github.com/gogo/protobuf/test/oneof3/Makefile",
"staging/github.com/gogo/protobuf/test/oneofembed/Makefile",
"staging/github.com/gogo/protobuf/test/packed/Makefile",
"staging/github.com/gogo/protobuf/test/proto3extension/Makefile",
"staging/github.com/gogo/protobuf/test/protobuffer/Makefile",
"staging/github.com/gogo/protobuf/test/protosize/Makefile",
"staging/github.com/gogo/protobuf/test/registration/Makefile",
"staging/github.com/gogo/protobuf/test/required/Makefile",
"staging/github.com/gogo/protobuf/test/setextensionbytes/Makefile",
"staging/github.com/gogo/protobuf/test/sizeunderscore/Makefile",
"staging/github.com/gogo/protobuf/test/stdtypes/Makefile",
"staging/github.com/gogo/protobuf/test/tags/Makefile",
"staging/github.com/gogo/protobuf/test/theproto3/Makefile",
"staging/github.com/gogo/protobuf/test/typedecl/Makefile",
"staging/github.com/gogo/protobuf/test/typedecl_all/Makefile",
"staging/github.com/gogo/protobuf/test/typedeclimport/Makefile",
"staging/github.com/gogo/protobuf/test/types/Makefile",
"staging/github.com/gogo/protobuf/test/unmarshalmerge/Makefile",
"staging/github.com/gogo/protobuf/test/unrecognized/Makefile",
"staging/github.com/gogo/protobuf/test/unrecognizedgroup/Makefile",
"staging/github.com/gogo/protobuf/test/xxxfields/Makefile",
"staging/github.com/gogo/protobuf/vanity/test/Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [
"go.mod",
"staging/github.com/go-logr/logr/go.mod",
"staging/github.com/gogo/protobuf/go.mod",
"staging/k8s.io/api/go.mod",
"staging/k8s.io/apiextensions-apiserver/go.mod",
"staging/k8s.io/apimachinery/go.mod",
"staging/k8s.io/code-generator/examples/go.mod",
"staging/k8s.io/code-generator/go.mod",
"staging/k8s.io/klog/examples/coexist_klog_v1_and_v2/go.mod",
"staging/k8s.io/klog/examples/go.mod",
"staging/k8s.io/klog/go.mod",
"staging/k8s.io/kube-aggregator/go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile, staging/github.com/gogo/protobuf/Makefile, staging/github.com/gogo/protobuf/conformance/Makefile, staging/github.com/gogo/protobuf/gogoproto/Makefile, staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/Makefile, staging/github.com/gogo/protobuf/proto/Makefile, staging/github.com/gogo/protobuf/proto/proto3_proto/Makefile, staging/github.com/gogo/protobuf/proto/test_proto/Makefile, staging/github.com/gogo/protobuf/protobuf/Makefile, staging/github.com/gogo/protobuf/protoc-gen-gogo/Makefile, staging/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile, staging/github.com/gogo/protobuf/protoc-gen-gogo/plugin/Makefile, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile, staging/github.com/gogo/protobuf/test/Makefile, staging/github.com/gogo/protobuf/test/asymetric-issue125/Makefile, staging/github.com/gogo/protobuf/test/cachedsize/Makefile, staging/github.com/gogo/protobuf/test/casttype/Makefile, staging/github.com/gogo/protobuf/test/castvalue/Makefile, staging/github.com/gogo/protobuf/test/custombytesnonstruct/Makefile, staging/github.com/gogo/protobuf/test/data/Makefile, staging/github.com/gogo/protobuf/test/deterministic/Makefile, staging/github.com/gogo/protobuf/test/empty-issue70/Makefile, staging/github.com/gogo/protobuf/test/enumcustomname/Makefile, staging/github.com/gogo/protobuf/test/enumdecl/Makefile, staging/github.com/gogo/protobuf/test/enumdecl_all/Makefile, staging/github.com/gogo/protobuf/test/enumprefix/Makefile, staging/github.com/gogo/protobuf/test/enumstringer/Makefile, staging/github.com/gogo/protobuf/test/example/Makefile, staging/github.com/gogo/protobuf/test/filedotname/Makefile, staging/github.com/gogo/protobuf/test/fuzztests/Makefile, staging/github.com/gogo/protobuf/test/group/Makefile, staging/github.com/gogo/protobuf/test/importcustom-issue389/Makefile, staging/github.com/gogo/protobuf/test/importcustom-issue389/imported/Makefile, staging/github.com/gogo/protobuf/test/importcustom-issue389/importing/Makefile, staging/github.com/gogo/protobuf/test/importdedup/Makefile, staging/github.com/gogo/protobuf/test/importduplicate/Makefile, staging/github.com/gogo/protobuf/test/indeximport-issue72/Makefile, staging/github.com/gogo/protobuf/test/int64support/Makefile, staging/github.com/gogo/protobuf/test/issue260/Makefile, staging/github.com/gogo/protobuf/test/issue261/Makefile, staging/github.com/gogo/protobuf/test/issue262/Makefile, staging/github.com/gogo/protobuf/test/issue312/Makefile, staging/github.com/gogo/protobuf/test/issue312/events/Makefile, staging/github.com/gogo/protobuf/test/issue322/Makefile, staging/github.com/gogo/protobuf/test/issue330/Makefile, staging/github.com/gogo/protobuf/test/issue34/Makefile, staging/github.com/gogo/protobuf/test/issue411/Makefile, staging/github.com/gogo/protobuf/test/issue427/Makefile, staging/github.com/gogo/protobuf/test/issue42order/Makefile, staging/github.com/gogo/protobuf/test/issue435/Makefile, staging/github.com/gogo/protobuf/test/issue438/Makefile, staging/github.com/gogo/protobuf/test/issue444/Makefile, staging/github.com/gogo/protobuf/test/issue449/Makefile, staging/github.com/gogo/protobuf/test/issue498/Makefile, staging/github.com/gogo/protobuf/test/issue503/Makefile, staging/github.com/gogo/protobuf/test/issue530/Makefile, staging/github.com/gogo/protobuf/test/issue617/Makefile, staging/github.com/gogo/protobuf/test/issue620/Makefile, staging/github.com/gogo/protobuf/test/issue630/Makefile, staging/github.com/gogo/protobuf/test/issue8/Makefile, staging/github.com/gogo/protobuf/test/mapdefaults/Makefile, staging/github.com/gogo/protobuf/test/mapsproto2/Makefile, staging/github.com/gogo/protobuf/test/merge/Makefile, staging/github.com/gogo/protobuf/test/moredefaults/Makefile, staging/github.com/gogo/protobuf/test/nopackage/Makefile, staging/github.com/gogo/protobuf/test/oneof/Makefile, staging/github.com/gogo/protobuf/test/oneof3/Makefile, staging/github.com/gogo/protobuf/test/oneofembed/Makefile, staging/github.com/gogo/protobuf/test/packed/Makefile, staging/github.com/gogo/protobuf/test/proto3extension/Makefile, staging/github.com/gogo/protobuf/test/protobuffer/Makefile, staging/github.com/gogo/protobuf/test/protosize/Makefile, staging/github.com/gogo/protobuf/test/registration/Makefile, staging/github.com/gogo/protobuf/test/required/Makefile, staging/github.com/gogo/protobuf/test/setextensionbytes/Makefile, staging/github.com/gogo/protobuf/test/sizeunderscore/Makefile, staging/github.com/gogo/protobuf/test/stdtypes/Makefile, staging/github.com/gogo/protobuf/test/tags/Makefile, staging/github.com/gogo/protobuf/test/theproto3/Makefile, staging/github.com/gogo/protobuf/test/typedecl/Makefile, staging/github.com/gogo/protobuf/test/typedecl_all/Makefile, staging/github.com/gogo/protobuf/test/typedeclimport/Makefile, staging/github.com/gogo/protobuf/test/types/Makefile, staging/github.com/gogo/protobuf/test/unmarshalmerge/Makefile, staging/github.com/gogo/protobuf/test/unrecognized/Makefile, staging/github.com/gogo/protobuf/test/unrecognizedgroup/Makefile, staging/github.com/gogo/protobuf/test/xxxfields/Makefile, staging/github.com/gogo/protobuf/vanity/test/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile, staging/github.com/gogo/protobuf/Makefile, staging/github.com/gogo/protobuf/conformance/Makefile, staging/github.com/gogo/protobuf/gogoproto/Makefile, staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/Makefile, staging/github.com/gogo/protobuf/proto/Makefile, staging/github.com/gogo/protobuf/proto/proto3_proto/Makefile, staging/github.com/gogo/protobuf/proto/test_proto/Makefile, staging/github.com/gogo/protobuf/protobuf/Makefile, staging/github.com/gogo/protobuf/protoc-gen-gogo/Makefile, staging/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile, staging/github.com/gogo/protobuf/protoc-gen-gogo/plugin/Makefile, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile, staging/github.com/gogo/protobuf/test/Makefile, staging/github.com/gogo/protobuf/test/asymetric-issue125/Makefile, staging/github.com/gogo/protobuf/test/cachedsize/Makefile, staging/github.com/gogo/protobuf/test/casttype/Makefile, staging/github.com/gogo/protobuf/test/castvalue/Makefile, staging/github.com/gogo/protobuf/test/custombytesnonstruct/Makefile, staging/github.com/gogo/protobuf/test/data/Makefile, staging/github.com/gogo/protobuf/test/deterministic/Makefile, staging/github.com/gogo/protobuf/test/empty-issue70/Makefile, staging/github.com/gogo/protobuf/test/enumcustomname/Makefile, staging/github.com/gogo/protobuf/test/enumdecl/Makefile, staging/github.com/gogo/protobuf/test/enumdecl_all/Makefile, staging/github.com/gogo/protobuf/test/enumprefix/Makefile, staging/github.com/gogo/protobuf/test/enumstringer/Makefile, staging/github.com/gogo/protobuf/test/example/Makefile, staging/github.com/gogo/protobuf/test/filedotname/Makefile, staging/github.com/gogo/protobuf/test/fuzztests/Makefile, staging/github.com/gogo/protobuf/test/group/Makefile, staging/github.com/gogo/protobuf/test/importcustom-issue389/Makefile, staging/github.com/gogo/protobuf/test/importcustom-issue389/imported/Makefile, staging/github.com/gogo/protobuf/test/importcustom-issue389/importing/Makefile, staging/github.com/gogo/protobuf/test/importdedup/Makefile, staging/github.com/gogo/protobuf/test/importduplicate/Makefile, staging/github.com/gogo/protobuf/test/indeximport-issue72/Makefile, staging/github.com/gogo/protobuf/test/int64support/Makefile, staging/github.com/gogo/protobuf/test/issue260/Makefile, staging/github.com/gogo/protobuf/test/issue261/Makefile, staging/github.com/gogo/protobuf/test/issue262/Makefile, staging/github.com/gogo/protobuf/test/issue312/Makefile, staging/github.com/gogo/protobuf/test/issue312/events/Makefile, staging/github.com/gogo/protobuf/test/issue322/Makefile, staging/github.com/gogo/protobuf/test/issue330/Makefile, staging/github.com/gogo/protobuf/test/issue34/Makefile, staging/github.com/gogo/protobuf/test/issue411/Makefile, staging/github.com/gogo/protobuf/test/issue427/Makefile, staging/github.com/gogo/protobuf/test/issue42order/Makefile, staging/github.com/gogo/protobuf/test/issue435/Makefile, staging/github.com/gogo/protobuf/test/issue438/Makefile, staging/github.com/gogo/protobuf/test/issue444/Makefile, staging/github.com/gogo/protobuf/test/issue449/Makefile, staging/github.com/gogo/protobuf/test/issue498/Makefile, staging/github.com/gogo/protobuf/test/issue503/Makefile, staging/github.com/gogo/protobuf/test/issue530/Makefile, staging/github.com/gogo/protobuf/test/issue617/Makefile, staging/github.com/gogo/protobuf/test/issue620/Makefile, staging/github.com/gogo/protobuf/test/issue630/Makefile, staging/github.com/gogo/protobuf/test/issue8/Makefile, staging/github.com/gogo/protobuf/test/mapdefaults/Makefile, staging/github.com/gogo/protobuf/test/mapsproto2/Makefile, staging/github.com/gogo/protobuf/test/merge/Makefile, staging/github.com/gogo/protobuf/test/moredefaults/Makefile, staging/github.com/gogo/protobuf/test/nopackage/Makefile, staging/github.com/gogo/protobuf/test/oneof/Makefile, staging/github.com/gogo/protobuf/test/oneof3/Makefile, staging/github.com/gogo/protobuf/test/oneofembed/Makefile, staging/github.com/gogo/protobuf/test/packed/Makefile, staging/github.com/gogo/protobuf/test/proto3extension/Makefile, staging/github.com/gogo/protobuf/test/protobuffer/Makefile, staging/github.com/gogo/protobuf/test/protosize/Makefile, staging/github.com/gogo/protobuf/test/registration/Makefile, staging/github.com/gogo/protobuf/test/required/Makefile, staging/github.com/gogo/protobuf/test/setextensionbytes/Makefile, staging/github.com/gogo/protobuf/test/sizeunderscore/Makefile, staging/github.com/gogo/protobuf/test/stdtypes/Makefile, staging/github.com/gogo/protobuf/test/tags/Makefile, staging/github.com/gogo/protobuf/test/theproto3/Makefile, staging/github.com/gogo/protobuf/test/typedecl/Makefile, staging/github.com/gogo/protobuf/test/typedecl_all/Makefile, staging/github.com/gogo/protobuf/test/typedeclimport/Makefile, staging/github.com/gogo/protobuf/test/types/Makefile, staging/github.com/gogo/protobuf/test/unmarshalmerge/Makefile, staging/github.com/gogo/protobuf/test/unrecognized/Makefile, staging/github.com/gogo/protobuf/test/unrecognizedgroup/Makefile, staging/github.com/gogo/protobuf/test/xxxfields/Makefile, staging/github.com/gogo/protobuf/vanity/test/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",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yaml"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 1",
"points": 1,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 98,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 1643619,
"source_files_sampled": 4636,
"oversized_source_files": 148
},
"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": "148/4636 source files over 60KB",
"points": 53.2,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 4636,
"oversized": 148
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "good",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"example_dirs": [
"example",
"examples",
"sample"
],
"has_mcp_signal": false,
"api_schema_files": [
"api/v1/generated.proto",
"api/worker/v1/generated.proto",
"api/worker/v1alpha1/generated.proto",
"staging/github.com/gogo/protobuf/conformance/internal/conformance_proto/conformance.proto",
"staging/github.com/gogo/protobuf/gogoproto/gogo.proto",
"staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto",
"staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto",
"staging/github.com/gogo/protobuf/proto/proto3_proto/proto3.proto",
"staging/github.com/gogo/protobuf/proto/test_proto/test.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/api.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/empty.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/field_mask.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/source_context.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/struct.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/type.proto",
"staging/github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/deprecated/deprecated.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base/extension_base.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra/extension_extra.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_user/extension_user.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc_empty.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/a.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/b.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/importing/importing.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/a.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/b.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt/m.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m1.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m2.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m3.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m4.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m1.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m2.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m1.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m2.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_all.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi1.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi2.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi3.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.proto",
"staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3/proto3.proto",
"staging/github.com/gogo/protobuf/test/asymetric-issue125/asym.proto",
"staging/github.com/gogo/protobuf/test/cachedsize/cachedsize.proto",
"staging/github.com/gogo/protobuf/test/casttype/casttype.proto",
"staging/github.com/gogo/protobuf/test/casttype/combos/both/casttype.proto",
"staging/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.proto",
"staging/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.proto",
"staging/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.proto",
"staging/github.com/gogo/protobuf/test/castvalue/castvalue.proto",
"staging/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.proto",
"staging/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.proto",
"staging/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.proto",
"staging/github.com/gogo/protobuf/test/combos/both/thetest.proto",
"staging/github.com/gogo/protobuf/test/combos/marshaler/thetest.proto",
"staging/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.proto",
"staging/github.com/gogo/protobuf/test/custombytesnonstruct/proto.proto",
"staging/github.com/gogo/protobuf/test/dashfilename/dash-filename.proto",
"staging/github.com/gogo/protobuf/test/data/data.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/df.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/dg.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/nc.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/ne.proto",
"staging/github.com/gogo/protobuf/test/defaultconflict/nx.proto",
"staging/github.com/gogo/protobuf/test/deterministic/deterministic.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/eb.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/ec.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/ee.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/em.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/en.proto",
"staging/github.com/gogo/protobuf/test/embedconflict/er.proto",
"staging/github.com/gogo/protobuf/test/empty-issue70/empty.proto",
"staging/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.proto",
"staging/github.com/gogo/protobuf/test/enumdecl/enumdecl.proto",
"staging/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.proto",
"staging/github.com/gogo/protobuf/test/enumprefix/enumprefix.proto",
"staging/github.com/gogo/protobuf/test/enumstringer/enumstringer.proto",
"staging/github.com/gogo/protobuf/test/example/example.proto",
"staging/github.com/gogo/protobuf/test/filedotname/file.dot.proto",
"staging/github.com/gogo/protobuf/test/fuzztests/fuzz.proto",
"staging/github.com/gogo/protobuf/test/group/group.proto",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/imported/a.proto",
"staging/github.com/gogo/protobuf/test/importcustom-issue389/importing/c.proto",
"staging/github.com/gogo/protobuf/test/importdedup/proto.proto",
"staging/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.proto",
"staging/github.com/gogo/protobuf/test/importduplicate/importduplicate.proto",
"staging/github.com/gogo/protobuf/test/importduplicate/proto/proto.proto",
"staging/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.proto",
"staging/github.com/gogo/protobuf/test/indeximport-issue72/index/index.proto",
"staging/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.proto",
"staging/github.com/gogo/protobuf/test/int64support/object.proto",
"staging/github.com/gogo/protobuf/test/issue260/issue260.proto",
"staging/github.com/gogo/protobuf/test/issue261/issue261.proto",
"staging/github.com/gogo/protobuf/test/issue262/timefail.proto",
"staging/github.com/gogo/protobuf/test/issue270/a/a1.proto",
"staging/github.com/gogo/protobuf/test/issue270/a/a2.proto",
"staging/github.com/gogo/protobuf/test/issue270/b/b.proto",
"staging/github.com/gogo/protobuf/test/issue312/events/events.proto",
"staging/github.com/gogo/protobuf/test/issue312/issue312.proto",
"staging/github.com/gogo/protobuf/test/issue322/issue322.proto",
"staging/github.com/gogo/protobuf/test/issue330/issue330.proto",
"staging/github.com/gogo/protobuf/test/issue34/proto.proto",
"staging/github.com/gogo/protobuf/test/issue411/issue411.proto",
"staging/github.com/gogo/protobuf/test/issue427/issue427.proto",
"staging/github.com/gogo/protobuf/test/issue42order/issue42.proto",
"staging/github.com/gogo/protobuf/test/issue435/issue435.proto",
"staging/github.com/gogo/protobuf/test/issue438/issue438.proto",
"staging/github.com/gogo/protobuf/test/issue444/issue444.proto",
"staging/github.com/gogo/protobuf/test/issue449/issue449.proto",
"staging/github.com/gogo/protobuf/test/issue498/issue498.proto",
"staging/github.com/gogo/protobuf/test/issue503/issue503.proto",
"staging/github.com/gogo/protobuf/test/issue530/issue530.proto",
"staging/github.com/gogo/protobuf/test/issue617/issue617.proto",
"staging/github.com/gogo/protobuf/test/issue620/issue620.proto",
"staging/github.com/gogo/protobuf/test/issue630/issue630.proto",
"staging/github.com/gogo/protobuf/test/issue8/proto.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.proto",
"staging/github.com/gogo/protobuf/test/mapdefaults/map.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/header.proto",
"staging/github.com/gogo/protobuf/test/mapsproto2/mapsproto2.proto",
"staging/github.com/gogo/protobuf/test/merge/merge.proto",
"staging/github.com/gogo/protobuf/test/moredefaults/md.proto",
"staging/github.com/gogo/protobuf/test/nopackage/nopackage.proto",
"staging/github.com/gogo/protobuf/test/oneof/combos/both/one.proto",
"staging/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.proto",
"staging/github.com/gogo/protobuf/test/oneof/combos/neither/one.proto",
"staging/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.proto",
"staging/github.com/gogo/protobuf/test/oneof/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/combos/both/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/combos/neither/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.proto",
"staging/github.com/gogo/protobuf/test/oneof3/one.proto",
"staging/github.com/gogo/protobuf/test/oneofembed/oneofembed.proto",
"staging/github.com/gogo/protobuf/test/packed/packed.proto",
"staging/github.com/gogo/protobuf/test/proto3extension/proto3ext.proto",
"staging/github.com/gogo/protobuf/test/protobuffer/protobuffer.proto",
"staging/github.com/gogo/protobuf/test/protosize/protosize.proto",
"staging/github.com/gogo/protobuf/test/registration/registration.proto",
"staging/github.com/gogo/protobuf/test/required/requiredexample.proto",
"staging/github.com/gogo/protobuf/test/setextensionbytes/setextensionbytes.proto",
"staging/github.com/gogo/protobuf/test/sizerconflict/sizerconflict.proto",
"staging/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.proto",
"staging/github.com/gogo/protobuf/test/stdtypes/stdtypes.proto",
"staging/github.com/gogo/protobuf/test/tags/tags.proto",
"staging/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.proto",
"staging/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.proto",
"staging/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.proto",
"staging/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.proto",
"staging/github.com/gogo/protobuf/test/theproto3/footer.proto",
"staging/github.com/gogo/protobuf/test/theproto3/header.proto",
"staging/github.com/gogo/protobuf/test/theproto3/maps.proto",
"staging/github.com/gogo/protobuf/test/theproto3/theproto3.proto",
"staging/github.com/gogo/protobuf/test/thetest.proto",
"staging/github.com/gogo/protobuf/test/typedecl/typedecl.proto",
"staging/github.com/gogo/protobuf/test/typedecl_all/typedeclall.proto",
"staging/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.proto",
"staging/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.proto",
"staging/github.com/gogo/protobuf/test/types/combos/both/types.proto",
"staging/github.com/gogo/protobuf/test/types/combos/marshaler/types.proto",
"staging/github.com/gogo/protobuf/test/types/combos/neither/types.proto",
"staging/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.proto",
"staging/github.com/gogo/protobuf/test/types/types.proto",
"staging/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.proto",
"staging/github.com/gogo/protobuf/test/unrecognized/unrecognized.proto",
"staging/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.proto",
"staging/github.com/gogo/protobuf/test/xxxfields/xxxfields.proto",
"staging/github.com/gogo/protobuf/vanity/test/gogovanity.proto",
"staging/github.com/gogo/protobuf/vanity/test/proto3.proto",
"staging/github.com/gogo/protobuf/vanity/test/vanity.proto",
"staging/k8s.io/api/admission/v1/generated.proto",
"staging/k8s.io/api/admission/v1beta1/generated.proto",
"staging/k8s.io/api/admissionregistration/v1/generated.proto",
"staging/k8s.io/api/admissionregistration/v1alpha1/generated.proto",
"staging/k8s.io/api/admissionregistration/v1beta1/generated.proto",
"staging/k8s.io/api/apidiscovery/v2/generated.proto",
"staging/k8s.io/api/apidiscovery/v2beta1/generated.proto",
"staging/k8s.io/api/apiserverinternal/v1alpha1/generated.proto",
"staging/k8s.io/api/apps/v1/generated.proto",
"staging/k8s.io/api/apps/v1beta1/generated.proto",
"staging/k8s.io/api/apps/v1beta2/generated.proto",
"staging/k8s.io/api/authentication/v1/generated.proto",
"staging/k8s.io/api/authentication/v1alpha1/generated.proto",
"staging/k8s.io/api/authentication/v1beta1/generated.proto",
"staging/k8s.io/api/authorization/v1/generated.proto",
"staging/k8s.io/api/authorization/v1beta1/generated.proto",
"staging/k8s.io/api/autoscaling/v1/generated.proto",
"staging/k8s.io/api/autoscaling/v2/generated.proto",
"staging/k8s.io/api/autoscaling/v2beta1/generated.proto",
"staging/k8s.io/api/autoscaling/v2beta2/generated.proto",
"staging/k8s.io/api/batch/v1/generated.proto",
"staging/k8s.io/api/batch/v1beta1/generated.proto",
"staging/k8s.io/api/certificates/v1/generated.proto",
"staging/k8s.io/api/certificates/v1alpha1/generated.proto",
"staging/k8s.io/api/certificates/v1beta1/generated.proto",
"staging/k8s.io/api/coordination/v1/generated.proto",
"staging/k8s.io/api/coordination/v1alpha2/generated.proto",
"staging/k8s.io/api/coordination/v1beta1/generated.proto",
"staging/k8s.io/api/core/v1/generated.proto",
"staging/k8s.io/api/discovery/v1/generated.proto",
"staging/k8s.io/api/discovery/v1beta1/generated.proto",
"staging/k8s.io/api/events/v1/generated.proto",
"staging/k8s.io/api/events/v1beta1/generated.proto",
"staging/k8s.io/api/extensions/v1beta1/generated.proto",
"staging/k8s.io/api/flowcontrol/v1/generated.proto",
"staging/k8s.io/api/flowcontrol/v1beta1/generated.proto",
"staging/k8s.io/api/flowcontrol/v1beta2/generated.proto",
"staging/k8s.io/api/flowcontrol/v1beta3/generated.proto",
"staging/k8s.io/api/imagepolicy/v1alpha1/generated.proto",
"staging/k8s.io/api/networking/v1/generated.proto",
"staging/k8s.io/api/networking/v1beta1/generated.proto",
"staging/k8s.io/api/node/v1/generated.proto",
"staging/k8s.io/api/node/v1alpha1/generated.proto",
"staging/k8s.io/api/node/v1beta1/generated.proto",
"staging/k8s.io/api/policy/v1/generated.proto",
"staging/k8s.io/api/policy/v1beta1/generated.proto",
"staging/k8s.io/api/rbac/v1/generated.proto",
"staging/k8s.io/api/rbac/v1alpha1/generated.proto",
"staging/k8s.io/api/rbac/v1beta1/generated.proto",
"staging/k8s.io/api/resource/v1/generated.proto",
"staging/k8s.io/api/resource/v1alpha3/generated.proto",
"staging/k8s.io/api/resource/v1beta1/generated.proto",
"staging/k8s.io/api/resource/v1beta2/generated.proto",
"staging/k8s.io/api/scheduling/v1/generated.proto",
"staging/k8s.io/api/scheduling/v1alpha1/generated.proto",
"staging/k8s.io/api/scheduling/v1beta1/generated.proto",
"staging/k8s.io/api/storage/v1/generated.proto",
"staging/k8s.io/api/storage/v1alpha1/generated.proto",
"staging/k8s.io/api/storage/v1beta1/generated.proto",
"staging/k8s.io/api/storagemigration/v1beta1/generated.proto",
"staging/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto",
"staging/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto",
"staging/k8s.io/apiextensions-apiserver/pkg/apiserver/testdata/swagger.json",
"staging/k8s.io/apimachinery/pkg/api/resource/generated.proto",
"staging/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto",
"staging/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto",
"staging/k8s.io/apimachinery/pkg/apis/testapigroup/v1/generated.proto",
"staging/k8s.io/apimachinery/pkg/runtime/generated.proto",
"staging/k8s.io/apimachinery/pkg/runtime/schema/generated.proto",
"staging/k8s.io/apimachinery/pkg/util/intstr/generated.proto",
"staging/k8s.io/apimachinery/pkg/util/managedfields/internal/testdata/swagger.json",
"staging/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.proto",
"staging/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.proto"
]
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": "api/v1/generated.proto, api/worker/v1/generated.proto, api/worker/v1alpha1/generated.proto, staging/github.com/gogo/protobuf/conformance/internal/conformance_proto/conformance.proto, staging/github.com/gogo/protobuf/gogoproto/gogo.proto, staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto, staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto, staging/github.com/gogo/protobuf/proto/proto3_proto/proto3.proto, staging/github.com/gogo/protobuf/proto/test_proto/test.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/api.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/empty.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/field_mask.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/source_context.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/struct.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/type.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/deprecated/deprecated.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base/extension_base.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra/extension_extra.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_user/extension_user.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc_empty.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/a.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/b.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/importing/importing.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/a.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/b.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt/m.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m1.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m2.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m3.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m4.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m1.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m2.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m1.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m2.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_all.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi1.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi2.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi3.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3/proto3.proto, staging/github.com/gogo/protobuf/test/asymetric-issue125/asym.proto, staging/github.com/gogo/protobuf/test/cachedsize/cachedsize.proto, staging/github.com/gogo/protobuf/test/casttype/casttype.proto, staging/github.com/gogo/protobuf/test/casttype/combos/both/casttype.proto, staging/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.proto, staging/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.proto, staging/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.proto, staging/github.com/gogo/protobuf/test/castvalue/castvalue.proto, staging/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.proto, staging/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.proto, staging/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.proto, staging/github.com/gogo/protobuf/test/combos/both/thetest.proto, staging/github.com/gogo/protobuf/test/combos/marshaler/thetest.proto, staging/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.proto, staging/github.com/gogo/protobuf/test/custombytesnonstruct/proto.proto, staging/github.com/gogo/protobuf/test/dashfilename/dash-filename.proto, staging/github.com/gogo/protobuf/test/data/data.proto, staging/github.com/gogo/protobuf/test/defaultconflict/df.proto, staging/github.com/gogo/protobuf/test/defaultconflict/dg.proto, staging/github.com/gogo/protobuf/test/defaultconflict/nc.proto, staging/github.com/gogo/protobuf/test/defaultconflict/ne.proto, staging/github.com/gogo/protobuf/test/defaultconflict/nx.proto, staging/github.com/gogo/protobuf/test/deterministic/deterministic.proto, staging/github.com/gogo/protobuf/test/embedconflict/eb.proto, staging/github.com/gogo/protobuf/test/embedconflict/ec.proto, staging/github.com/gogo/protobuf/test/embedconflict/ee.proto, staging/github.com/gogo/protobuf/test/embedconflict/em.proto, staging/github.com/gogo/protobuf/test/embedconflict/en.proto, staging/github.com/gogo/protobuf/test/embedconflict/er.proto, staging/github.com/gogo/protobuf/test/empty-issue70/empty.proto, staging/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.proto, staging/github.com/gogo/protobuf/test/enumdecl/enumdecl.proto, staging/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.proto, staging/github.com/gogo/protobuf/test/enumprefix/enumprefix.proto, staging/github.com/gogo/protobuf/test/enumstringer/enumstringer.proto, staging/github.com/gogo/protobuf/test/example/example.proto, staging/github.com/gogo/protobuf/test/filedotname/file.dot.proto, staging/github.com/gogo/protobuf/test/fuzztests/fuzz.proto, staging/github.com/gogo/protobuf/test/group/group.proto, staging/github.com/gogo/protobuf/test/importcustom-issue389/imported/a.proto, staging/github.com/gogo/protobuf/test/importcustom-issue389/importing/c.proto, staging/github.com/gogo/protobuf/test/importdedup/proto.proto, staging/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.proto, staging/github.com/gogo/protobuf/test/importduplicate/importduplicate.proto, staging/github.com/gogo/protobuf/test/importduplicate/proto/proto.proto, staging/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.proto, staging/github.com/gogo/protobuf/test/indeximport-issue72/index/index.proto, staging/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.proto, staging/github.com/gogo/protobuf/test/int64support/object.proto, staging/github.com/gogo/protobuf/test/issue260/issue260.proto, staging/github.com/gogo/protobuf/test/issue261/issue261.proto, staging/github.com/gogo/protobuf/test/issue262/timefail.proto, staging/github.com/gogo/protobuf/test/issue270/a/a1.proto, staging/github.com/gogo/protobuf/test/issue270/a/a2.proto, staging/github.com/gogo/protobuf/test/issue270/b/b.proto, staging/github.com/gogo/protobuf/test/issue312/events/events.proto, staging/github.com/gogo/protobuf/test/issue312/issue312.proto, staging/github.com/gogo/protobuf/test/issue322/issue322.proto, staging/github.com/gogo/protobuf/test/issue330/issue330.proto, staging/github.com/gogo/protobuf/test/issue34/proto.proto, staging/github.com/gogo/protobuf/test/issue411/issue411.proto, staging/github.com/gogo/protobuf/test/issue427/issue427.proto, staging/github.com/gogo/protobuf/test/issue42order/issue42.proto, staging/github.com/gogo/protobuf/test/issue435/issue435.proto, staging/github.com/gogo/protobuf/test/issue438/issue438.proto, staging/github.com/gogo/protobuf/test/issue444/issue444.proto, staging/github.com/gogo/protobuf/test/issue449/issue449.proto, staging/github.com/gogo/protobuf/test/issue498/issue498.proto, staging/github.com/gogo/protobuf/test/issue503/issue503.proto, staging/github.com/gogo/protobuf/test/issue530/issue530.proto, staging/github.com/gogo/protobuf/test/issue617/issue617.proto, staging/github.com/gogo/protobuf/test/issue620/issue620.proto, staging/github.com/gogo/protobuf/test/issue630/issue630.proto, staging/github.com/gogo/protobuf/test/issue8/proto.proto, staging/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.proto, staging/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.proto, staging/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.proto, staging/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.proto, staging/github.com/gogo/protobuf/test/mapdefaults/map.proto, staging/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.proto, staging/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.proto, staging/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.proto, staging/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.proto, staging/github.com/gogo/protobuf/test/mapsproto2/header.proto, staging/github.com/gogo/protobuf/test/mapsproto2/mapsproto2.proto, staging/github.com/gogo/protobuf/test/merge/merge.proto, staging/github.com/gogo/protobuf/test/moredefaults/md.proto, staging/github.com/gogo/protobuf/test/nopackage/nopackage.proto, staging/github.com/gogo/protobuf/test/oneof/combos/both/one.proto, staging/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.proto, staging/github.com/gogo/protobuf/test/oneof/combos/neither/one.proto, staging/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.proto, staging/github.com/gogo/protobuf/test/oneof/one.proto, staging/github.com/gogo/protobuf/test/oneof3/combos/both/one.proto, staging/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.proto, staging/github.com/gogo/protobuf/test/oneof3/combos/neither/one.proto, staging/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.proto, staging/github.com/gogo/protobuf/test/oneof3/one.proto, staging/github.com/gogo/protobuf/test/oneofembed/oneofembed.proto, staging/github.com/gogo/protobuf/test/packed/packed.proto, staging/github.com/gogo/protobuf/test/proto3extension/proto3ext.proto, staging/github.com/gogo/protobuf/test/protobuffer/protobuffer.proto, staging/github.com/gogo/protobuf/test/protosize/protosize.proto, staging/github.com/gogo/protobuf/test/registration/registration.proto, staging/github.com/gogo/protobuf/test/required/requiredexample.proto, staging/github.com/gogo/protobuf/test/setextensionbytes/setextensionbytes.proto, staging/github.com/gogo/protobuf/test/sizerconflict/sizerconflict.proto, staging/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.proto, staging/github.com/gogo/protobuf/test/stdtypes/stdtypes.proto, staging/github.com/gogo/protobuf/test/tags/tags.proto, staging/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.proto, staging/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.proto, staging/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.proto, staging/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.proto, staging/github.com/gogo/protobuf/test/theproto3/footer.proto, staging/github.com/gogo/protobuf/test/theproto3/header.proto, staging/github.com/gogo/protobuf/test/theproto3/maps.proto, staging/github.com/gogo/protobuf/test/theproto3/theproto3.proto, staging/github.com/gogo/protobuf/test/thetest.proto, staging/github.com/gogo/protobuf/test/typedecl/typedecl.proto, staging/github.com/gogo/protobuf/test/typedecl_all/typedeclall.proto, staging/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.proto, staging/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.proto, staging/github.com/gogo/protobuf/test/types/combos/both/types.proto, staging/github.com/gogo/protobuf/test/types/combos/marshaler/types.proto, staging/github.com/gogo/protobuf/test/types/combos/neither/types.proto, staging/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.proto, staging/github.com/gogo/protobuf/test/types/types.proto, staging/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.proto, staging/github.com/gogo/protobuf/test/unrecognized/unrecognized.proto, staging/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.proto, staging/github.com/gogo/protobuf/test/xxxfields/xxxfields.proto, staging/github.com/gogo/protobuf/vanity/test/gogovanity.proto, staging/github.com/gogo/protobuf/vanity/test/proto3.proto, staging/github.com/gogo/protobuf/vanity/test/vanity.proto, staging/k8s.io/api/admission/v1/generated.proto, staging/k8s.io/api/admission/v1beta1/generated.proto, staging/k8s.io/api/admissionregistration/v1/generated.proto, staging/k8s.io/api/admissionregistration/v1alpha1/generated.proto, staging/k8s.io/api/admissionregistration/v1beta1/generated.proto, staging/k8s.io/api/apidiscovery/v2/generated.proto, staging/k8s.io/api/apidiscovery/v2beta1/generated.proto, staging/k8s.io/api/apiserverinternal/v1alpha1/generated.proto, staging/k8s.io/api/apps/v1/generated.proto, staging/k8s.io/api/apps/v1beta1/generated.proto, staging/k8s.io/api/apps/v1beta2/generated.proto, staging/k8s.io/api/authentication/v1/generated.proto, staging/k8s.io/api/authentication/v1alpha1/generated.proto, staging/k8s.io/api/authentication/v1beta1/generated.proto, staging/k8s.io/api/authorization/v1/generated.proto, staging/k8s.io/api/authorization/v1beta1/generated.proto, staging/k8s.io/api/autoscaling/v1/generated.proto, staging/k8s.io/api/autoscaling/v2/generated.proto, staging/k8s.io/api/autoscaling/v2beta1/generated.proto, staging/k8s.io/api/autoscaling/v2beta2/generated.proto, staging/k8s.io/api/batch/v1/generated.proto, staging/k8s.io/api/batch/v1beta1/generated.proto, staging/k8s.io/api/certificates/v1/generated.proto, staging/k8s.io/api/certificates/v1alpha1/generated.proto, staging/k8s.io/api/certificates/v1beta1/generated.proto, staging/k8s.io/api/coordination/v1/generated.proto, staging/k8s.io/api/coordination/v1alpha2/generated.proto, staging/k8s.io/api/coordination/v1beta1/generated.proto, staging/k8s.io/api/core/v1/generated.proto, staging/k8s.io/api/discovery/v1/generated.proto, staging/k8s.io/api/discovery/v1beta1/generated.proto, staging/k8s.io/api/events/v1/generated.proto, staging/k8s.io/api/events/v1beta1/generated.proto, staging/k8s.io/api/extensions/v1beta1/generated.proto, staging/k8s.io/api/flowcontrol/v1/generated.proto, staging/k8s.io/api/flowcontrol/v1beta1/generated.proto, staging/k8s.io/api/flowcontrol/v1beta2/generated.proto, staging/k8s.io/api/flowcontrol/v1beta3/generated.proto, staging/k8s.io/api/imagepolicy/v1alpha1/generated.proto, staging/k8s.io/api/networking/v1/generated.proto, staging/k8s.io/api/networking/v1beta1/generated.proto, staging/k8s.io/api/node/v1/generated.proto, staging/k8s.io/api/node/v1alpha1/generated.proto, staging/k8s.io/api/node/v1beta1/generated.proto, staging/k8s.io/api/policy/v1/generated.proto, staging/k8s.io/api/policy/v1beta1/generated.proto, staging/k8s.io/api/rbac/v1/generated.proto, staging/k8s.io/api/rbac/v1alpha1/generated.proto, staging/k8s.io/api/rbac/v1beta1/generated.proto, staging/k8s.io/api/resource/v1/generated.proto, staging/k8s.io/api/resource/v1alpha3/generated.proto, staging/k8s.io/api/resource/v1beta1/generated.proto, staging/k8s.io/api/resource/v1beta2/generated.proto, staging/k8s.io/api/scheduling/v1/generated.proto, staging/k8s.io/api/scheduling/v1alpha1/generated.proto, staging/k8s.io/api/scheduling/v1beta1/generated.proto, staging/k8s.io/api/storage/v1/generated.proto, staging/k8s.io/api/storage/v1alpha1/generated.proto, staging/k8s.io/api/storage/v1beta1/generated.proto, staging/k8s.io/api/storagemigration/v1beta1/generated.proto, staging/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto, staging/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto, staging/k8s.io/apiextensions-apiserver/pkg/apiserver/testdata/swagger.json, staging/k8s.io/apimachinery/pkg/api/resource/generated.proto, staging/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto, staging/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto, staging/k8s.io/apimachinery/pkg/apis/testapigroup/v1/generated.proto, staging/k8s.io/apimachinery/pkg/runtime/generated.proto, staging/k8s.io/apimachinery/pkg/runtime/schema/generated.proto, staging/k8s.io/apimachinery/pkg/util/intstr/generated.proto, staging/k8s.io/apimachinery/pkg/util/managedfields/internal/testdata/swagger.json, staging/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.proto, staging/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.proto",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "api/v1/generated.proto, api/worker/v1/generated.proto, api/worker/v1alpha1/generated.proto, staging/github.com/gogo/protobuf/conformance/internal/conformance_proto/conformance.proto, staging/github.com/gogo/protobuf/gogoproto/gogo.proto, staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto, staging/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto, staging/github.com/gogo/protobuf/proto/proto3_proto/proto3.proto, staging/github.com/gogo/protobuf/proto/test_proto/test.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/api.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/empty.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/field_mask.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/source_context.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/struct.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/type.proto, staging/github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/deprecated/deprecated.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base/extension_base.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra/extension_extra.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_user/extension_user.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc_empty.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/a.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/b.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/importing/importing.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/a.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/b.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt/m.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m1.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m2.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m3.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m4.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m1.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m2.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m1.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m2.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_all.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi1.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi2.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi/multi3.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.proto, staging/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3/proto3.proto, staging/github.com/gogo/protobuf/test/asymetric-issue125/asym.proto, staging/github.com/gogo/protobuf/test/cachedsize/cachedsize.proto, staging/github.com/gogo/protobuf/test/casttype/casttype.proto, staging/github.com/gogo/protobuf/test/casttype/combos/both/casttype.proto, staging/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.proto, staging/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.proto, staging/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.proto, staging/github.com/gogo/protobuf/test/castvalue/castvalue.proto, staging/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.proto, staging/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.proto, staging/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.proto, staging/github.com/gogo/protobuf/test/combos/both/thetest.proto, staging/github.com/gogo/protobuf/test/combos/marshaler/thetest.proto, staging/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.proto, staging/github.com/gogo/protobuf/test/custombytesnonstruct/proto.proto, staging/github.com/gogo/protobuf/test/dashfilename/dash-filename.proto, staging/github.com/gogo/protobuf/test/data/data.proto, staging/github.com/gogo/protobuf/test/defaultconflict/df.proto, staging/github.com/gogo/protobuf/test/defaultconflict/dg.proto, staging/github.com/gogo/protobuf/test/defaultconflict/nc.proto, staging/github.com/gogo/protobuf/test/defaultconflict/ne.proto, staging/github.com/gogo/protobuf/test/defaultconflict/nx.proto, staging/github.com/gogo/protobuf/test/deterministic/deterministic.proto, staging/github.com/gogo/protobuf/test/embedconflict/eb.proto, staging/github.com/gogo/protobuf/test/embedconflict/ec.proto, staging/github.com/gogo/protobuf/test/embedconflict/ee.proto, staging/github.com/gogo/protobuf/test/embedconflict/em.proto, staging/github.com/gogo/protobuf/test/embedconflict/en.proto, staging/github.com/gogo/protobuf/test/embedconflict/er.proto, staging/github.com/gogo/protobuf/test/empty-issue70/empty.proto, staging/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.proto, staging/github.com/gogo/protobuf/test/enumdecl/enumdecl.proto, staging/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.proto, staging/github.com/gogo/protobuf/test/enumprefix/enumprefix.proto, staging/github.com/gogo/protobuf/test/enumstringer/enumstringer.proto, staging/github.com/gogo/protobuf/test/example/example.proto, staging/github.com/gogo/protobuf/test/filedotname/file.dot.proto, staging/github.com/gogo/protobuf/test/fuzztests/fuzz.proto, staging/github.com/gogo/protobuf/test/group/group.proto, staging/github.com/gogo/protobuf/test/importcustom-issue389/imported/a.proto, staging/github.com/gogo/protobuf/test/importcustom-issue389/importing/c.proto, staging/github.com/gogo/protobuf/test/importdedup/proto.proto, staging/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.proto, staging/github.com/gogo/protobuf/test/importduplicate/importduplicate.proto, staging/github.com/gogo/protobuf/test/importduplicate/proto/proto.proto, staging/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.proto, staging/github.com/gogo/protobuf/test/indeximport-issue72/index/index.proto, staging/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.proto, staging/github.com/gogo/protobuf/test/int64support/object.proto, staging/github.com/gogo/protobuf/test/issue260/issue260.proto, staging/github.com/gogo/protobuf/test/issue261/issue261.proto, staging/github.com/gogo/protobuf/test/issue262/timefail.proto, staging/github.com/gogo/protobuf/test/issue270/a/a1.proto, staging/github.com/gogo/protobuf/test/issue270/a/a2.proto, staging/github.com/gogo/protobuf/test/issue270/b/b.proto, staging/github.com/gogo/protobuf/test/issue312/events/events.proto, staging/github.com/gogo/protobuf/test/issue312/issue312.proto, staging/github.com/gogo/protobuf/test/issue322/issue322.proto, staging/github.com/gogo/protobuf/test/issue330/issue330.proto, staging/github.com/gogo/protobuf/test/issue34/proto.proto, staging/github.com/gogo/protobuf/test/issue411/issue411.proto, staging/github.com/gogo/protobuf/test/issue427/issue427.proto, staging/github.com/gogo/protobuf/test/issue42order/issue42.proto, staging/github.com/gogo/protobuf/test/issue435/issue435.proto, staging/github.com/gogo/protobuf/test/issue438/issue438.proto, staging/github.com/gogo/protobuf/test/issue444/issue444.proto, staging/github.com/gogo/protobuf/test/issue449/issue449.proto, staging/github.com/gogo/protobuf/test/issue498/issue498.proto, staging/github.com/gogo/protobuf/test/issue503/issue503.proto, staging/github.com/gogo/protobuf/test/issue530/issue530.proto, staging/github.com/gogo/protobuf/test/issue617/issue617.proto, staging/github.com/gogo/protobuf/test/issue620/issue620.proto, staging/github.com/gogo/protobuf/test/issue630/issue630.proto, staging/github.com/gogo/protobuf/test/issue8/proto.proto, staging/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.proto, staging/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.proto, staging/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.proto, staging/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.proto, staging/github.com/gogo/protobuf/test/mapdefaults/map.proto, staging/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.proto, staging/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.proto, staging/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.proto, staging/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.proto, staging/github.com/gogo/protobuf/test/mapsproto2/header.proto, staging/github.com/gogo/protobuf/test/mapsproto2/mapsproto2.proto, staging/github.com/gogo/protobuf/test/merge/merge.proto, staging/github.com/gogo/protobuf/test/moredefaults/md.proto, staging/github.com/gogo/protobuf/test/nopackage/nopackage.proto, staging/github.com/gogo/protobuf/test/oneof/combos/both/one.proto, staging/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.proto, staging/github.com/gogo/protobuf/test/oneof/combos/neither/one.proto, staging/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.proto, staging/github.com/gogo/protobuf/test/oneof/one.proto, staging/github.com/gogo/protobuf/test/oneof3/combos/both/one.proto, staging/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.proto, staging/github.com/gogo/protobuf/test/oneof3/combos/neither/one.proto, staging/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.proto, staging/github.com/gogo/protobuf/test/oneof3/one.proto, staging/github.com/gogo/protobuf/test/oneofembed/oneofembed.proto, staging/github.com/gogo/protobuf/test/packed/packed.proto, staging/github.com/gogo/protobuf/test/proto3extension/proto3ext.proto, staging/github.com/gogo/protobuf/test/protobuffer/protobuffer.proto, staging/github.com/gogo/protobuf/test/protosize/protosize.proto, staging/github.com/gogo/protobuf/test/registration/registration.proto, staging/github.com/gogo/protobuf/test/required/requiredexample.proto, staging/github.com/gogo/protobuf/test/setextensionbytes/setextensionbytes.proto, staging/github.com/gogo/protobuf/test/sizerconflict/sizerconflict.proto, staging/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.proto, staging/github.com/gogo/protobuf/test/stdtypes/stdtypes.proto, staging/github.com/gogo/protobuf/test/tags/tags.proto, staging/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.proto, staging/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.proto, staging/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.proto, staging/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.proto, staging/github.com/gogo/protobuf/test/theproto3/footer.proto, staging/github.com/gogo/protobuf/test/theproto3/header.proto, staging/github.com/gogo/protobuf/test/theproto3/maps.proto, staging/github.com/gogo/protobuf/test/theproto3/theproto3.proto, staging/github.com/gogo/protobuf/test/thetest.proto, staging/github.com/gogo/protobuf/test/typedecl/typedecl.proto, staging/github.com/gogo/protobuf/test/typedecl_all/typedeclall.proto, staging/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.proto, staging/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.proto, staging/github.com/gogo/protobuf/test/types/combos/both/types.proto, staging/github.com/gogo/protobuf/test/types/combos/marshaler/types.proto, staging/github.com/gogo/protobuf/test/types/combos/neither/types.proto, staging/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.proto, staging/github.com/gogo/protobuf/test/types/types.proto, staging/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.proto, staging/github.com/gogo/protobuf/test/unrecognized/unrecognized.proto, staging/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.proto, staging/github.com/gogo/protobuf/test/xxxfields/xxxfields.proto, staging/github.com/gogo/protobuf/vanity/test/gogovanity.proto, staging/github.com/gogo/protobuf/vanity/test/proto3.proto, staging/github.com/gogo/protobuf/vanity/test/vanity.proto, staging/k8s.io/api/admission/v1/generated.proto, staging/k8s.io/api/admission/v1beta1/generated.proto, staging/k8s.io/api/admissionregistration/v1/generated.proto, staging/k8s.io/api/admissionregistration/v1alpha1/generated.proto, staging/k8s.io/api/admissionregistration/v1beta1/generated.proto, staging/k8s.io/api/apidiscovery/v2/generated.proto, staging/k8s.io/api/apidiscovery/v2beta1/generated.proto, staging/k8s.io/api/apiserverinternal/v1alpha1/generated.proto, staging/k8s.io/api/apps/v1/generated.proto, staging/k8s.io/api/apps/v1beta1/generated.proto, staging/k8s.io/api/apps/v1beta2/generated.proto, staging/k8s.io/api/authentication/v1/generated.proto, staging/k8s.io/api/authentication/v1alpha1/generated.proto, staging/k8s.io/api/authentication/v1beta1/generated.proto, staging/k8s.io/api/authorization/v1/generated.proto, staging/k8s.io/api/authorization/v1beta1/generated.proto, staging/k8s.io/api/autoscaling/v1/generated.proto, staging/k8s.io/api/autoscaling/v2/generated.proto, staging/k8s.io/api/autoscaling/v2beta1/generated.proto, staging/k8s.io/api/autoscaling/v2beta2/generated.proto, staging/k8s.io/api/batch/v1/generated.proto, staging/k8s.io/api/batch/v1beta1/generated.proto, staging/k8s.io/api/certificates/v1/generated.proto, staging/k8s.io/api/certificates/v1alpha1/generated.proto, staging/k8s.io/api/certificates/v1beta1/generated.proto, staging/k8s.io/api/coordination/v1/generated.proto, staging/k8s.io/api/coordination/v1alpha2/generated.proto, staging/k8s.io/api/coordination/v1beta1/generated.proto, staging/k8s.io/api/core/v1/generated.proto, staging/k8s.io/api/discovery/v1/generated.proto, staging/k8s.io/api/discovery/v1beta1/generated.proto, staging/k8s.io/api/events/v1/generated.proto, staging/k8s.io/api/events/v1beta1/generated.proto, staging/k8s.io/api/extensions/v1beta1/generated.proto, staging/k8s.io/api/flowcontrol/v1/generated.proto, staging/k8s.io/api/flowcontrol/v1beta1/generated.proto, staging/k8s.io/api/flowcontrol/v1beta2/generated.proto, staging/k8s.io/api/flowcontrol/v1beta3/generated.proto, staging/k8s.io/api/imagepolicy/v1alpha1/generated.proto, staging/k8s.io/api/networking/v1/generated.proto, staging/k8s.io/api/networking/v1beta1/generated.proto, staging/k8s.io/api/node/v1/generated.proto, staging/k8s.io/api/node/v1alpha1/generated.proto, staging/k8s.io/api/node/v1beta1/generated.proto, staging/k8s.io/api/policy/v1/generated.proto, staging/k8s.io/api/policy/v1beta1/generated.proto, staging/k8s.io/api/rbac/v1/generated.proto, staging/k8s.io/api/rbac/v1alpha1/generated.proto, staging/k8s.io/api/rbac/v1beta1/generated.proto, staging/k8s.io/api/resource/v1/generated.proto, staging/k8s.io/api/resource/v1alpha3/generated.proto, staging/k8s.io/api/resource/v1beta1/generated.proto, staging/k8s.io/api/resource/v1beta2/generated.proto, staging/k8s.io/api/scheduling/v1/generated.proto, staging/k8s.io/api/scheduling/v1alpha1/generated.proto, staging/k8s.io/api/scheduling/v1beta1/generated.proto, staging/k8s.io/api/storage/v1/generated.proto, staging/k8s.io/api/storage/v1alpha1/generated.proto, staging/k8s.io/api/storage/v1beta1/generated.proto, staging/k8s.io/api/storagemigration/v1beta1/generated.proto, staging/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto, staging/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto, staging/k8s.io/apiextensions-apiserver/pkg/apiserver/testdata/swagger.json, staging/k8s.io/apimachinery/pkg/api/resource/generated.proto, staging/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto, staging/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto, staging/k8s.io/apimachinery/pkg/apis/testapigroup/v1/generated.proto, staging/k8s.io/apimachinery/pkg/runtime/generated.proto, staging/k8s.io/apimachinery/pkg/runtime/schema/generated.proto, staging/k8s.io/apimachinery/pkg/util/intstr/generated.proto, staging/k8s.io/apimachinery/pkg/util/managedfields/internal/testdata/swagger.json, staging/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.proto, staging/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.proto"
}
}
],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "example, examples, sample",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "example, examples, sample"
}
}
],
"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",
"Could not fetch go package 'gpustack.ai/gpustack' from its registry"
],
"report_type": "repository",
"generated_at": "2026-07-26T02:53:02.487633Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/g/gpustack/gpustack-operator.svg",
"full_name": "gpustack/gpustack-operator",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}