Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 2341,
"has_wiki": false,
"homepage": null,
"languages": {
"Shell": 441,
"JavaScript": 1889,
"TypeScript": 9764
},
"pushed_at": "2026-07-20T09:52:02Z",
"created_at": "2016-05-19T03:51:12Z",
"owner_type": "Organization",
"updated_at": "2026-07-20T07:56:01Z",
"description": "Calculates binary diffs between docker images to speed up pull operations when keeping history is irrelevant",
"is_archived": false,
"is_disabled": false,
"license_spdx": "Apache-2.0",
"default_branch": "master",
"license_spdx_raw": "Apache-2.0",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript",
"JavaScript"
]
},
"owner": {
"blog": "https://www.balena.io",
"name": null,
"type": "Organization",
"login": "balena-io-modules",
"company": null,
"location": null,
"followers": 15,
"avatar_url": "https://avatars.githubusercontent.com/u/17724750?v=4",
"created_at": "2016-03-08T13:41:49Z",
"is_verified": null,
"public_repos": 298,
"account_age_days": 3791
},
"license": {
"state": "standard",
"spdx_id": "Apache-2.0",
"raw_spdx": "Apache-2.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v5.0.24",
"kind": "patch",
"published_at": "2026-07-20T07:56:24Z"
},
{
"tag": "v5.0.23",
"kind": "patch",
"published_at": "2026-07-20T06:04:38Z"
},
{
"tag": "v5.0.22",
"kind": "patch",
"published_at": "2026-06-18T06:31:11Z"
},
{
"tag": "v5.0.21",
"kind": "patch",
"published_at": "2026-06-12T02:48:02Z"
},
{
"tag": "v5.0.20",
"kind": "patch",
"published_at": "2026-06-12T02:07:58Z"
},
{
"tag": "v5.0.19",
"kind": "patch",
"published_at": "2026-06-12T00:38:05Z"
},
{
"tag": "v5.0.18",
"kind": "patch",
"published_at": "2026-06-12T00:10:52Z"
},
{
"tag": "v5.0.17",
"kind": "patch",
"published_at": "2026-06-11T12:20:54Z"
},
{
"tag": "v5.0.16",
"kind": "patch",
"published_at": "2026-03-26T17:22:40Z"
},
{
"tag": "v5.0.15",
"kind": "patch",
"published_at": "2026-03-26T12:12:34Z"
},
{
"tag": "v5.0.14",
"kind": "patch",
"published_at": "2026-03-26T10:20:38Z"
},
{
"tag": "v5.0.13",
"kind": "patch",
"published_at": "2026-03-26T09:20:21Z"
},
{
"tag": "v5.0.12",
"kind": "patch",
"published_at": "2026-03-26T08:18:14Z"
},
{
"tag": "v5.0.11",
"kind": "patch",
"published_at": "2026-03-26T06:22:09Z"
},
{
"tag": "v5.0.10",
"kind": "patch",
"published_at": "2026-03-26T05:35:06Z"
},
{
"tag": "v5.0.9",
"kind": "patch",
"published_at": "2026-03-26T03:54:31Z"
},
{
"tag": "v5.0.8",
"kind": "patch",
"published_at": "2026-03-26T02:49:35Z"
},
{
"tag": "v5.0.7",
"kind": "patch",
"published_at": "2026-03-26T01:26:53Z"
},
{
"tag": "v5.0.6",
"kind": "patch",
"published_at": "2026-03-26T00:06:57Z"
},
{
"tag": "v5.0.5",
"kind": "patch",
"published_at": "2026-03-25T23:16:16Z"
},
{
"tag": "v5.0.4",
"kind": "patch",
"published_at": "2026-03-25T21:39:29Z"
},
{
"tag": "v5.0.3",
"kind": "patch",
"published_at": "2026-03-25T20:08:47Z"
},
{
"tag": "v5.0.2",
"kind": "patch",
"published_at": "2026-03-24T18:19:27Z"
},
{
"tag": "v5.0.1",
"kind": "patch",
"published_at": "2026-02-19T21:53:02Z"
},
{
"tag": "v5.0.0",
"kind": "major",
"published_at": "2026-02-04T11:49:40Z"
},
{
"tag": "v4.1.1",
"kind": "patch",
"published_at": "2025-10-07T13:27:32Z"
},
{
"tag": "v4.1.0",
"kind": "minor",
"published_at": "2024-07-05T16:16:34Z"
},
{
"tag": "v4.0.1",
"kind": "patch",
"published_at": "2024-04-26T14:40:54Z"
},
{
"tag": "v4.0.0",
"kind": "major",
"published_at": "2023-11-22T15:46:51Z"
},
{
"tag": "v3.0.5",
"kind": "patch",
"published_at": "2023-11-17T16:11:59Z"
},
{
"tag": "v3.0.4",
"kind": "patch",
"published_at": "2023-11-16T16:20:50Z"
},
{
"tag": "v3.0.3",
"kind": "patch",
"published_at": "2023-11-15T20:07:52Z"
}
],
"recent_commits": [
{
"oid": "819234bb0f3823ede697f8ff8f813ba38ac81db6",
"body": null,
"is_bot": true,
"headline": "v5.0.24",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-07-20T07:55:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ab4c751455490c73986709930c14dbf6744d9bed",
"body": "Update @types/node from 22.19.21 to 22.20.1\n\nChange-type: patch",
"is_bot": true,
"headline": "Update dependency @types/node to v22.20.1 (#85)",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-07-20T07:55:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e2a293f62a8a2a2fba501b97cb87d8b4ffaf6608",
"body": "Update @types/node from 22.19.21 to 22.20.1\n\nChange-type: patch",
"is_bot": true,
"headline": "Update dependency @types/node to v22.20.1",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-07-20T07:51:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b95d34530164049bd24348c2033c735c97d9349",
"body": null,
"is_bot": true,
"headline": "v5.0.23",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-07-20T06:04:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d16d360efb30fa3b609954eb7924df667aa4622c",
"body": "Update lint-staged from 17.0.7 to 17.0.8\n\nChange-type: patch",
"is_bot": true,
"headline": "Update dependency lint-staged to v17.0.8 (#84)",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-07-20T06:03:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "93738a6d5035c600c489a95873969550f943f87d",
"body": "Update lint-staged from 17.0.7 to 17.0.8\n\nChange-type: patch",
"is_bot": true,
"headline": "Update dependency lint-staged to v17.0.8",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-07-20T05:58:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "173acbf89e1e1aaa4b81c26206e3a285a4d795b8",
"body": null,
"is_bot": true,
"headline": "v5.0.22",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-06-18T06:30:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9fc74f04b56c8cc4cdf69b5880e5c86fe56b0a41",
"body": "Update alpine\n\nChange-type: patch",
"is_bot": true,
"headline": "Update alpine Docker digest to 28bd5fe (#83)",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-06-18T06:29:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "117372b6c52cf57f0d0203c829a76f6ad47fb40b",
"body": "Update alpine\n\nChange-type: patch",
"is_bot": true,
"headline": "Update alpine Docker digest to 28bd5fe",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-06-18T06:26:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c1099761eadf26349a6bedc7da11123acdf73ba4",
"body": null,
"is_bot": true,
"headline": "v5.0.21",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-06-12T02:47:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9db37de365812fb206d98e773bb6149892893ef9",
"body": "Update @types/dockerode\n\nChange-type: patch",
"is_bot": true,
"headline": "Pin dependencies (#81)",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-06-12T02:47:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "39ae0611d4da7e40e5006b270e18d49ae1acfa0f",
"body": "Update @types/dockerode\n\nChange-type: patch",
"is_bot": true,
"headline": "Pin dependencies",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-06-12T02:43:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a01582475ec3938cbe8e718b52098bc68889499e",
"body": null,
"is_bot": true,
"headline": "v5.0.20",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-06-12T02:07:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "98faa894a31da2ed9dd19bfe0d65c399e6c1259d",
"body": "Update dependency typescript to v6",
"is_bot": false,
"headline": "Merge pull request #80 from balena-io-modules/renovate/typescript-6.x",
"author_name": "Josh Bowling",
"author_login": "joshbwlng",
"committed_at": "2026-06-12T02:06:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "77e4612ac60bc80c77515d3c504a90ebc4a33281",
"body": "Update typescript from 5.9.3 to 6.0.3\n\nChange-type: patch",
"is_bot": true,
"headline": "Update dependency typescript to v6",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-06-12T01:42:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "895adda7652859e9714b8a1bf4b2c21597da7e9e",
"body": null,
"is_bot": true,
"headline": "v5.0.19",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-06-12T00:37:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c8d84c3a61b30bed106d05bb72888123d3091187",
"body": "Update dependency lint-staged to v17",
"is_bot": false,
"headline": "Merge pull request #77 from balena-io-modules/renovate/lint-staged-17.x",
"author_name": "Josh Bowling",
"author_login": "joshbwlng",
"committed_at": "2026-06-12T00:37:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd33cff3382e9659971e0492c05c54122ee76b7f",
"body": "Update lint-staged from 16.4.0 to 17.0.7\n\nChange-type: patch",
"is_bot": true,
"headline": "Update dependency lint-staged to v17",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-06-12T00:16:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "94af76938031fc98042ab867ca48258e678a72bd",
"body": null,
"is_bot": true,
"headline": "v5.0.18",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-06-12T00:10:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e039ad51e5f46364a2a0cba7d6ac69a984e6820",
"body": "Rename .lintstagedrc to .lintstagedrc.json",
"is_bot": true,
"headline": "Merge pull request #78 from balena-io-modules/joshbwlng/lintstagedrc",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-06-12T00:09:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f877ceac5170ce0e35f657dd60c36a49c35a034f",
"body": "In preparation for lint-staged v17 which recommends this rename\n\nChange-type: patch",
"is_bot": false,
"headline": "Rename .lintstagedrc to .lintstagedrc.json",
"author_name": "joshbwlng",
"author_login": "joshbwlng",
"committed_at": "2026-06-11T23:02:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d6a3e762e00788e8a5d9b969e63aa9455dfb028e",
"body": null,
"is_bot": true,
"headline": "v5.0.17",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-06-11T12:20:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d330ae4bc63a38a93c71588dd703a99009e048e0",
"body": "Fix linting error",
"is_bot": true,
"headline": "Merge pull request #79 from balena-io-modules/joshbwlng/lint",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-06-11T12:19:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "20428f52d5a8000f617b8e04e0ce2d2304e198d4",
"body": "Change-type: patch",
"is_bot": false,
"headline": "Fix linting error",
"author_name": "joshbwlng",
"author_login": "joshbwlng",
"committed_at": "2026-06-10T01:26:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "29f3f4a463898ea44d0e5564de9a4db8be908526",
"body": null,
"is_bot": true,
"headline": "v5.0.16",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T17:22:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6bbe208388e11fd30f98f77b8466f3a97a26dbad",
"body": "…-master\n\nRevert flowzone pinning to master",
"is_bot": true,
"headline": "Merge pull request #74 from balena-io-modules/kyle/revert-flowzone-to…",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T17:21:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "234201160d809e973c00d65fdcb5cebcd7a3a86f",
"body": "Change-type: patch",
"is_bot": false,
"headline": "Revert flowzone pinning to master",
"author_name": "Kyle Harding",
"author_login": "klutchell",
"committed_at": "2026-03-26T17:11:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "872f0c94fd528dfa02c03e0d5d18d2c65476b787",
"body": null,
"is_bot": true,
"headline": "v5.0.15",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T12:12:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4809bdf16ce401bafe7b343b221bd5a7e15da16f",
"body": "Update product-os/flowzone digest to 8ea01d3",
"is_bot": true,
"headline": "Merge pull request #73 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T12:11:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8384503691f2d448ac4de000b298e0b28a545bd3",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to 8ea01d3",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T12:07:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b23ea7ae656606f312d68294fc2ac9a7226bafa2",
"body": null,
"is_bot": true,
"headline": "v5.0.14",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T10:20:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb81bfd85db0c4d25d2c260e323529c3f9da4d69",
"body": "Update product-os/flowzone digest to 3eb3c97",
"is_bot": true,
"headline": "Merge pull request #72 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T10:19:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2287826ffdad97331cba93352431f7664005cea3",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to 3eb3c97",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T10:15:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f3c19c8c225ed1ea2728c90fd4321871e4abd9ac",
"body": null,
"is_bot": true,
"headline": "v5.0.13",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T09:19:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8e84e3c7952db6c58af191387153dc249685155a",
"body": "Update product-os/flowzone digest to 7b49c1e",
"is_bot": true,
"headline": "Merge pull request #71 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T09:19:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe345a9aa2b4362ff86a3fee8582689ec3aae436",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to 7b49c1e",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T09:14:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f11b64eb63b61338bbcf5703f785b97fa1437acc",
"body": null,
"is_bot": true,
"headline": "v5.0.12",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T08:17:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d800a2abdb995b6a05b7acad00513945d24ad04",
"body": "Update product-os/flowzone digest to 8d926e2",
"is_bot": true,
"headline": "Merge pull request #70 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T08:17:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0647c8b165e95d7ee3df7ba900a0080347fe0534",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to 8d926e2",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T08:13:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5d747af059e6f16d6d9324958456852aff92bdc",
"body": null,
"is_bot": true,
"headline": "v5.0.11",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T06:21:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "00c469927d41a10e0a40344b3630ff1210fab2e4",
"body": "Update product-os/flowzone digest to 7b1359d",
"is_bot": true,
"headline": "Merge pull request #69 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T06:20:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "feb3db5c708171446a54d5fda9ca47f7b5ee8ccf",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to 7b1359d",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T06:16:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aec8145926d577daa28aea13c7efbbb05db8bc6d",
"body": null,
"is_bot": true,
"headline": "v5.0.10",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T05:34:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1e13e1c42d20fd6c1c68c634713901a49a6f37c2",
"body": "Update product-os/flowzone digest to 7b87702",
"is_bot": true,
"headline": "Merge pull request #68 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T05:33:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd4c60b2415c38039395e5611f4b4659d5b67630",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to 7b87702",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T05:29:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "18929e074d504a538166d790f2a1e96812bd3640",
"body": null,
"is_bot": true,
"headline": "v5.0.9",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T03:54:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c294910b80faf199052cd1444418f15faa97c2a",
"body": "Update product-os/flowzone digest to cc9836f",
"is_bot": true,
"headline": "Merge pull request #67 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T03:53:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48ba71fadb1f1b2580b5ac7cdd9b741d6995047d",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to cc9836f",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T03:49:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b331d21c15defe9b0c6fc79da39861a2cac65c8",
"body": null,
"is_bot": true,
"headline": "v5.0.8",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T02:49:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "132c0b39d17f1d6edcd27e084561553cfce0f94e",
"body": "Update product-os/flowzone digest to b79645a",
"is_bot": true,
"headline": "Merge pull request #66 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T02:48:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "656b0ab8c0421f7552fc46c8f612532226eed5f5",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to b79645a",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T02:44:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "63a00f1fc01dc154cd81081d1edf8d952cb65777",
"body": null,
"is_bot": true,
"headline": "v5.0.7",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T01:26:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "184fc71be839142410056bac1e3428817b683eb6",
"body": "Update product-os/flowzone digest to 4815186",
"is_bot": true,
"headline": "Merge pull request #65 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T01:25:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ebae7b24d29e075e76695a34e3877feee8bfa92",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to 4815186",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T01:21:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e3600b79aebf2c4b6fca38403abeb919dacd8b5a",
"body": null,
"is_bot": true,
"headline": "v5.0.6",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-26T00:06:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d0222ea44c502a7f117fc1b8ede33f3105417873",
"body": "Update product-os/flowzone digest to 267495d",
"is_bot": true,
"headline": "Merge pull request #64 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T00:05:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "436c12b4e24bc3289d448e87989ad72474ffe838",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to 267495d",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-26T00:02:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc91a601aac99bf21677f9729660a590fca531b4",
"body": null,
"is_bot": true,
"headline": "v5.0.5",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-25T23:15:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3d519a74970a22a455e450bb92ae341f3254e3f6",
"body": "Update product-os/flowzone digest to f955793",
"is_bot": true,
"headline": "Merge pull request #63 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-25T23:14:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "597dfdb976179efd923b99898298ffec634fabe6",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to f955793",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-25T23:10:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6534bac2ff3dc9013ea83f16b4d6af0b2e993d35",
"body": null,
"is_bot": true,
"headline": "v5.0.4",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-25T21:39:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f44fcefe75da0618c74de813caa1c014689b404f",
"body": "Update product-os/flowzone digest to 8674dc5",
"is_bot": true,
"headline": "Merge pull request #62 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-25T21:38:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe68fc799194a188ce94feb84a52be671daf4653",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to 8674dc5",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-25T21:34:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "15099220cc31132bb0a6eabb7078ea7ed21fcc96",
"body": null,
"is_bot": true,
"headline": "v5.0.3",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-25T20:08:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f9b27d7a225a09608a86f57602c067acf98494ad",
"body": "Update product-os/flowzone digest to eb703ea",
"is_bot": true,
"headline": "Merge pull request #61 from balena-io-modules/renovate/github-actions",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-25T20:07:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5dad23ecd03ceb43eb563e1ee253a63f98a0ba6a",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Update product-os/flowzone digest to eb703ea",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-25T20:03:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "824d34887d10861083b7c20f4b9df3ea4f5fc79d",
"body": null,
"is_bot": true,
"headline": "v5.0.2",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-03-24T18:18:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22ad14d9da44ac24d709696ffcf3ce7991a07e9c",
"body": "Pin product-os/flowzone action to a53cf4b",
"is_bot": true,
"headline": "Merge pull request #60 from balena-io-modules/renovate/pin-dependencies",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-24T18:18:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e865bb3c3bd274bfe7f35c6aa0c6e7a493db70ac",
"body": "Update product-os/flowzone\n\nChange-type: patch",
"is_bot": true,
"headline": "Pin product-os/flowzone action to a53cf4b",
"author_name": "balena-renovate[bot]",
"author_login": "balena-renovate[bot]",
"committed_at": "2026-03-24T18:13:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e1e2deb1ba9d2aa381a069471c894d444f8013b",
"body": null,
"is_bot": true,
"headline": "v5.0.1",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-02-19T21:49:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1cbafaad70fae356cdac068301f091e73c6e95b1",
"body": "Add id-token: write permission for NPM OIDC publishing",
"is_bot": true,
"headline": "Merge pull request #59 from balena-io-modules/add-npm-oidc-permissions",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-02-19T21:48:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f737dfd8d644f492a7f6398c59174f00ea40301a",
"body": null,
"is_bot": false,
"headline": "Add repository information to package.json",
"author_name": "Kyle Harding",
"author_login": "klutchell",
"committed_at": "2026-02-19T14:09:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "514fe8715c76ab669c0fa008f6b1e537d32287f0",
"body": "Change-type: patch\nSigned-off-by: Kyle Harding <kyle@balena.io>",
"is_bot": false,
"headline": "Add id-token: write permission for NPM OIDC publishing",
"author_name": "Kyle Harding",
"author_login": "klutchell",
"committed_at": "2026-02-18T18:29:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8de207596834844ed881cc5d5d2ab110c7f9f6ad",
"body": null,
"is_bot": true,
"headline": "v5.0.0",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2026-02-04T11:49:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd57d755c5eec28cfda098f902b10253185c8414",
"body": "5.x",
"is_bot": false,
"headline": "Merge pull request #58 from balena-io-modules/5.x",
"author_name": "Page-",
"author_login": "Page-",
"committed_at": "2026-02-04T11:48:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e715af4171ef9490673ec1aa15b4320dc2a19a50",
"body": "Change-type: major",
"is_bot": false,
"headline": "Remove bluebird dependency",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2026-02-04T11:36:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f3c0451e65d574ba057fe6eb4e1f0e88ff651f33",
"body": null,
"is_bot": false,
"headline": "Add .gitattributes to ensure the bash file has the correct EOL",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2026-02-04T11:34:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4badf52ea783adc1c364b39487eacfb74390c258",
"body": "…leased Feb 2016)\n\nUpdate docker-toolbelt from 6.0.13 to 7.0.0\n\nChange-type: major",
"is_bot": false,
"headline": "Update docker-toolbelt to 7.x, dropping support for docker < 1.10 (re…",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2026-02-04T11:34:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0572596a9aa7c9a62a441a21597be2ca717b97bd",
"body": "Change-type: major",
"is_bot": false,
"headline": "Switch to ESM",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2026-02-04T11:30:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c682d3e6be07c4032026e7dcdc2337fa15b5300",
"body": "Change-type: major",
"is_bot": false,
"headline": "Update tsconfig target to es2024",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2026-02-04T11:20:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bff24a6660ec538901c773c4111a0b7489e52c2f",
"body": "Change-type: major",
"is_bot": false,
"headline": "Update minimum supported nodejs version to ^22.22.0 || >=24.13.0",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2026-02-04T11:20:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c04b5ce80c1bab83c36f98cf5c72d50081480fd",
"body": null,
"is_bot": true,
"headline": "v4.1.1",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2025-10-07T13:27:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f22bba8b19fc97235d22edcf3154907faa69da5",
"body": "Update dependencies",
"is_bot": false,
"headline": "Merge pull request #52 from balena-io-modules/update-deps",
"author_name": "Page-",
"author_login": "Page-",
"committed_at": "2025-10-07T13:26:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f3010ca1f95d0a70b020e449768cd75848c6eac",
"body": null,
"is_bot": false,
"headline": "Tests: remove event-stream dependency",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2025-10-07T11:56:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32caaf065c311641ef73f87aa376544750948473",
"body": "Update docker-toolbelt from 6.0.2 to 6.0.13\n\nChange-type: patch",
"is_bot": false,
"headline": "Update dependencies",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2025-10-07T11:56:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4196b8c58f38c19cffa400a84014f4726f47e4ac",
"body": null,
"is_bot": true,
"headline": "v4.1.0",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2024-07-05T16:16:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0210c420d9a75df3a41aaf800db9325b595401ba",
"body": "Export OutOfSyncError",
"is_bot": true,
"headline": "Merge pull request #47 from balena-io-modules/export-out-of-sync-error",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2024-07-05T16:15:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90e267a3c74f3122821cc6d4fa056019e0a3339e",
"body": "The export was lost during the [migration from CoffeeScript to JavaScript](https://github.com/balena-io-modules/node-docker-delta/commit/9600706c47334a800636a97dc5e367e57f46d637#diff-c440d0187a0693cb8ff06e40fa4d7f3df979918586c0948cfef38594237ff533L22)\nbut the supervisor has been [assuming the export\n[…]\ne](https://github.com/balena-os/balena-supervisor/blob/master/src/lib/docker-utils.ts#L235) since then. This is required to fix v2 delta support in balena-os/balena-supervisor#2350\n\nChange-type: minor",
"is_bot": false,
"headline": "Export OutOfSyncError",
"author_name": "Felipe Lalanne",
"author_login": "pipex",
"committed_at": "2024-07-04T22:48:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ed1ecc4258986b7349df8c9f44196c0c91e102ef",
"body": null,
"is_bot": true,
"headline": "v4.0.1",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2024-04-26T14:40:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c311e541d04cea94db9fe917198736e5d1fb660",
"body": " Update dockerode and docker-toolbelt",
"is_bot": true,
"headline": "Merge pull request #46 from balena-io-modules/dockerode",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2024-04-26T14:39:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f165b5a8ee17e1abd79bca64b6414e80daa623e",
"body": null,
"is_bot": false,
"headline": "Fix linting errors",
"author_name": "Felipe Lalanne",
"author_login": "pipex",
"committed_at": "2024-04-25T02:57:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "079d87ec2e0077aa84fe3ed1abd512a90ab6081e",
"body": "Update dockerode to v4 and docker-toolbelt to v6\n\nChange-type: patch",
"is_bot": false,
"headline": "Update dockerode and docker-toolbelt",
"author_name": "Felipe Lalanne",
"author_login": "pipex",
"committed_at": "2024-04-25T02:55:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dce23a537feb06b33afe9a016cc302894e548ecc",
"body": null,
"is_bot": true,
"headline": "v4.0.0",
"author_name": "flowzone-app[bot]",
"author_login": "flowzone-app[bot]",
"committed_at": "2023-11-22T15:46:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "695a9e00d834484c7969281cf90d9d214fa5b76e",
"body": "4.x",
"is_bot": false,
"headline": "Merge pull request #45 from balena-io-modules/4.x",
"author_name": "Page-",
"author_login": "Page-",
"committed_at": "2023-11-22T15:45:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bfe3a2641b242971fe6fa57ed95fa57ebca83b6a",
"body": null,
"is_bot": false,
"headline": "Remove unnecessary empty buffer allocation",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2023-11-22T13:21:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6fca27760517d83ac02c5b2f24b5828565e52eb5",
"body": "…wrapping\n\nChange-type: major",
"is_bot": false,
"headline": "Use `stream.promises.pipeline` rather than manual `pipe` and promise …",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2023-11-22T12:56:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48e988a2699bd398619813cb6ab7cb49a4044afc",
"body": "…mise\n\nChange-type: major",
"is_bot": false,
"headline": "Use `fs.promises` rather than manually wrapping `fs` calls with a pro…",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2023-11-22T12:46:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f3b918a40f483aa6b87f57962259d7379a81e4b2",
"body": null,
"is_bot": false,
"headline": "Use `node:` prefix for in-built modules",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2023-11-22T12:32:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "64cfa5cb894f909b115773c85ab64aebb5f32579",
"body": "Change-type: major",
"is_bot": false,
"headline": "Switch from readable-stream 2.x to nodejs built in stream passthrough",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2023-11-22T12:31:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aab1e3b8da86491f77fb9bdd7eb136978b54c939",
"body": "Change-type: major",
"is_bot": false,
"headline": "Require dockerode instance to be passed in rather than defaulting one",
"author_name": "Pagan Gazzard",
"author_login": "Page-",
"committed_at": "2023-11-22T12:26:59Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 32,
"commits_last_year": 85,
"latest_release_at": "2026-07-20T07:56:24Z",
"latest_release_tag": "v5.0.24",
"releases_from_tags": false,
"days_since_last_push": 6,
"active_weeks_last_year": 7,
"days_since_latest_release": 6,
"mean_days_between_releases": 12.9
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 37,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "docker-delta",
"exists": true,
"license": "Apache-2.0",
"keywords": [],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/docker-delta",
"is_deprecated": false,
"latest_version": "5.0.24",
"repository_url": "https://github.com/balena-io-modules/node-docker-delta",
"versions_count": 178,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 3055,
"first_published_at": "2016-06-03T17:04:19.663000Z",
"latest_published_at": "2026-07-20T07:56:50.872000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
}
]
},
"popularity": {
"forks": 5,
"stars": 9,
"watchers": 9,
"fork_history": {
"days": [
{
"date": "2016-09-10",
"count": 1
},
{
"date": "2016-11-13",
"count": 1
},
{
"date": "2017-01-11",
"count": 1
},
{
"date": "2018-01-21",
"count": 1
},
{
"date": "2022-01-28",
"count": 1
}
],
"complete": true,
"collected": 5,
"total_forks": 5
},
"star_history": null,
"open_issues_and_prs": 4
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 6341,
"source_files_sampled": 5,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "published_package",
"source": "osv",
"findings": [
{
"name": "uuid",
"direct": false,
"version": "10.0.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-w5hq-g745-h8pq"
],
"fixed_version": "13.0.1",
"advisory_count": 1,
"oldest_advisory_days": 94
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 1
},
"advisory_count": 1,
"affected_count": 1,
"assessed_count": 89,
"malicious_count": 0,
"assessed_package": "npm:docker-delta@5.0.24",
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "docker-toolbelt",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^7.0.0"
},
{
"name": "dockerode",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.9"
},
{
"name": "p-timeout",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^7.0.1"
},
{
"name": "tmp-promise",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.0.3"
},
{
"name": "typed-error",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.2.2"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "docker-toolbelt",
"direct": true,
"version": "^7.0.0",
"ecosystem": "npm"
},
{
"name": "dockerode",
"direct": true,
"version": "^4.0.9",
"ecosystem": "npm"
},
{
"name": "p-timeout",
"direct": true,
"version": "^7.0.1",
"ecosystem": "npm"
},
{
"name": "tmp-promise",
"direct": true,
"version": "^3.0.3",
"ecosystem": "npm"
},
{
"name": "typed-error",
"direct": true,
"version": "^3.2.2",
"ecosystem": "npm"
},
{
"name": "@balena/lint",
"direct": false,
"version": "^9.3.12",
"ecosystem": "npm"
},
{
"name": "@types/dockerode",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "22.20.1",
"ecosystem": "npm"
},
{
"name": "chai",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "chai-events",
"direct": false,
"version": "0.0.3",
"ecosystem": "npm"
},
{
"name": "chai-stream",
"direct": false,
"version": "0.0.0",
"ecosystem": "npm"
},
{
"name": "husky",
"direct": false,
"version": "9.1.7",
"ecosystem": "npm"
},
{
"name": "JSONStream",
"direct": false,
"version": "1.3.5",
"ecosystem": "npm"
},
{
"name": "lint-staged",
"direct": false,
"version": "17.0.8",
"ecosystem": "npm"
},
{
"name": "mocha",
"direct": false,
"version": "11.7.6",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 16,
"direct_count": 5,
"indirect_count": 11
}
},
"maintainership": {
"issues": {
"open_prs": 3,
"merged_prs": 70,
"open_issues": 1,
"closed_ratio": 0.5,
"closed_issues": 1,
"closed_unmerged_prs": 10
},
"bus_factor": 2,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "petrosagg",
"commits": 38,
"avatar_url": "https://avatars.githubusercontent.com/u/939420?v=4"
},
{
"type": "User",
"login": "Page-",
"commits": 35,
"avatar_url": "https://avatars.githubusercontent.com/u/360115?v=4"
},
{
"type": "User",
"login": "dfunckt",
"commits": 30,
"avatar_url": "https://avatars.githubusercontent.com/u/130359?v=4"
},
{
"type": "User",
"login": "balena-ci",
"commits": 13,
"avatar_url": "https://avatars.githubusercontent.com/u/34882892?v=4"
},
{
"type": "User",
"login": "pcarranzav",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/2223590?v=4"
},
{
"type": "User",
"login": "joshbwlng",
"commits": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/45343541?v=4"
},
{
"type": "User",
"login": "CameronDiver",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/7694128?v=4"
},
{
"type": "User",
"login": "klutchell",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/20458272?v=4"
},
{
"type": "User",
"login": "pipex",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/1822826?v=4"
},
{
"type": "User",
"login": "lekkas",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/5211478?v=4"
}
],
"contributors_sampled": 10,
"top_contributor_share": 0.268
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"flowzone.yml"
],
"has_docs_dir": false,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"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": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "10 out of 10 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": 1,
"reason": "Found 3/18 approved changesets -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 7 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": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "24 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 6,
"reason": "dependency not pinned by hash detected -- score normalized to 6",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 10,
"reason": "SAST tool is run on all commits",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not 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": 10,
"reason": "GitHub workflow tokens follow principle of least privilege",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "819234bb0f3823ede697f8ff8f813ba38ac81db6",
"ran_at": "2026-07-26T13:26:22Z",
"aggregate_score": 5.6,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-21T12:22:18Z",
"oldest_open_prs": [
{
"number": 55,
"created_at": "2025-11-11T17:54:46Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 76,
"created_at": "2026-05-12T17:40:27Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 82,
"created_at": "2026-06-13T00:21:17Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-20T07:55:05Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 51,
"created_at": "2025-03-19T16:00:11Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/balena-io-modules/node-docker-delta",
"host": "github.com",
"name": "node-docker-delta",
"owner": "balena-io-modules"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"security": 61,
"vitality": 77,
"community": 42,
"governance": 70,
"engineering": 57
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 77,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"commits_last_year": 85,
"human_commit_share": 0.27,
"days_since_last_push": 6,
"active_weeks_last_year": 7
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 6 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 6
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "7/52 weeks with commits",
"points": 4.8,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 7
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "85 commits in the last year",
"points": 17.4,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 85
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "24 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": 32,
"latest_release_tag": "v5.0.24",
"releases_from_tags": false,
"days_since_latest_release": 6,
"mean_days_between_releases": 12.9
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "32 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 32
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 6 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 6
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~12.9 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 12.9
}
}
],
"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": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 44,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 44 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 44
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "at_risk",
"name": "Community & Adoption",
"value": 42,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"forks": 5,
"stars": 9,
"watchers": 9,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "9 stars",
"points": 14.6,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 9
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "5 forks",
"points": 5,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 5
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "9 watchers",
"points": 5,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 9
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (Apache-2.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "Apache-2.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 58,
"inputs": {
"packages": [
"docker-delta"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 3055
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "3,055 downloads/month across npm",
"points": 46.5,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 3055,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "good",
"name": "Sustainability & Governance",
"value": 70,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 10,
"top_contributor_share": 0.268
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 27% of commits",
"points": 16.5,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 27
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "10 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 10
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 7 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 58,
"inputs": {
"merged_prs": 70,
"open_issues": 1,
"closed_issues": 1,
"issue_closed_ratio": 0.5,
"closed_unmerged_prs": 10
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "50% of issues closed",
"points": 23.4,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 50
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "70/80 decided PRs merged",
"points": 33.5,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 70,
"decided": 80
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 3/18 approved changesets -- score normalized to 1",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 64,
"inputs": {
"followers": 15,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "balena-io-modules",
"public_repos": 298,
"account_age_days": 3791
},
"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": "15 followers of balena-io-modules",
"points": 8.7,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 15,
"login": "balena-io-modules"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "298 public repos, account ~10 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 298
}
},
{
"code": "account_age_years",
"params": {
"years": 10
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"docker-delta"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 6
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 6 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 6
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "178 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 178
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 57,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "1 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 1
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "10 out of 10 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "at_risk",
"name": "Documentation",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": null,
"has_readme": true,
"has_docs_dir": false,
"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": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 61,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 56,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 5.6
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "10 out of 10 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 3/18 approved changesets -- score normalized to 1",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 7 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": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "24 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 6",
"points": 3,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is run on all commits",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"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": "GitHub workflow tokens follow principle of least privilege",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "good",
"name": "Dependency advisories",
"note": "Matched the npm:docker-delta@5.0.24 runtime dependency closure — what installing the published package pulls in — 89 packages. Reachability is not analyzed.",
"notes": [
{
"code": "advisories_scope_published",
"params": {
"package": "npm:docker-delta@5.0.24",
"assessed": 89
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 79,
"inputs": {
"source": "osv",
"advisories": 1,
"affected_packages": 1,
"assessed_packages": 89,
"unassessed_packages": 0,
"affected_by_severity": "high 1",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "1 affected: uuid 10.0.0 (high 7.5)",
"points": 10,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 1,
"packages": "uuid 10.0.0 (high 7.5)"
}
}
],
"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 94 days ago",
"points": 33.7,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 1,
"oldest": 94
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 89,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 7
},
"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": "at_risk",
"name": "AI Readiness",
"value": 46,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 16,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.296,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "8 of 27 human commits state their intent (structured subject or explanatory body)",
"points": 15.8,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 8,
"sampled": 27
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 49,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [
"tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 6",
"points": 6,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 6341,
"source_files_sampled": 5,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/5 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 5,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-26T13:26:37.905840Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/b/balena-io-modules/node-docker-delta.svg",
"full_name": "balena-io-modules/node-docker-delta",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}