Звіт у форматі JSON машиночитний
{
"data": {
"repo": {
"topics": [
"linux",
"containers",
"science",
"hpc",
"apptainer",
"singularity",
"singularity-container",
"rootless-containers"
],
"is_fork": false,
"size_kb": 43556,
"has_wiki": true,
"homepage": "https://apptainer.org",
"languages": {
"C": 85659,
"Go": 3421527,
"Awk": 15526,
"Shell": 134909,
"Python": 4739,
"Makefile": 15628,
"Go Template": 1660
},
"pushed_at": "2026-08-02T21:47:13Z",
"created_at": "2021-11-30T13:45:16Z",
"owner_type": "Organization",
"updated_at": "2026-08-02T21:48:05Z",
"description": "Apptainer: Application containers for Linux",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": "NOASSERTION",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": "http://www.apptainer.org",
"name": "The Apptainer Container Project",
"type": "Organization",
"login": "apptainer",
"company": null,
"location": null,
"followers": 139,
"avatar_url": "https://avatars.githubusercontent.com/u/91697023?v=4",
"created_at": "2021-09-30T19:22:03Z",
"is_verified": null,
"public_repos": 12,
"account_age_days": 1767
},
"license": {
"state": "custom",
"spdx_id": null,
"raw_spdx": "NOASSERTION",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v1.5.3",
"kind": "patch",
"published_at": "2026-07-21T19:22:59Z"
},
{
"tag": "v1.5.2",
"kind": "patch",
"published_at": "2026-06-23T20:48:13Z"
},
{
"tag": "v1.5.1",
"kind": "patch",
"published_at": "2026-06-04T15:11:21Z"
},
{
"tag": "v1.5.0",
"kind": "minor",
"published_at": "2026-05-07T01:36:23Z"
},
{
"tag": "v1.5.0-rc.2",
"kind": "prerelease",
"published_at": "2026-04-14T22:27:28Z"
},
{
"tag": "v1.5.0-rc.1",
"kind": "prerelease",
"published_at": "2026-03-12T18:47:49Z"
},
{
"tag": "v1.4.5",
"kind": "patch",
"published_at": "2025-12-02T17:23:16Z"
},
{
"tag": "v1.4.4",
"kind": "patch",
"published_at": "2025-10-29T15:44:11Z"
},
{
"tag": "v1.4.3",
"kind": "patch",
"published_at": "2025-09-29T13:48:07Z"
},
{
"tag": "v1.4.2",
"kind": "patch",
"published_at": "2025-08-08T01:17:42Z"
},
{
"tag": "v1.4.1",
"kind": "patch",
"published_at": "2025-05-15T02:53:36Z"
},
{
"tag": "v1.4.0",
"kind": "minor",
"published_at": "2025-03-18T21:39:07Z"
},
{
"tag": "v1.4.0-rc.2",
"kind": "prerelease",
"published_at": "2025-03-04T21:19:32Z"
},
{
"tag": "v1.4.0-rc.1",
"kind": "prerelease",
"published_at": "2025-01-21T21:38:45Z"
},
{
"tag": "v1.3.6",
"kind": "patch",
"published_at": "2024-12-04T17:11:46Z"
},
{
"tag": "v1.3.5",
"kind": "patch",
"published_at": "2024-10-30T16:54:46Z"
},
{
"tag": "v1.3.4",
"kind": "patch",
"published_at": "2024-09-05T04:13:27Z"
},
{
"tag": "v1.3.3",
"kind": "patch",
"published_at": "2024-07-03T18:18:56Z"
},
{
"tag": "v1.3.2",
"kind": "patch",
"published_at": "2024-05-28T18:14:42Z"
},
{
"tag": "v1.3.1",
"kind": "patch",
"published_at": "2024-04-24T16:33:54Z"
},
{
"tag": "v1.3.0",
"kind": "minor",
"published_at": "2024-03-13T02:08:11Z"
},
{
"tag": "v1.3.0-rc.2",
"kind": "prerelease",
"published_at": "2024-02-15T18:31:08Z"
},
{
"tag": "v1.3.0-rc.1",
"kind": "prerelease",
"published_at": "2024-01-10T16:44:26Z"
},
{
"tag": "v1.2.5",
"kind": "patch",
"published_at": "2023-11-22T18:51:45Z"
},
{
"tag": "v1.2.4",
"kind": "patch",
"published_at": "2023-10-11T13:40:26Z"
},
{
"tag": "v1.2.3",
"kind": "patch",
"published_at": "2023-09-14T15:22:09Z"
},
{
"tag": "v1.2.2",
"kind": "patch",
"published_at": "2023-07-27T16:49:06Z"
},
{
"tag": "v1.2.1",
"kind": "patch",
"published_at": "2023-07-24T20:38:46Z"
},
{
"tag": "v1.2.0",
"kind": "minor",
"published_at": "2023-07-19T00:27:35Z"
},
{
"tag": "v1.2.0-rc.2",
"kind": "prerelease",
"published_at": "2023-07-06T01:01:18Z"
},
{
"tag": "v1.2.0-rc.1",
"kind": "prerelease",
"published_at": "2023-06-07T22:48:36Z"
},
{
"tag": "v1.1.9",
"kind": "patch",
"published_at": "2023-06-07T16:15:13Z"
},
{
"tag": "v1.1.8",
"kind": "patch",
"published_at": "2023-04-25T16:01:28Z"
},
{
"tag": "v1.1.7",
"kind": "patch",
"published_at": "2023-03-29T04:35:53Z"
},
{
"tag": "v1.1.6",
"kind": "patch",
"published_at": "2023-02-14T22:02:51Z"
},
{
"tag": "v1.1.5",
"kind": "patch",
"published_at": "2023-01-10T20:09:11Z"
},
{
"tag": "v1.1.4",
"kind": "patch",
"published_at": "2022-12-13T19:04:22Z"
},
{
"tag": "v1.1.3",
"kind": "patch",
"published_at": "2022-10-25T16:02:24Z"
},
{
"tag": "v1.1.2",
"kind": "patch",
"published_at": "2022-10-06T19:56:23Z"
},
{
"tag": "v1.1.0",
"kind": "minor",
"published_at": "2022-09-27T15:30:29Z"
},
{
"tag": "v1.1.0-rc.3",
"kind": "prerelease",
"published_at": "2022-09-06T16:54:10Z"
},
{
"tag": "v1.1.0-rc.2",
"kind": "prerelease",
"published_at": "2022-08-17T16:45:47Z"
},
{
"tag": "v1.1.0-rc.1",
"kind": "prerelease",
"published_at": "2022-08-01T22:10:41Z"
},
{
"tag": "v1.0.3",
"kind": "patch",
"published_at": "2022-07-06T16:53:11Z"
},
{
"tag": "v1.0.2",
"kind": "patch",
"published_at": "2022-05-10T15:14:52Z"
},
{
"tag": "v1.0.1",
"kind": "patch",
"published_at": "2022-03-16T17:49:42Z"
},
{
"tag": "v1.0.0",
"kind": "major",
"published_at": "2022-03-03T06:31:45Z"
},
{
"tag": "v1.0.0-rc.2",
"kind": "prerelease",
"published_at": "2022-02-08T22:08:12Z"
},
{
"tag": "v1.0.0-rc.1",
"kind": "prerelease",
"published_at": "2022-01-19T22:08:18Z"
},
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2021-12-10T16:55:20Z"
}
],
"recent_commits": [
{
"oid": "a7555e75bfc1df0a9ec04d082e0d60fec8feb41e",
"body": "Fix PRoot build for epel11",
"is_bot": false,
"headline": "Merge pull request #3669 from DrDaveD/support-epel11",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-08-02T21:47:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa609decb024776a99b2272f7a8809bd41d8a7ea",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "fix epel11 build",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-08-01T12:57:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e50ee8fb4916fae45681712c17cfe54d2f0d7af5",
"body": "…thub.com/vbauerster/mpb/v8-8.14.0\n\nbuild(deps): bump github.com/vbauerster/mpb/v8 from 8.13.0 to 8.14.0",
"is_bot": false,
"headline": "Merge pull request #3662 from apptainer/dependabot/go_modules/main/gi…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-31T17:55:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d204b7208c4d9d66b2d4663420a929852193a220",
"body": "…by-4f28436ffc\n\nbuild(deps): bump github.com/moby/moby/client from 0.5.0 to 0.5.1 in the moby group",
"is_bot": false,
"headline": "Merge pull request #3660 from apptainer/dependabot/go_modules/main/mo…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-31T17:55:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b3d87f4540d0daa6c916a65c4274ad55f2b7e05d",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "update license dependencies for github.com/vbauerster/mpb/v8-8.14.0",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-31T17:21:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d5b6cb3e2ac6783c60d2d804dad63910b8f408c8",
"body": "…thub.com/buger/jsonparser-1.3.1\n\nbuild(deps): bump github.com/buger/jsonparser from 1.2.0 to 1.3.1",
"is_bot": false,
"headline": "Merge pull request #3661 from apptainer/dependabot/go_modules/main/gi…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-31T17:06:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2dd2fee7ab1b8ab759ea839f29993d9ec6fb3eaf",
"body": "Bumps [github.com/vbauerster/mpb/v8](https://github.com/vbauerster/mpb) from 8.13.0 to 8.14.0.\n- [Release notes](https://github.com/vbauerster/mpb/releases)\n- [Commits](https://github.com/vbauerster/mpb/compare/v8.13.0...v8.14.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/vbauerster/mpb/v8\n dependency-version: 8.14.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/vbauerster/mpb/v8 from 8.13.0 to 8.14.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-31T07:03:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bbaded99a5bc741319cfc1c8b631b6e27edf7841",
"body": "Bumps [github.com/buger/jsonparser](https://github.com/buger/jsonparser) from 1.2.0 to 1.3.1.\n- [Release notes](https://github.com/buger/jsonparser/releases)\n- [Changelog](https://github.com/buger/jsonparser/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/buger/jsonparser/compare/v1.2.0...v\n[…]\ny-name: github.com/buger/jsonparser\n dependency-version: 1.3.1\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/buger/jsonparser from 1.2.0 to 1.3.1",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-31T07:02:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "82c90bf61e59cf8c490e0cd4cdb2d7929578d5b8",
"body": "Bumps the moby group with 1 update: [github.com/moby/moby/client](https://github.com/moby/moby).\n\n\nUpdates `github.com/moby/moby/client` from 0.5.0 to 0.5.1\n- [Release notes](https://github.com/moby/moby/releases)\n- [Changelog](https://github.com/moby/moby/blob/v0.5.1/CHANGELOG.md)\n- [Commits](https\n[…]\noby/client\n dependency-version: 0.5.1\n dependency-type: direct:production\n update-type: version-update:semver-patch\n dependency-group: moby\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/moby/moby/client in the moby group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-31T07:02:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ccb6744ee334e089907ef1ff0a9d22c6a8afafc2",
"body": "Default to /var/tmp if /tmp is on tmpfs",
"is_bot": false,
"headline": "Merge pull request #3658 from afbjorklund/tmp-on-tmpfs",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-29T21:46:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e859974b373c4da306a7b73a5dde52a4829a95d5",
"body": "The tmpfs mount on /tmp by systemd typically has \"nodev\"\nand is too small for use by Apptainer. Use /var/tmp instead.\n\nSigned-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>",
"is_bot": false,
"headline": "Default to /var/tmp if /tmp is on tmpfs",
"author_name": "Anders F Björklund",
"author_login": "afbjorklund",
"committed_at": "2026-07-28T10:45:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "793ef6970734200c2b6c4345257e6645659dd75d",
"body": "…(#3652)\n\nBumps [github.com/vbauerster/mpb/v8](https://github.com/vbauerster/mpb) from 8.12.1 to 8.13.0.\n- [Release notes](https://github.com/vbauerster/mpb/releases)\n- [Commits](https://github.com/vbauerster/mpb/compare/v8.12.1...v8.13.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/vba\n[…]\nirect:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/vbauerster/mpb/v8 from 8.12.1 to 8.13.0 …",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-27T15:13:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "55479d1acca5ff6f834f84d71b9157f8b01641e2",
"body": "Bumps the opencontainers group with 1 update: [github.com/opencontainers/cgroups](https://github.com/opencontainers/cgroups).\n\n\nUpdates `github.com/opencontainers/cgroups` from 0.0.7 to 0.0.8\n- [Release notes](https://github.com/opencontainers/cgroups/releases)\n- [Changelog](https://github.com/openc\n[…]\nsion-update:semver-patch\n dependency-group: opencontainers\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/opencontainers/cgroups (#3650)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-27T15:12:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c43d694a40ec877551829160f8bba514454e2864",
"body": "Bumps the moby group with 1 update: [github.com/moby/go-archive](https://github.com/moby/go-archive).\n\n\nUpdates `github.com/moby/go-archive` from 0.2.0 to 0.2.1\n- [Release notes](https://github.com/moby/go-archive/releases)\n- [Changelog](https://github.com/moby/go-archive/blob/main/changes_test.go)\n\n[…]\n-type: version-update:semver-patch\n dependency-group: moby\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/moby/go-archive in the moby group (#3649)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-27T15:12:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b86c0aa171357c7be265d3130ab4f13a4061422f",
"body": "* Update nvliblist.conf\n\nSigned-off-by: Alan O'Cais <alan.ocais@cecam.org>\n\n* Add entry for #3656 in CHANGELOG.md\n\nSigned-off-by: Alan O'Cais <alan.ocais@cecam.org>\n\n---------\n\nSigned-off-by: Alan O'Cais <alan.ocais@cecam.org>",
"is_bot": false,
"headline": "Add support for Tegra (as found in Jetson developer boards) (#3656)",
"author_name": "ocaisa",
"author_login": "ocaisa",
"committed_at": "2026-07-24T14:15:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9dcd7eb95b7978dc6d7dd8d51d69a30c4266e67d",
"body": "Merge release-1.5 into main after 1.5.3 release",
"is_bot": false,
"headline": "Merge pull request #3648 from DrDaveD/merge-1.5.3",
"author_name": "cclerget",
"author_login": "cclerget",
"committed_at": "2026-07-23T19:53:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "07aec200fd55c21dbe4fe977d15b71e46d99645c",
"body": null,
"is_bot": false,
"headline": "Merge branch 'release-1.5' into merge-1.5.3",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-23T17:57:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f1a118c7c6ec56c81fc756a3b0dfd7a1738fdb6",
"body": "Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.81.1 to 1.82.1.\n- [Release notes](https://github.com/grpc/grpc-go/releases)\n- [Commits](https://github.com/grpc/grpc-go/compare/v1.81.1...v1.82.1)\n\n---\nupdated-dependencies:\n- dependency-name: google.golang.org/grpc\n dependency-version: 1.82.1\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "build(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.1 (#3644)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-23T13:09:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "613f895c2f26ea4514799e8c5c92008519e4483a",
"body": "* Upgrade containers/image and containers/storage\n\nUpdate them to main, before the move to monorepo.\n\nSigned-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>\n\n* Switch to the containers/container-libs monorepo\n\nAccessed through the \"go.podman.io\" vanity domain.\n\nSigned-off-by: Anders F Björ\n[…]\nrsions\n\nMatching podman v5.8.5 (previously podman v5.7.0)\n\nSigned-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>\n\n---------\n\nSigned-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>",
"is_bot": false,
"headline": "Switch from github.com/containers to go.podman.io (#3643)",
"author_name": "Anders Björklund",
"author_login": "afbjorklund",
"committed_at": "2026-07-22T18:39:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6a76317a87c4eae10f52c7805965756a919291d7",
"body": "Prepare for 1.5.3",
"is_bot": false,
"headline": "Merge pull request #3642 from DrDaveD/prepare-1.5.3",
"author_name": "cclerget",
"author_login": "cclerget",
"committed_at": "2026-07-21T18:47:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c6f25ad33ffff355e0eb73561a6f0e6a1cd3740c",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "prepare for 1.5.3",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-21T18:02:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3888f60557dd80ec50ab1951a04ea4c9eaaee606",
"body": "build(deps): bump github.com/sigstore/fulcio from 1.8.5 to 1.8.6 (release-1.5)",
"is_bot": false,
"headline": "Merge pull request #3628 from DrDaveD/pick3608",
"author_name": "cclerget",
"author_login": "cclerget",
"committed_at": "2026-07-21T16:46:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0833796b8da57936b5cf743803986d6acada920f",
"body": "Update minimum go version to 1.26.5",
"is_bot": false,
"headline": "Merge pull request #3632 from DrDaveD/update-go-1.26",
"author_name": "cclerget",
"author_login": "cclerget",
"committed_at": "2026-07-21T16:45:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "de4daed557ee63469b4f59826992c5ff1dbb8d70",
"body": "…thub.com/apptainer/container-library-client-1.4.16\n\nbuild(deps): bump github.com/apptainer/container-library-client from 1.4.15 to 1.4.16",
"is_bot": false,
"headline": "Merge pull request #3635 from apptainer/dependabot/go_modules/main/gi…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-17T21:40:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d40e0d22603d21ea1eb13701292384d3fbfb0080",
"body": "…encontainers-4d864958e9\n\nbuild(deps): bump github.com/opencontainers/runc from 1.5.0 to 1.5.1 in the opencontainers group",
"is_bot": false,
"headline": "Merge pull request #3634 from apptainer/dependabot/go_modules/main/op…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-17T21:40:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b9bb3e2826061d615b0c0036127d794ad9c0a46",
"body": "…by-fb01a5fc3c\n\nbuild(deps): bump github.com/docker/cli from 29.6.1+incompatible to 29.6.2+incompatible in the moby group",
"is_bot": false,
"headline": "Merge pull request #3633 from apptainer/dependabot/go_modules/main/mo…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-17T21:40:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9cfefde5af8c697d4426d18aa1a043c3f1a172f3",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "chore: disable stlib package name lint",
"author_name": "David Trudgian",
"author_login": "dtrudg",
"committed_at": "2026-07-17T15:09:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "056513c6ac38bf8f051d38ecdfb8589fa60035bf",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "additional preallocs for lint",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-17T15:09:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b9655190b05b9ca6f5d496c9afa110f0c5384820",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "chore: address new lint",
"author_name": "David Trudgian",
"author_login": "dtrudg",
"committed_at": "2026-07-17T15:09:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8f35a54e22e9dd91efd8e03470d8752b3bec4d91",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "update minimum go version to 1.26.5",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-17T15:09:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e2f6946caf263a48de7f5a732283bd5ccf551cff",
"body": "Bumps [github.com/apptainer/container-library-client](https://github.com/apptainer/container-library-client) from 1.4.15 to 1.4.16.\n- [Commits](https://github.com/apptainer/container-library-client/compare/v1.4.15...v1.4.16)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/apptainer/container-library-client\n dependency-version: 1.4.16\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/apptainer/container-library-client",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-17T07:03:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01ad752a70ecbd499ca0fcd687b5cc75769e5125",
"body": "Bumps the opencontainers group with 1 update: [github.com/opencontainers/runc](https://github.com/opencontainers/runc).\n\n\nUpdates `github.com/opencontainers/runc` from 1.5.0 to 1.5.1\n- [Release notes](https://github.com/opencontainers/runc/releases)\n- [Changelog](https://github.com/opencontainers/ru\n[…]\n\n dependency-version: 1.5.1\n dependency-type: direct:production\n update-type: version-update:semver-patch\n dependency-group: opencontainers\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/opencontainers/runc",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-17T07:03:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7070eb9194bbfc2c3274b0ebe388c2aef243388b",
"body": "Bumps the moby group with 1 update: [github.com/docker/cli](https://github.com/docker/cli).\n\n\nUpdates `github.com/docker/cli` from 29.6.1+incompatible to 29.6.2+incompatible\n- [Commits](https://github.com/docker/cli/compare/v29.6.1...v29.6.2)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/\n[…]\nependency-version: 29.6.2+incompatible\n dependency-type: direct:production\n update-type: version-update:semver-patch\n dependency-group: moby\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/docker/cli in the moby group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-17T07:02:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4c2ae41f31ecab424da4f960ed222f2ae66d42e3",
"body": "Bind getopt from the host for fakeroot command mode (release-1.5)",
"is_bot": false,
"headline": "Merge pull request #3631 from DrDaveD/pick3630",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-15T21:27:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d3cc063bd368c31544d7cad26d8b4ddd46c85bed",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "bind getopt from the host for fakeroot command mode",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-15T11:55:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ce1aee14b75e9122941076e5ef33b38ef10a625f",
"body": "Bind getopt from the host for fakeroot command mode",
"is_bot": false,
"headline": "Merge pull request #3630 from DrDaveD/include-getopt-in-fakeroot-command",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-15T11:51:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96db7c4df843bdeb8a18eb5ce87fff83597e6ef6",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "bind getopt from the host for fakeroot command mode",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-14T16:01:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0ab22bbef018258e9603c726978545986d4d7aa6",
"body": "build: use an os.Root for Mkdir / Writefile operations, from sylabs 4178",
"is_bot": false,
"headline": "Merge pull request #3609 from luissimas/sylabs4178",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-14T13:39:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e93d453b3818571b80bdcc973f35903b10986a6a",
"body": "In google/go-containerregistry, validation of private / link-local\nauth realms now requires a host:port match with the registry.\n\nWe need to put the auth behind a mux, so it's at the same host:port\ninstead of running at a separate listener.\n\nSigned-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "fix: e2e: registry & auth on same port",
"author_name": "David Trudgian",
"author_login": "dtrudg",
"committed_at": "2026-07-13T18:07:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b20e3d68cab70d9f8b58939d2d32a5130f3ce0d2",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "bump google/go-containerregistry from v0.21.5 to v0.21.6",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-13T17:53:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a71fe0c1edb9c12b9efca2ad383d9b1fa4171bce",
"body": "Bumps [github.com/sigstore/fulcio](https://github.com/sigstore/fulcio) from 1.8.5 to 1.8.6.\n- [Release notes](https://github.com/sigstore/fulcio/releases)\n- [Changelog](https://github.com/sigstore/fulcio/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/sigstore/fulcio/compare/v1.8.5...v1.8.6)\n\n[…]\n/sigstore/fulcio\n dependency-version: 1.8.6\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nSigned-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/sigstore/fulcio from 1.8.5 to 1.8.6",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-10T21:43:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "431a1cbe67e12b95830412b86c44e97c6fd3da96",
"body": "…thub.com/pelletier/go-toml/v2-2.4.3\n\nbuild(deps): bump github.com/pelletier/go-toml/v2 from 2.4.2 to 2.4.3",
"is_bot": false,
"headline": "Merge pull request #3619 from apptainer/dependabot/go_modules/main/gi…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-10T21:43:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68f21d3688dfc2cec7913fa26a58452b11d7199e",
"body": "…lang.org/x/crypto-0.54.0\n\nbuild(deps): bump golang.org/x/crypto from 0.53.0 to 0.54.0",
"is_bot": false,
"headline": "Merge pull request #3621 from apptainer/dependabot/go_modules/main/go…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-10T21:23:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a49ff09864a23ff920f81b857f1736c0540c295d",
"body": "Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.53.0 to 0.54.0.\n- [Commits](https://github.com/golang/crypto/compare/v0.53.0...v0.54.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/crypto\n dependency-version: 0.54.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump golang.org/x/crypto from 0.53.0 to 0.54.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-10T07:03:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "89a05dae12dbb564de5cddc08fff3e3599bbd76f",
"body": "Bumps [github.com/pelletier/go-toml/v2](https://github.com/pelletier/go-toml) from 2.4.2 to 2.4.3.\n- [Release notes](https://github.com/pelletier/go-toml/releases)\n- [Commits](https://github.com/pelletier/go-toml/compare/v2.4.2...v2.4.3)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/pelletier/go-toml/v2\n dependency-version: 2.4.3\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/pelletier/go-toml/v2 from 2.4.2 to 2.4.3",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-10T07:03:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b0cfce7802da0ddbefdb63505a1e5640f1bea05",
"body": "…by-a2be455989\n\nbuild(deps): bump github.com/docker/cli from 29.6.0+incompatible to 29.6.1+incompatible in the moby group",
"is_bot": false,
"headline": "Merge pull request #3613 from apptainer/dependabot/go_modules/main/mo…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-06T15:46:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8014a3f9ed0474443caff0e84fa269634847b6c3",
"body": "e2e: basic nested in docker/podman testing, from sylabs3545",
"is_bot": false,
"headline": "Merge pull request #3612 from DrDaveD/sylabs3545-3548",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-03T16:10:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "39869a07c59c1e97b21feb570fbd5d7ba8cb76ed",
"body": "Bumps the moby group with 1 update: [github.com/docker/cli](https://github.com/docker/cli).\n\n\nUpdates `github.com/docker/cli` from 29.6.0+incompatible to 29.6.1+incompatible\n- [Commits](https://github.com/docker/cli/compare/v29.6.0...v29.6.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/\n[…]\nependency-version: 29.6.1+incompatible\n dependency-type: direct:production\n update-type: version-update:semver-patch\n dependency-group: moby\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/docker/cli in the moby group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-03T07:02:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4751676c8f9bd980ddb9ef506e2e2332be2eaf5b",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "bind mount apptainer for nesting test instead of rebuilding it",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-03T02:47:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "169cc66176c3687754e8d0cf8076683858edb7f4",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "run e2e on ubuntu 24.04",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-02T22:06:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35e431058bbe87ccd5c5442307667ef36e2c8e44",
"body": "Skip running proot if ptrace() doesn't work (release-1.5)",
"is_bot": false,
"headline": "Merge pull request #3611 from DrDaveD/pick3610",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-02T16:34:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7fa6f0ef17d21a06d8bd0974dbf16510227c20bb",
"body": "Assisted-by: Claude:claude-sonnet-5\nSigned-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "Skip running proot if ptrace() doesn't work",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-02T11:57:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b31d44acfad1bb1e0c2af73ec0a5253c212684f8",
"body": "Skip running proot if ptrace() doesn't work",
"is_bot": false,
"headline": "Merge pull request #3610 from DrDaveD/check-ptrace-before-proot",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-02T11:54:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9cfadab251abbd31738ea01c6e549e0712eb5a89",
"body": "Use Lstat to explicitly check the existence of symlinks without\nfollowing them. Links are recreated if they point to an unexpected\ntarget.\n\nAssisted-by: Claude:claude-4.8-opus\nSigned-off-by: Luís Simas <luis.simas@cern.ch>",
"is_bot": false,
"headline": "build: use Lstat to make base env symlinks idempotent",
"author_name": "Luís Simas",
"author_login": "luissimas",
"committed_at": "2026-07-02T09:01:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "647f5e7a84b341f7f48197b48915a2605514b524",
"body": "Basic testing of minimal container build and execution nested under\nprivileged docker, and rootless podman.\n\nThe docker/podman containerized singularity is built from the source\ntree in which the e2e-tests are running.\n\nWe verify basic nested exec of a container with/without userns (-u)\nand simple build to SIF.\n\nSigned-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "e2e: basic nested in docker/podman testing",
"author_name": "David Trudgian",
"author_login": "dtrudg",
"committed_at": "2026-07-01T20:50:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54f0f42e41fe6523f42754037101f0247509140d",
"body": "Assisted-by: Claude:claude-sonnet-5\nSigned-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "Skip running proot if ptrace() doesn't work",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-07-01T19:53:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3501aa8084f45df349a997e73d124d71288d342d",
"body": "…com/sigstore/fulcio-1.8.6\n\nbuild(deps): bump github.com/sigstore/fulcio from 1.8.5 to 1.8.6",
"is_bot": false,
"headline": "Merge pull request #3608 from apptainer/dependabot/go_modules/github.…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-07-01T16:31:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a29f81caa3daa01f6bfbf0fb2596b4548e45ba80",
"body": "Ensures paths used on os.Root methods are relative and not absolute,\nwhich would cause a runtime error when using os.Root methods.\n\nAssisted-by: Claude:claude-4.8-opus\nSigned-off-by: Luís Simas <luis.simas@cern.ch>",
"is_bot": false,
"headline": "build: fix handling of paths for os.Root",
"author_name": "Luís Simas",
"author_login": "luissimas",
"committed_at": "2026-07-01T13:40:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "267edccdcc7c1ba64d1ed089c253019e45cb024a",
"body": "Assisted-by: Claude:claude-4.8-opus\nSigned-off-by: Luís Simas <luis.simas@cern.ch>",
"is_bot": false,
"headline": "build: expand os.Root usage for missing operations on RootfsPath",
"author_name": "Luís Simas",
"author_login": "luissimas",
"committed_at": "2026-07-01T11:39:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1f2fb8c1c680a149bc3ced0abeebbd8cbee09904",
"body": "In builds, we frequently create directories and write files into a\nrootfs dir. We can use os.Root to better restrict these operations\nto the rootfs directory.\n\nThis code was developed out of exploratory work using Claude Code,\nthat has been manually reviewed and edited. The Co-authored-by trailer\nis added on this basis.\n\nAssisted-by: Claude\n(cherry picked from commit 27ea39104ae02500a1b7db6c377f94b2512d8dbc)\nSigned-off-by: Luís Simas <luis.simas@cern.ch>",
"is_bot": false,
"headline": "build: use an os.Root for Mkdir / Writefile operations",
"author_name": "David Trudgian",
"author_login": "dtrudg",
"committed_at": "2026-07-01T11:39:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a7409e5345bbc56a3d88709628f0d9af2dca415",
"body": "Bumps [github.com/sigstore/fulcio](https://github.com/sigstore/fulcio) from 1.8.5 to 1.8.6.\n- [Release notes](https://github.com/sigstore/fulcio/releases)\n- [Changelog](https://github.com/sigstore/fulcio/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/sigstore/fulcio/compare/v1.8.5...v1.8.6)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/sigstore/fulcio\n dependency-version: 1.8.6\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/sigstore/fulcio from 1.8.5 to 1.8.6",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-30T23:11:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "550f10036756c3952dd44416f218d8e0884be8df",
"body": "…thub.com/pelletier/go-toml/v2-2.4.2\n\nbuild(deps): bump github.com/pelletier/go-toml/v2 from 2.4.0 to 2.4.2",
"is_bot": false,
"headline": "Merge pull request #3601 from apptainer/dependabot/go_modules/main/gi…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-30T18:40:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "40a7e061e4b1d413e0cfea09f1e740c4eb1456d7",
"body": "….yaml.in/yaml/v4-4.0.0-rc.6\n\nbuild(deps): bump go.yaml.in/yaml/v4 from 4.0.0-rc.5 to 4.0.0-rc.6",
"is_bot": false,
"headline": "Merge pull request #3600 from apptainer/dependabot/go_modules/main/go…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-30T18:38:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eaf7e2beab065639b1dd2a6566b03b839cde47f1",
"body": "…by-78bcc5e392\n\nbuild(deps): bump github.com/moby/sys/user from 0.4.0 to 0.4.1 in the moby group",
"is_bot": false,
"headline": "Merge pull request #3599 from apptainer/dependabot/go_modules/main/mo…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-30T18:38:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "86c08985fc1f1415a0c6ae033da3b91c2b70b9cc",
"body": "Merge release-1.5 branch into main",
"is_bot": false,
"headline": "Merge pull request #3598 from DrDaveD/merge-1.5.2",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-30T18:37:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f451a78932f7e88eebdd8325337002f5b21fe41",
"body": "Bumps [github.com/pelletier/go-toml/v2](https://github.com/pelletier/go-toml) from 2.4.0 to 2.4.2.\n- [Release notes](https://github.com/pelletier/go-toml/releases)\n- [Commits](https://github.com/pelletier/go-toml/compare/v2.4.0...v2.4.2)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/pelletier/go-toml/v2\n dependency-version: 2.4.2\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/pelletier/go-toml/v2 from 2.4.0 to 2.4.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-26T07:03:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b823a22fb34e2f513d9148cd2e887f6c9dae36a1",
"body": "Bumps [go.yaml.in/yaml/v4](https://github.com/yaml/go-yaml) from 4.0.0-rc.5 to 4.0.0-rc.6.\n- [Commits](https://github.com/yaml/go-yaml/compare/v4.0.0-rc.5...v4.0.0-rc.6)\n\n---\nupdated-dependencies:\n- dependency-name: go.yaml.in/yaml/v4\n dependency-version: 4.0.0-rc.6\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump go.yaml.in/yaml/v4 from 4.0.0-rc.5 to 4.0.0-rc.6",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-26T07:02:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e5c5c6f7dfaa386179f8fb52131207ff16a44355",
"body": "Bumps the moby group with 1 update: [github.com/moby/sys/user](https://github.com/moby/sys).\n\n\nUpdates `github.com/moby/sys/user` from 0.4.0 to 0.4.1\n- [Release notes](https://github.com/moby/sys/releases)\n- [Commits](https://github.com/moby/sys/compare/user/v0.4.0...user/v0.4.1)\n\n---\nupdated-depend\n[…]\ny/sys/user\n dependency-version: 0.4.1\n dependency-type: direct:production\n update-type: version-update:semver-patch\n dependency-group: moby\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/moby/sys/user in the moby group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-26T07:02:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cefdf62de7520aa15d51c95fb0ac665ebb1a9fe5",
"body": null,
"is_bot": false,
"headline": "Merge branch 'release-1.5' into merge-1.5.2",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-25T22:10:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49814d6bcf6c2c81e232dab8fe2d33446c881161",
"body": "Sync writable extfs",
"is_bot": false,
"headline": "Merge pull request #3578 from r-ushil-gsa/sync-writable-extfs",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-24T21:26:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "75ce65a444330ca7a56232387362ad1d93ed75ae",
"body": "Signed-off-by: Rushil Patel <rushil.patel@gsacapital.com>",
"is_bot": false,
"headline": "Add sync writable extfs config option",
"author_name": "Rushil Patel",
"author_login": "r-ushil-gsa",
"committed_at": "2026-06-24T19:14:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "278038cd0562d281500a7c14940f2203632f67fc",
"body": "Update to 1.5.2",
"is_bot": false,
"headline": "Merge pull request #3595 from DrDaveD/prepare-1.5.2",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-23T20:43:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6a5ba3bfcc9d1bb4ba232e4c89ccc7fe1a8ee60e",
"body": "Update AGENTS.md and security policy",
"is_bot": false,
"headline": "Merge pull request #3591 from DrDaveD/update-security-policy",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-23T20:43:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f42f676334c02b59cddb088cfc3e12e99294f77d",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "update to 1.5.2",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-23T19:41:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "84ebad3964d75bd2ac45190a4985f81243df4dfc",
"body": "Fix build issues (release-1.5)",
"is_bot": false,
"headline": "Merge pull request #3592 from DrDaveD/pick3579",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-23T14:05:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97b3c82e01f09682f0e993db2bd50851930891a2",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "skip building PRoot on Fedora 45 and x86_64",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T18:50:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a354b968870ae9c1e74e0afc924a95788e859234",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "remove tabs in *dependencies scripts",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T18:50:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3b8e1b5f867c447a47a892db38e6a331e750f580",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "build Red Hat rpm with GOEXPERIMENT=strictfipsruntime",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T18:50:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "802c04fda4e331a0132f12e92c4304a9249118d9",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "update build instructions for fedora",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T18:49:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aee8987c216296761d30ecbd1b77f1c1a3404104",
"body": "Fix build issues",
"is_bot": false,
"headline": "Merge pull request #3579 from DrDaveD/fix-build-issues",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T18:48:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6033c4f5c55651abce73f77f2a33c53aef615b6a",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "add instructions about the threat model",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T18:44:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5fa68c07020775103c0e166dd8c683cdf197f440",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "doc: Initial LLM/Agent documentation",
"author_name": "David Trudgian",
"author_login": "dtrudg",
"committed_at": "2026-06-22T18:29:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9512e907abe32d9a4a6df077434992dc26134db0",
"body": "…encontainers-2b61382c4b\n\nbuild(deps): bump the opencontainers group across 1 directory with 2 updates",
"is_bot": false,
"headline": "Merge pull request #3582 from apptainer/dependabot/go_modules/main/op…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T18:11:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d70b48114e9c925389433ae55e71f80f5a51ede",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "skip building PRoot on Fedora 45 and x86_64",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T18:10:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8c222f63de04e40a634470c0985abe22dc935cf1",
"body": "…thub.com/pelletier/go-toml/v2-2.4.0\n\nbuild(deps): bump github.com/pelletier/go-toml/v2 from 2.3.1 to 2.4.0",
"is_bot": false,
"headline": "Merge pull request #3585 from apptainer/dependabot/go_modules/main/gi…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T17:27:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8edeaebeb33eeb41bfb01fd1a9a78e74b3ea66ec",
"body": "…thub.com/google/go-containerregistry-0.21.7\n\nbuild(deps): bump github.com/google/go-containerregistry from 0.21.6 to 0.21.7",
"is_bot": false,
"headline": "Merge pull request #3584 from apptainer/dependabot/go_modules/main/gi…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T17:02:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7bca5094c34f19524234cf250e2084b4196b270f",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "e2e: broaden invalid_toml error message check",
"author_name": "David Trudgian",
"author_login": "dtrudg",
"committed_at": "2026-06-22T16:57:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a74d600adc0ed724418677335c2f8ec7278a5fa",
"body": "…updates\n\nBumps the opencontainers group with 2 updates in the / directory: [github.com/opencontainers/cgroups](https://github.com/opencontainers/cgroups) and [github.com/opencontainers/runc](https://github.com/opencontainers/runc).\n\n\nUpdates `github.com/opencontainers/cgroups` from 0.0.6 to 0.0.7\n-\n[…]\n\n dependency-version: 1.4.3\n dependency-type: direct:production\n update-type: version-update:semver-patch\n dependency-group: opencontainers\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump the opencontainers group across 1 directory with 2 …",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-22T16:50:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b858169b90386f094df3487f368e7dc052b1f6b5",
"body": "…thub.com/apptainer/container-library-client-1.4.15\n\nbuild(deps): bump github.com/apptainer/container-library-client from 1.4.14 to 1.4.15",
"is_bot": false,
"headline": "Merge pull request #3583 from apptainer/dependabot/go_modules/main/gi…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T16:50:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "46b942a4946ff62491151d61dbd26ab7885770fd",
"body": "…by-e94e44e4c9\n\nbuild(deps): bump the moby group with 2 updates",
"is_bot": false,
"headline": "Merge pull request #3581 from apptainer/dependabot/go_modules/main/mo…",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-22T16:48:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9f32c08a43b3be534c3d58c6e9336175973b2b79",
"body": "Bumps [github.com/pelletier/go-toml/v2](https://github.com/pelletier/go-toml) from 2.3.1 to 2.4.0.\n- [Release notes](https://github.com/pelletier/go-toml/releases)\n- [Commits](https://github.com/pelletier/go-toml/compare/v2.3.1...v2.4.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/pelletier/go-toml/v2\n dependency-version: 2.4.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/pelletier/go-toml/v2 from 2.3.1 to 2.4.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-19T07:03:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f3efe220a6c7bdfc83cb3181e162e5f95729021",
"body": "Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.21.6 to 0.21.7.\n- [Release notes](https://github.com/google/go-containerregistry/releases)\n- [Commits](https://github.com/google/go-containerregistry/compare/v0.21.6...v0.21.7)\n\n---\nupdated-dependen\n[…]\nub.com/google/go-containerregistry\n dependency-version: 0.21.7\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/google/go-containerregistry",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-19T07:03:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7f6f48803facdda84d77afb49f1349efc2d13bea",
"body": "Bumps [github.com/apptainer/container-library-client](https://github.com/apptainer/container-library-client) from 1.4.14 to 1.4.15.\n- [Commits](https://github.com/apptainer/container-library-client/compare/v1.4.14...v1.4.15)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/apptainer/container-library-client\n dependency-version: 1.4.15\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump github.com/apptainer/container-library-client",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-19T07:02:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6438d639a8d26d7b156c7dca3c1a80e5b6634560",
"body": "Bumps the moby group with 2 updates: [github.com/moby/moby/client](https://github.com/moby/moby) and [github.com/docker/cli](https://github.com/docker/cli).\n\n\nUpdates `github.com/moby/moby/client` from 0.4.1 to 0.5.0\n- [Release notes](https://github.com/moby/moby/releases)\n- [Changelog](https://gith\n[…]\nependency-version: 29.6.0+incompatible\n dependency-type: direct:production\n update-type: version-update:semver-minor\n dependency-group: moby\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "build(deps): bump the moby group with 2 updates",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-19T07:02:43Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e3ff86010b6e9ac2db6858bacfbdc8f865555811",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "remove tabs in *dependencies scripts",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-18T21:47:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "65d8d769ff66c53aebc72e6516b229b936d82d4d",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "build Red Hat rpm with GOEXPERIMENT=strictfipsruntime",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-18T21:47:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d1a0e3957c1a619907259b6bb1d31997b8030ccc",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "update build instructions for fedora",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-18T21:46:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c2d341c8006555ec80dc77bc13ebab6f8a58c5b",
"body": "Signed-off-by: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>",
"is_bot": false,
"headline": "correct CHANGELOG entry about globbing in %files",
"author_name": "Dave Dykstra",
"author_login": "DrDaveD",
"committed_at": "2026-06-18T18:36:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8250c091db2f5967772b6ff96c9f3269818b4ffa",
"body": "Enable extglob for %files section",
"is_bot": false,
"headline": "Merge pull request #3543 from sieben-gea/patch_expand_path",
"author_name": "DrDaveD",
"author_login": "DrDaveD",
"committed_at": "2026-06-15T22:14:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "76c9a5fdc9205977422fafc86011c4bc9fb4b406",
"body": "Signed-off-by: Lorenz Sieben <sieben@gea.mpg.de>",
"is_bot": false,
"headline": "Enable extglob for %files section",
"author_name": "Lorenz Sieben",
"author_login": "sieben-gea",
"committed_at": "2026-06-15T12:31:07Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 50,
"commits_last_year": 720,
"latest_release_at": "2026-07-21T19:22:59Z",
"latest_release_tag": "v1.5.3",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 51,
"days_since_latest_release": 12,
"mean_days_between_releases": 38.6
},
"artifacts": {
"collected": true,
"structure": [
"tree.dockerfile"
],
"declarations": []
},
"community": {
"has_readme": true,
"has_license": true,
"readme_badges": {
"hosts": [
"github.com",
"goreportcard.com",
"pkg.go.dev"
],
"total": 3,
"header": 3,
"collected": true,
"has_inspect_badge": false
},
"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": [
{
"name": "github.com/apptainer/apptainer",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"categories": [],
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/apptainer/apptainer",
"declared_type": null,
"is_deprecated": false,
"latest_version": "v1.5.3",
"repository_url": "https://github.com/apptainer/apptainer",
"versions_count": 57,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-21T18:47:49Z",
"latest_version_yanked": null,
"days_since_latest_publish": 12
}
]
},
"popularity": {
"forks": 186,
"stars": 1926,
"watchers": 32,
"fork_history": {
"days": [
{
"date": "2021-11-30",
"count": 7
},
{
"date": "2021-12-01",
"count": 3
},
{
"date": "2021-12-02",
"count": 2
},
{
"date": "2021-12-05",
"count": 1
},
{
"date": "2021-12-08",
"count": 1
},
{
"date": "2021-12-13",
"count": 1
},
{
"date": "2021-12-25",
"count": 1
},
{
"date": "2022-01-07",
"count": 1
},
{
"date": "2022-01-14",
"count": 1
},
{
"date": "2022-01-21",
"count": 1
},
{
"date": "2022-01-27",
"count": 1
},
{
"date": "2022-02-06",
"count": 2
},
{
"date": "2022-02-08",
"count": 1
},
{
"date": "2022-02-09",
"count": 1
},
{
"date": "2022-02-20",
"count": 1
},
{
"date": "2022-02-28",
"count": 1
},
{
"date": "2022-03-01",
"count": 1
},
{
"date": "2022-03-04",
"count": 1
},
{
"date": "2022-03-08",
"count": 1
},
{
"date": "2022-03-18",
"count": 1
},
{
"date": "2022-03-26",
"count": 1
},
{
"date": "2022-03-28",
"count": 2
},
{
"date": "2022-03-29",
"count": 1
},
{
"date": "2022-04-06",
"count": 1
},
{
"date": "2022-04-17",
"count": 1
},
{
"date": "2022-04-27",
"count": 1
},
{
"date": "2022-05-08",
"count": 1
},
{
"date": "2022-05-19",
"count": 3
},
{
"date": "2022-06-21",
"count": 1
},
{
"date": "2022-06-23",
"count": 1
},
{
"date": "2022-06-26",
"count": 1
},
{
"date": "2022-07-12",
"count": 1
},
{
"date": "2022-07-29",
"count": 1
},
{
"date": "2022-08-02",
"count": 1
},
{
"date": "2022-08-03",
"count": 1
},
{
"date": "2022-08-10",
"count": 1
},
{
"date": "2022-08-12",
"count": 1
},
{
"date": "2022-08-29",
"count": 1
},
{
"date": "2022-08-31",
"count": 1
},
{
"date": "2022-10-06",
"count": 1
},
{
"date": "2022-10-12",
"count": 1
},
{
"date": "2022-10-15",
"count": 1
},
{
"date": "2022-10-24",
"count": 1
},
{
"date": "2022-10-25",
"count": 1
},
{
"date": "2022-10-27",
"count": 1
},
{
"date": "2022-11-08",
"count": 1
},
{
"date": "2022-11-19",
"count": 1
},
{
"date": "2022-11-21",
"count": 1
},
{
"date": "2022-12-02",
"count": 1
},
{
"date": "2022-12-08",
"count": 1
},
{
"date": "2022-12-12",
"count": 1
},
{
"date": "2022-12-21",
"count": 1
},
{
"date": "2023-01-19",
"count": 1
},
{
"date": "2023-02-14",
"count": 1
},
{
"date": "2023-02-15",
"count": 1
},
{
"date": "2023-02-19",
"count": 1
},
{
"date": "2023-03-16",
"count": 2
},
{
"date": "2023-04-08",
"count": 1
},
{
"date": "2023-04-12",
"count": 2
},
{
"date": "2023-04-15",
"count": 1
},
{
"date": "2023-04-26",
"count": 1
},
{
"date": "2023-05-04",
"count": 1
},
{
"date": "2023-05-19",
"count": 1
},
{
"date": "2023-06-25",
"count": 1
},
{
"date": "2023-07-17",
"count": 1
},
{
"date": "2023-07-29",
"count": 1
},
{
"date": "2023-08-07",
"count": 1
},
{
"date": "2023-08-21",
"count": 1
},
{
"date": "2023-08-24",
"count": 1
},
{
"date": "2023-09-26",
"count": 1
},
{
"date": "2023-10-03",
"count": 1
},
{
"date": "2023-10-14",
"count": 1
},
{
"date": "2023-10-20",
"count": 2
},
{
"date": "2023-11-20",
"count": 1
},
{
"date": "2023-12-01",
"count": 1
},
{
"date": "2023-12-06",
"count": 1
},
{
"date": "2023-12-09",
"count": 1
},
{
"date": "2023-12-22",
"count": 1
},
{
"date": "2023-12-26",
"count": 1
},
{
"date": "2023-12-29",
"count": 1
},
{
"date": "2023-12-30",
"count": 1
},
{
"date": "2024-02-19",
"count": 1
},
{
"date": "2024-03-07",
"count": 1
},
{
"date": "2024-03-12",
"count": 1
},
{
"date": "2024-03-13",
"count": 2
},
{
"date": "2024-03-14",
"count": 1
},
{
"date": "2024-03-25",
"count": 1
},
{
"date": "2024-03-28",
"count": 1
},
{
"date": "2024-05-04",
"count": 1
},
{
"date": "2024-05-17",
"count": 1
},
{
"date": "2024-05-20",
"count": 1
},
{
"date": "2024-05-25",
"count": 1
},
{
"date": "2024-06-03",
"count": 1
},
{
"date": "2024-06-04",
"count": 1
},
{
"date": "2024-06-07",
"count": 1
},
{
"date": "2024-06-12",
"count": 1
},
{
"date": "2024-07-10",
"count": 1
},
{
"date": "2024-07-11",
"count": 2
},
{
"date": "2024-07-14",
"count": 1
},
{
"date": "2024-07-16",
"count": 1
},
{
"date": "2024-08-03",
"count": 1
},
{
"date": "2024-08-05",
"count": 1
},
{
"date": "2024-08-14",
"count": 1
},
{
"date": "2024-09-25",
"count": 2
},
{
"date": "2024-09-27",
"count": 1
},
{
"date": "2024-10-08",
"count": 1
},
{
"date": "2024-10-09",
"count": 1
},
{
"date": "2024-10-11",
"count": 1
},
{
"date": "2024-11-05",
"count": 1
},
{
"date": "2024-12-10",
"count": 1
},
{
"date": "2025-01-14",
"count": 1
},
{
"date": "2025-01-22",
"count": 1
},
{
"date": "2025-02-25",
"count": 1
},
{
"date": "2025-02-27",
"count": 1
},
{
"date": "2025-03-13",
"count": 2
},
{
"date": "2025-03-16",
"count": 1
},
{
"date": "2025-04-04",
"count": 2
},
{
"date": "2025-06-04",
"count": 1
},
{
"date": "2025-06-27",
"count": 1
},
{
"date": "2025-07-04",
"count": 1
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-07-07",
"count": 1
},
{
"date": "2025-07-23",
"count": 1
},
{
"date": "2025-07-26",
"count": 1
},
{
"date": "2025-07-31",
"count": 1
},
{
"date": "2025-08-08",
"count": 1
},
{
"date": "2025-09-30",
"count": 2
},
{
"date": "2025-10-03",
"count": 1
},
{
"date": "2025-10-04",
"count": 1
},
{
"date": "2025-10-24",
"count": 1
},
{
"date": "2025-11-02",
"count": 1
},
{
"date": "2025-11-28",
"count": 1
},
{
"date": "2025-12-06",
"count": 1
},
{
"date": "2025-12-10",
"count": 1
},
{
"date": "2025-12-12",
"count": 1
},
{
"date": "2026-01-07",
"count": 1
},
{
"date": "2026-01-20",
"count": 1
},
{
"date": "2026-01-28",
"count": 1
},
{
"date": "2026-02-14",
"count": 1
},
{
"date": "2026-02-28",
"count": 1
},
{
"date": "2026-03-08",
"count": 1
},
{
"date": "2026-03-10",
"count": 1
},
{
"date": "2026-03-11",
"count": 1
},
{
"date": "2026-04-08",
"count": 1
},
{
"date": "2026-04-16",
"count": 1
},
{
"date": "2026-04-17",
"count": 1
},
{
"date": "2026-04-28",
"count": 1
},
{
"date": "2026-05-14",
"count": 1
},
{
"date": "2026-05-20",
"count": 1
},
{
"date": "2026-05-21",
"count": 1
},
{
"date": "2026-05-28",
"count": 1
},
{
"date": "2026-06-01",
"count": 1
},
{
"date": "2026-06-03",
"count": 1
},
{
"date": "2026-06-07",
"count": 1
},
{
"date": "2026-06-17",
"count": 1
},
{
"date": "2026-06-20",
"count": 1
},
{
"date": "2026-06-21",
"count": 1
},
{
"date": "2026-07-01",
"count": 1
},
{
"date": "2026-07-14",
"count": 1
},
{
"date": "2026-07-30",
"count": 1
}
],
"complete": true,
"collected": 182,
"total_forks": 186
},
"star_history": null,
"open_issues_and_prs": 194
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"example",
"examples"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod"
],
"largest_source_bytes": 106749,
"source_files_sampled": 534,
"oversized_source_files": 4,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 3368
},
"dependencies": {
"manifests": [
"go.mod"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "github.com/docker/docker",
"direct": true,
"version": "v28.5.2+incompatible",
"severity": "high",
"ecosystem": "go",
"cvss_score": 8.8,
"advisory_ids": [
"GHSA-pxq6-2prw-chj9",
"GHSA-rg2x-37c3-w2rh",
"GHSA-vp62-88p7-qqf5",
"GHSA-x744-4wpc-v9h2",
"GHSA-x86f-5xw2-fm2r",
"GO-2026-4883",
"GO-2026-4887",
"GO-2026-5617",
"GO-2026-5668",
"GO-2026-5746"
],
"fixed_version": "29.3.1",
"advisory_count": 10,
"oldest_advisory_days": 128
},
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.54.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5932"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 26
},
{
"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": 9
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 1,
"unknown": 2
},
"advisory_count": 12,
"affected_count": 3,
"assessed_count": 169,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 2
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/Netflix/go-expect",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20220104043353-73e0943537d2"
},
{
"name": "github.com/ProtonMail/go-crypto",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.1"
},
{
"name": "github.com/apex/log",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.9.0"
},
{
"name": "github.com/apptainer/container-key-client",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.8.0"
},
{
"name": "github.com/apptainer/container-library-client",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.16"
},
{
"name": "github.com/apptainer/sif/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.24.1"
},
{
"name": "github.com/astromechza/etcpwdparse",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20170319193008-f0e5f0779716"
},
{
"name": "github.com/blang/semver/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.0.0"
},
{
"name": "github.com/buger/jsonparser",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.1"
},
{
"name": "github.com/cenkalti/backoff/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.3.0"
},
{
"name": "github.com/containernetworking/cni",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.0"
},
{
"name": "github.com/containernetworking/plugins",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.9.1"
},
{
"name": "github.com/creack/pty",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.24"
},
{
"name": "github.com/cyphar/filepath-securejoin",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.7.0"
},
{
"name": "github.com/docker/go-units",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.0"
},
{
"name": "github.com/fatih/color",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.19.0"
},
{
"name": "github.com/go-log/log",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.0"
},
{
"name": "github.com/google/go-containerregistry",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.21.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/gosimple/slug",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.15.0"
},
{
"name": "github.com/moby/go-archive",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.1"
},
{
"name": "github.com/moby/moby/client",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.1"
},
{
"name": "github.com/opencontainers/cgroups",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.8"
},
{
"name": "github.com/opencontainers/image-spec",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.1"
},
{
"name": "github.com/opencontainers/runc",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.1"
},
{
"name": "github.com/opencontainers/runtime-spec",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.0"
},
{
"name": "github.com/opencontainers/runtime-tools",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.9.1-0.20251114084447-edf4cb3d2116"
},
{
"name": "github.com/opencontainers/selinux",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.15.1"
},
{
"name": "github.com/opencontainers/umoci",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.0"
},
{
"name": "github.com/pelletier/go-toml/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.4.3"
},
{
"name": "github.com/pkg/errors",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.9.1"
},
{
"name": "github.com/seccomp/containers-golang",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.0"
},
{
"name": "github.com/seccomp/libseccomp-golang",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.11.1"
},
{
"name": "github.com/shopspring/decimal",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.0"
},
{
"name": "github.com/sigstore/sigstore",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.8"
},
{
"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/sylabs/json-resp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.9.5"
},
{
"name": "github.com/vbauerster/mpb/v8",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v8.14.0"
},
{
"name": "go.podman.io/image/v5",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.39.2"
},
{
"name": "go.yaml.in/yaml/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.0.0-rc.6"
},
{
"name": "golang.org/x/crypto",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.54.0"
},
{
"name": "golang.org/x/sys",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.47.0"
},
{
"name": "golang.org/x/term",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.45.0"
},
{
"name": "golang.org/x/text",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.40.0"
},
{
"name": "gotest.tools/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.5.2"
},
{
"name": "mvdan.cc/sh/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.13.1"
},
{
"name": "github.com/BurntSushi/toml",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/adigunhammedolalekan/registry-auth",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20200730122110-8cde180a3a60"
},
{
"name": "github.com/buger/goterm",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.4"
},
{
"name": "github.com/ccoveille/go-safecast/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.0.1"
},
{
"name": "github.com/docker/cli",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v29.6.2+incompatible"
},
{
"name": "github.com/docker/distribution",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.8.3+incompatible"
},
{
"name": "github.com/docker/docker",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v28.5.2+incompatible"
},
{
"name": "github.com/moby/sys/sequential",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.7.0"
},
{
"name": "github.com/moby/sys/user",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.4.1"
},
{
"name": "github.com/moby/sys/userns",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.0"
},
{
"name": "github.com/samber/lo",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.53.0"
},
{
"name": "github.com/sirupsen/logrus",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.9.4"
},
{
"name": "tags.cncf.io/container-device-interface",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "github.com/adigunhammedolalekan/registry-auth",
"direct": true,
"version": "v0.0.0-20200730122110-8cde180a3a60",
"ecosystem": "go"
},
{
"name": "github.com/apex/log",
"direct": true,
"version": "v1.9.0",
"ecosystem": "go"
},
{
"name": "github.com/apptainer/container-key-client",
"direct": true,
"version": "v0.8.0",
"ecosystem": "go"
},
{
"name": "github.com/apptainer/container-library-client",
"direct": true,
"version": "v1.4.16",
"ecosystem": "go"
},
{
"name": "github.com/apptainer/sif/v2",
"direct": true,
"version": "v2.24.1",
"ecosystem": "go"
},
{
"name": "github.com/astromechza/etcpwdparse",
"direct": true,
"version": "v0.0.0-20170319193008-f0e5f0779716",
"ecosystem": "go"
},
{
"name": "github.com/blang/semver/v4",
"direct": true,
"version": "v4.0.0",
"ecosystem": "go"
},
{
"name": "github.com/buger/goterm",
"direct": true,
"version": "v1.0.4",
"ecosystem": "go"
},
{
"name": "github.com/buger/jsonparser",
"direct": true,
"version": "v1.3.1",
"ecosystem": "go"
},
{
"name": "github.com/burntsushi/toml",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/ccoveille/go-safecast/v2",
"direct": true,
"version": "v2.0.1",
"ecosystem": "go"
},
{
"name": "github.com/cenkalti/backoff/v4",
"direct": true,
"version": "v4.3.0",
"ecosystem": "go"
},
{
"name": "github.com/containernetworking/cni",
"direct": true,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/containernetworking/plugins",
"direct": true,
"version": "v1.9.1",
"ecosystem": "go"
},
{
"name": "github.com/creack/pty",
"direct": true,
"version": "v1.1.24",
"ecosystem": "go"
},
{
"name": "github.com/cyphar/filepath-securejoin",
"direct": true,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/docker/cli",
"direct": true,
"version": "v29.6.2+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/distribution",
"direct": true,
"version": "v2.8.3+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/docker",
"direct": true,
"version": "v28.5.2+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-units",
"direct": true,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/fatih/color",
"direct": true,
"version": "v1.19.0",
"ecosystem": "go"
},
{
"name": "github.com/go-log/log",
"direct": true,
"version": "v0.2.0",
"ecosystem": "go"
},
{
"name": "github.com/google/go-containerregistry",
"direct": true,
"version": "v0.21.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/gosimple/slug",
"direct": true,
"version": "v1.15.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/go-archive",
"direct": true,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/moby/client",
"direct": true,
"version": "v0.5.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/sequential",
"direct": true,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/user",
"direct": true,
"version": "v0.4.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/userns",
"direct": true,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/netflix/go-expect",
"direct": true,
"version": "v0.0.0-20220104043353-73e0943537d2",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/cgroups",
"direct": true,
"version": "v0.0.8",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/image-spec",
"direct": true,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/runc",
"direct": true,
"version": "v1.5.1",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/runtime-spec",
"direct": true,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/runtime-tools",
"direct": true,
"version": "v0.9.1-0.20251114084447-edf4cb3d2116",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/selinux",
"direct": true,
"version": "v1.15.1",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/umoci",
"direct": true,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/pelletier/go-toml/v2",
"direct": true,
"version": "v2.4.3",
"ecosystem": "go"
},
{
"name": "github.com/pkg/errors",
"direct": true,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "github.com/protonmail/go-crypto",
"direct": true,
"version": "v1.4.1",
"ecosystem": "go"
},
{
"name": "github.com/samber/lo",
"direct": true,
"version": "v1.53.0",
"ecosystem": "go"
},
{
"name": "github.com/seccomp/containers-golang",
"direct": true,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/seccomp/libseccomp-golang",
"direct": true,
"version": "v0.11.1",
"ecosystem": "go"
},
{
"name": "github.com/shopspring/decimal",
"direct": true,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "github.com/sigstore/sigstore",
"direct": true,
"version": "v1.10.8",
"ecosystem": "go"
},
{
"name": "github.com/sirupsen/logrus",
"direct": true,
"version": "v1.9.4",
"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/sylabs/json-resp",
"direct": true,
"version": "v0.9.5",
"ecosystem": "go"
},
{
"name": "github.com/vbauerster/mpb/v8",
"direct": true,
"version": "v8.14.0",
"ecosystem": "go"
},
{
"name": "go.podman.io/image/v5",
"direct": true,
"version": "v5.39.2",
"ecosystem": "go"
},
{
"name": "go.yaml.in/yaml/v4",
"direct": true,
"version": "v4.0.0-rc.6",
"ecosystem": "go"
},
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.54.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.47.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/term",
"direct": true,
"version": "v0.45.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.40.0",
"ecosystem": "go"
},
{
"name": "gotest.tools/v3",
"direct": true,
"version": "v3.5.2",
"ecosystem": "go"
},
{
"name": "mvdan.cc/sh/v3",
"direct": true,
"version": "v3.13.1",
"ecosystem": "go"
},
{
"name": "tags.cncf.io/container-device-interface",
"direct": true,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "cyphar.com/go-pathrs",
"direct": false,
"version": "v0.2.5",
"ecosystem": "go"
},
{
"name": "github.com/acarl005/stripansi",
"direct": false,
"version": "v0.0.0-20180116102854-5a71ef0e047d",
"ecosystem": "go"
},
{
"name": "github.com/adalogics/go-fuzz-headers",
"direct": false,
"version": "v0.0.0-20240806141605-e8a1dd7889d6",
"ecosystem": "go"
},
{
"name": "github.com/alexflint/go-filemutex",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/beorn7/perks",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/cespare/xxhash/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/cilium/ebpf",
"direct": false,
"version": "v0.17.3",
"ecosystem": "go"
},
{
"name": "github.com/clipperhouse/uax29/v2",
"direct": false,
"version": "v2.7.0",
"ecosystem": "go"
},
{
"name": "github.com/cloudflare/circl",
"direct": false,
"version": "v1.6.3",
"ecosystem": "go"
},
{
"name": "github.com/containerd/errdefs",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/errdefs/pkg",
"direct": false,
"version": "v0.3.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/log",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/containers/libtrust",
"direct": false,
"version": "v0.0.0-20230121012942-c1716e8a8d01",
"ecosystem": "go"
},
{
"name": "github.com/containers/ocicrypt",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "github.com/coreos/go-iptables",
"direct": false,
"version": "v0.8.0",
"ecosystem": "go"
},
{
"name": "github.com/coreos/go-systemd/v22",
"direct": false,
"version": "v22.7.0",
"ecosystem": "go"
},
{
"name": "github.com/cpuguy83/go-md2man/v2",
"direct": false,
"version": "v2.0.7",
"ecosystem": "go"
},
{
"name": "github.com/cyberphone/json-canonicalization",
"direct": false,
"version": "v0.0.0-20241213102144-19d51d7fe467",
"ecosystem": "go"
},
{
"name": "github.com/distribution/reference",
"direct": false,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/docker/docker-credential-helpers",
"direct": false,
"version": "v0.9.4",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-connections",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-metrics",
"direct": false,
"version": "v0.0.1",
"ecosystem": "go"
},
{
"name": "github.com/docker/libtrust",
"direct": false,
"version": "v0.0.0-20160708172513-aabc10ec26b7",
"ecosystem": "go"
},
{
"name": "github.com/felixge/httpsnoop",
"direct": false,
"version": "v1.0.4",
"ecosystem": "go"
},
{
"name": "github.com/fsnotify/fsnotify",
"direct": false,
"version": "v1.10.1",
"ecosystem": "go"
},
{
"name": "github.com/garyburd/redigo",
"direct": false,
"version": "v0.0.0-20150301180006-535138d7bcd7",
"ecosystem": "go"
},
{
"name": "github.com/go-jose/go-jose/v4",
"direct": false,
"version": "v4.1.4",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/logr",
"direct": false,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/stdr",
"direct": false,
"version": "v1.2.2",
"ecosystem": "go"
},
{
"name": "github.com/godbus/dbus/v5",
"direct": false,
"version": "v5.2.2",
"ecosystem": "go"
},
{
"name": "github.com/golang/protobuf",
"direct": false,
"version": "v1.5.4",
"ecosystem": "go"
},
{
"name": "github.com/google/go-cmp",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/handlers",
"direct": false,
"version": "v1.5.2",
"ecosystem": "go"
},
{
"name": "github.com/gosimple/unidecode",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/errwrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/go-multierror",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/inconshreveable/mousetrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/insomniacslk/dhcp",
"direct": false,
"version": "v0.0.0-20240829085014-a3a4c1f04475",
"ecosystem": "go"
},
{
"name": "github.com/josharian/native",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/json-iterator/go",
"direct": false,
"version": "v1.1.12",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.7",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/pgzip",
"direct": false,
"version": "v1.2.6",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-colorable",
"direct": false,
"version": "v0.1.14",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-isatty",
"direct": false,
"version": "v0.0.20",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-runewidth",
"direct": false,
"version": "v0.0.27",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-shellwords",
"direct": false,
"version": "v1.0.12",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-sqlite3",
"direct": false,
"version": "v1.14.32",
"ecosystem": "go"
},
{
"name": "github.com/mdlayher/packet",
"direct": false,
"version": "v1.1.2",
"ecosystem": "go"
},
{
"name": "github.com/mdlayher/socket",
"direct": false,
"version": "v0.5.1",
"ecosystem": "go"
},
{
"name": "github.com/microsoft/go-winio",
"direct": false,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/miekg/pkcs11",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/docker-image-spec",
"direct": false,
"version": "v1.3.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/moby/api",
"direct": false,
"version": "v1.55.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/patternmatcher",
"direct": false,
"version": "v0.6.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/atomicwriter",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/capability",
"direct": false,
"version": "v0.4.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/sys/mountinfo",
"direct": false,
"version": "v0.7.2",
"ecosystem": "go"
},
{
"name": "github.com/modern-go/concurrent",
"direct": false,
"version": "v0.0.0-20180306012644-bacd9c7ef1dd",
"ecosystem": "go"
},
{
"name": "github.com/modern-go/reflect2",
"direct": false,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "github.com/morikuni/aec",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/munnerz/goautoneg",
"direct": false,
"version": "v0.0.0-20191010083416-a7dc8b61c822",
"ecosystem": "go"
},
{
"name": "github.com/networkplumbing/go-nft",
"direct": false,
"version": "v0.4.0",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/go-digest",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/pierrec/lz4/v4",
"direct": false,
"version": "v4.1.21",
"ecosystem": "go"
},
{
"name": "github.com/proglottis/gpgme",
"direct": false,
"version": "v0.1.5",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_golang",
"direct": false,
"version": "v1.23.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_model",
"direct": false,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/common",
"direct": false,
"version": "v0.67.5",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/procfs",
"direct": false,
"version": "v0.20.1",
"ecosystem": "go"
},
{
"name": "github.com/rootless-containers/proto/go-proto",
"direct": false,
"version": "v0.0.0-20230421021042-4cd87ebadd67",
"ecosystem": "go"
},
{
"name": "github.com/russross/blackfriday/v2",
"direct": false,
"version": "v2.1.0",
"ecosystem": "go"
},
{
"name": "github.com/safchain/ethtool",
"direct": false,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/secure-systems-lab/go-securesystemslib",
"direct": false,
"version": "v0.11.0",
"ecosystem": "go"
},
{
"name": "github.com/sergi/go-diff",
"direct": false,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "github.com/sigstore/fulcio",
"direct": false,
"version": "v1.8.6",
"ecosystem": "go"
},
{
"name": "github.com/sigstore/protobuf-specs",
"direct": false,
"version": "v0.5.1",
"ecosystem": "go"
},
{
"name": "github.com/smallstep/pkcs7",
"direct": false,
"version": "v0.1.1",
"ecosystem": "go"
},
{
"name": "github.com/stefanberger/go-pkcs11uri",
"direct": false,
"version": "v0.0.0-20230803200340-78284954bff6",
"ecosystem": "go"
},
{
"name": "github.com/u-root/uio",
"direct": false,
"version": "v0.0.0-20240224005618-d2acac8f3701",
"ecosystem": "go"
},
{
"name": "github.com/ulikunitz/xz",
"direct": false,
"version": "v0.5.15",
"ecosystem": "go"
},
{
"name": "github.com/vbatts/go-mtree",
"direct": false,
"version": "v0.6.1-0.20250911112631-8307d76bc1b9",
"ecosystem": "go"
},
{
"name": "github.com/vbatts/tar-split",
"direct": false,
"version": "v0.12.2",
"ecosystem": "go"
},
{
"name": "github.com/vbauerster/cupwriter",
"direct": false,
"version": "v0.0.4",
"ecosystem": "go"
},
{
"name": "github.com/vishvananda/netlink",
"direct": false,
"version": "v1.3.1",
"ecosystem": "go"
},
{
"name": "github.com/vishvananda/netns",
"direct": false,
"version": "v0.0.5",
"ecosystem": "go"
},
{
"name": "github.com/vividcortex/ewma",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/xeipuuv/gojsonpointer",
"direct": false,
"version": "v0.0.0-20190905194746-02993c407bfb",
"ecosystem": "go"
},
{
"name": "github.com/xeipuuv/gojsonreference",
"direct": false,
"version": "v0.0.0-20180127040603-bd5ef7bd5415",
"ecosystem": "go"
},
{
"name": "github.com/xeipuuv/gojsonschema",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/youmark/pkcs8",
"direct": false,
"version": "v0.0.0-20240726163527-a2c0da244d78",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/auto/sdk",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
"direct": false,
"version": "v0.67.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/metric",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/trace",
"direct": false,
"version": "v1.43.0",
"ecosystem": "go"
},
{
"name": "go.podman.io/storage",
"direct": false,
"version": "v1.62.0",
"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/mod",
"direct": false,
"version": "v0.37.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": false,
"version": "v0.56.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": false,
"version": "v0.22.0",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/api",
"direct": false,
"version": "v0.0.0-20260414002931-afd174a4e478",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/rpc",
"direct": false,
"version": "v0.0.0-20260511170946-3700d4141b60",
"ecosystem": "go"
},
{
"name": "google.golang.org/grpc",
"direct": false,
"version": "v1.82.1",
"ecosystem": "go"
},
{
"name": "google.golang.org/protobuf",
"direct": false,
"version": "v1.36.11",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/knftables",
"direct": false,
"version": "v0.0.18",
"ecosystem": "go"
},
{
"name": "sigs.k8s.io/yaml",
"direct": false,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "tags.cncf.io/container-device-interface/specs-go",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
}
],
"collected": true,
"truncated": false,
"total_count": 169,
"direct_count": 61,
"indirect_count": 108
}
},
"maintainership": {
"issues": {
"open_prs": 4,
"merged_prs": 1853,
"open_issues": 190,
"closed_ratio": 0.792,
"closed_issues": 722,
"closed_unmerged_prs": 900
},
"bus_factor": 4,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "DrDaveD",
"commits": 2613,
"avatar_url": "https://avatars.githubusercontent.com/u/2129743?v=4"
},
{
"type": "User",
"login": "gmkurtzer",
"commits": 2527,
"avatar_url": "https://avatars.githubusercontent.com/u/13984965?v=4"
},
{
"type": "User",
"login": "cclerget",
"commits": 2239,
"avatar_url": "https://avatars.githubusercontent.com/u/3274134?v=4"
},
{
"type": "User",
"login": "dtrudg",
"commits": 1197,
"avatar_url": "https://avatars.githubusercontent.com/u/4522799?v=4"
},
{
"type": "User",
"login": "ikaneshiro",
"commits": 1007,
"avatar_url": "https://avatars.githubusercontent.com/u/15389064?v=4"
},
{
"type": "User",
"login": "bauerm97",
"commits": 939,
"avatar_url": "https://avatars.githubusercontent.com/u/14863407?v=4"
},
{
"type": "User",
"login": "GodloveD",
"commits": 708,
"avatar_url": "https://avatars.githubusercontent.com/u/7672924?v=4"
},
{
"type": "User",
"login": "vsoch",
"commits": 703,
"avatar_url": "https://avatars.githubusercontent.com/u/814322?v=4"
},
{
"type": "User",
"login": "yhcote",
"commits": 569,
"avatar_url": "https://avatars.githubusercontent.com/u/13560291?v=4"
},
{
"type": "User",
"login": "ArangoGutierrez",
"commits": 568,
"avatar_url": "https://avatars.githubusercontent.com/u/15933089?v=4"
}
],
"contributors_sampled": 98,
"top_contributor_share": 0.171
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"release.yml",
"ubuntu-ppa-release.yml"
],
"has_docs_dir": true,
"linter_configs": [
".golangci.yml"
],
"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": null,
"reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "18 out of 18 merged PRs checked by a CI test -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 10,
"reason": "all changesets reviewed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 56 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 9,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"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": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 3,
"reason": "7 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "a7555e75bfc1df0a9ec04d082e0d60fec8feb41e",
"ran_at": "2026-08-03T02:15:05Z",
"aggregate_score": 6.1,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"recent_prs": {
"merged_7d": 2,
"decided_7d": 2,
"merged_30d": 12,
"authors_30d": 4,
"decided_30d": 12,
"sample_size": 60,
"window_days": 30,
"sample_exhausted": false,
"authors_probed_30d": 4,
"newcomer_merged_30d": 1,
"bot_prs_excluded_30d": 36,
"newcomer_authors_30d": 1,
"newcomer_decided_30d": 1
},
"ci_last_run_at": "2026-08-02T21:47:15Z",
"oldest_open_prs": [
{
"number": 3077,
"created_at": "2025-07-29T10:05:28Z",
"last_comment_at": "2025-09-04T12:38:23Z",
"last_comment_author": "Steffen-Gr"
},
{
"number": 3651,
"created_at": "2026-07-24T07:03:07Z",
"last_comment_at": "2026-07-28T19:35:16Z",
"last_comment_author": "afbjorklund"
},
{
"number": 3667,
"created_at": "2026-07-31T08:47:24Z",
"last_comment_at": "2026-08-01T12:30:07Z",
"last_comment_author": "rroohhh"
},
{
"number": 3670,
"created_at": "2026-08-02T02:35:50Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-08-02T21:47:13Z",
"ci_last_conclusion": null,
"oldest_open_issues": [
{
"number": 27,
"created_at": "2021-12-02T20:26:03Z",
"last_comment_at": "2021-12-03T17:08:54Z",
"last_comment_author": "dtrudg"
},
{
"number": 28,
"created_at": "2021-12-02T20:38:37Z",
"last_comment_at": "2021-12-14T03:09:34Z",
"last_comment_author": "PaulCharlton"
},
{
"number": 29,
"created_at": "2021-12-02T21:22:49Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 55,
"created_at": "2021-12-10T06:29:32Z",
"last_comment_at": "2021-12-29T21:56:08Z",
"last_comment_author": "DrDaveD"
},
{
"number": 57,
"created_at": "2021-12-12T15:39:31Z",
"last_comment_at": "2021-12-12T15:40:54Z",
"last_comment_author": "PaulCharlton"
},
{
"number": 64,
"created_at": "2021-12-13T14:29:51Z",
"last_comment_at": "2021-12-15T13:01:02Z",
"last_comment_author": "DrDaveD"
},
{
"number": 66,
"created_at": "2021-12-13T16:33:27Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 71,
"created_at": "2021-12-13T20:45:59Z",
"last_comment_at": "2022-01-13T05:31:58Z",
"last_comment_author": "PaulCharlton"
},
{
"number": 134,
"created_at": "2022-01-13T05:24:08Z",
"last_comment_at": "2024-07-02T15:28:33Z",
"last_comment_author": "afbjorklund"
},
{
"number": 136,
"created_at": "2022-01-13T05:27:43Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 138,
"created_at": "2022-01-13T05:30:19Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 139,
"created_at": "2022-01-13T05:37:36Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 147,
"created_at": "2022-01-13T13:12:47Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 148,
"created_at": "2022-01-13T13:13:53Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 150,
"created_at": "2022-01-13T13:19:14Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 152,
"created_at": "2022-01-13T13:22:57Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 153,
"created_at": "2022-01-13T13:23:40Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 184,
"created_at": "2022-01-27T17:42:11Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 198,
"created_at": "2022-02-02T17:02:48Z",
"last_comment_at": "2024-07-22T15:23:37Z",
"last_comment_author": "DrDaveD"
},
{
"number": 214,
"created_at": "2022-02-04T16:27:14Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/apptainer/apptainer",
"host": "github.com",
"name": "apptainer",
"owner": "apptainer"
},
"metrics": {
"overall": {
"key": "overall",
"band": "exceptional",
"name": "Overall health",
"note": "The weighted overall 83 is calibrated to 96 on the published index scale (record calibration 2026-08-02).",
"notes": [
{
"code": "overall_calibration",
"params": {
"raw": 83,
"calibrated": 96,
"calibration": "2026-08-02"
}
}
],
"value": 96,
"inputs": {
"security": 60,
"vitality": 95,
"community": 83,
"governance": 82,
"calibration": "2026-08-02",
"engineering": 90,
"ai_readiness": 75,
"weighted_overall_raw": 83
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "exceptional",
"name": "Vitality",
"value": 95,
"weight": 0.21,
"metrics": [
{
"key": "development_activity",
"band": "exceptional",
"name": "Development activity",
"note": null,
"notes": [],
"value": 99,
"inputs": {
"commits_last_year": 720,
"human_commit_share": 0.77,
"days_since_last_push": 0,
"active_weeks_last_year": 51
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "51/52 weeks with commits",
"points": 35.3,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 51
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "720 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 720
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 50,
"latest_release_tag": "v1.5.3",
"releases_from_tags": false,
"days_since_latest_release": 12,
"mean_days_between_releases": 38.6
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "50 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 50
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 12 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 12
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~38.6 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 38.6
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "exceptional",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 1,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 1 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 1
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "excellent",
"name": "Community & Adoption",
"value": 83,
"weight": 0.17,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"forks": 186,
"stars": 1926,
"watchers": 32,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1,926 stars",
"points": 53.3,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 1926
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "186 forks",
"points": 18.9,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 186
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "32 watchers",
"points": 8.3,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 32
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "excellent",
"name": "Community health",
"note": null,
"notes": [],
"value": 86,
"inputs": {
"has_readme": true,
"has_license": true,
"readme_badges": 3,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"readme_badge_services": [
"github.com",
"goreportcard.com",
"pkg.go.dev"
],
"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": "license file present, not a recognized license",
"points": 16.9,
"status": "partial",
"details": [
{
"code": "license_custom",
"params": {}
}
],
"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": "excellent",
"name": "Sustainability & Governance",
"value": 82,
"weight": 0.23,
"metrics": [
{
"key": "maintainer_resilience",
"band": "excellent",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"bus_factor": 4,
"contributors_sampled": 98,
"top_contributor_share": 0.171
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "4 contributor(s) cover half of all commits",
"points": 43.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 4
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 17% of commits",
"points": 18.7,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 17
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "98 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 98
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 56 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "excellent",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 82,
"inputs": {
"merged_prs": 1853,
"open_issues": 190,
"closed_issues": 722,
"prs_merged_7d": 2,
"prs_decided_7d": 2,
"prs_merged_30d": 12,
"prs_decided_30d": 12,
"issue_closed_ratio": 0.792,
"closed_unmerged_prs": 900,
"first_time_authors_30d": 1,
"first_time_prs_merged_30d": 1,
"first_time_prs_decided_30d": 1
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "79% of issues closed",
"points": 33.3,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 79
}
}
],
"max_points": 42
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "1853/2753 decided PRs merged",
"points": 20.2,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 1853,
"decided": 2753
}
}
],
"max_points": 30
},
{
"key": "newcomer_pr_acceptance",
"name": "Newcomer PR acceptance",
"detail": "1/1 first-time contributors' PRs merged in 30d",
"points": 13,
"status": "met",
"details": [
{
"code": "newcomer_prs_merged",
"params": {
"days": 30,
"merged": 1,
"decided": 1
}
}
],
"max_points": 13
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "all changesets reviewed",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 63,
"inputs": {
"followers": 139,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "apptainer",
"public_repos": 12,
"account_age_days": 1767
},
"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": "139 followers of apptainer",
"points": 15.4,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 139,
"login": "apptainer"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "12 public repos, account ~4 yr old",
"points": 17.8,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 12
}
},
{
"code": "account_age_years",
"params": {
"years": 4
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "exceptional",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/apptainer/apptainer"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 12
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 12 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 12
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "57 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 57
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "excellent",
"name": "Engineering Quality",
"value": 90,
"weight": 0.19,
"metrics": [
{
"key": "engineering_practices",
"band": "excellent",
"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": "3 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 3
}
}
],
"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.yml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "18 out of 18 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "exceptional",
"name": "Documentation",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"topics": [
"linux",
"containers",
"science",
"hpc",
"apptainer",
"singularity",
"singularity-container",
"rootless-containers"
],
"has_wiki": true,
"homepage": "https://apptainer.org",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://apptainer.org",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "8 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 8
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 60,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 61,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 6.1
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "18 out of 18 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "all changesets reviewed",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 56 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"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": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "7 existing vulnerabilities detected",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "moderate",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 169 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": 169
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 57,
"inputs": {
"source": "osv",
"advisories": 12,
"affected_packages": 3,
"assessed_packages": 169,
"unassessed_packages": 0,
"affected_by_severity": "high 1, unknown 2",
"direct_affected_packages": 2
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "2 affected: github.com/docker/docker v28.5.2+incompatible (high 8.8), golang.org/x/crypto v0.54.0 (unknown)",
"points": 9.6,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 2,
"packages": "github.com/docker/docker v28.5.2+incompatible (high 8.8), golang.org/x/crypto v0.54.0 (unknown)"
}
}
],
"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 128 days ago",
"points": 32.8,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 1,
"oldest": 128
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "exceptional",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 169,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "exceptional",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"commit_weight_rule": {
"min_commits": 50,
"min_commit_share": 0.1
},
"review_only_matches": 0,
"below_threshold_exposures": [],
"assessed_self_published_locations": 12
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 75,
"weight": 0.04,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.662,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 3368
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "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": "51 of 77 human commits state their intent (structured subject or explanatory body)",
"points": 35.3,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 51,
"sampled": 77
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [
"go.mod"
],
"dependency_bot_commit_share": 0.23
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "go.mod (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "go.mod"
}
}
],
"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.yml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "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": "23 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 23,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "exceptional",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 106749,
"source_files_sampled": 534,
"oversized_source_files": 4
},
"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": "4/534 source files over 60KB",
"points": 54.6,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 534,
"oversized": 4
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "weak",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"example",
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "example, examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "example, examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
}
],
"classification": {
"top": [
"application"
],
"labels": [
"cli"
],
"scores": {
"cli": 4,
"library": 3
},
"primary": "cli",
"evidence": [
{
"tier": "dependencies",
"label": "cli",
"source": "dep:github.com/spf13/cobra",
"weight": 4
},
{
"tier": "distribution",
"label": "library",
"source": "registry:go",
"weight": 3
}
],
"artifacts": [],
"confidence": "low",
"host_extension": false,
"runs_as_process": true,
"consumed_by_code": false
},
"metrics_version": "2.5.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-08-03T02:15:32.144070Z",
"schema_version": "0.30.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/apptainer/apptainer.svg",
"full_name": "apptainer/apptainer",
"license_state": "custom",
"license_spdx": null
}