公开记录
软件健康报告模式 0.26.0 · 指标 1.13.0 · 2026-07-22 18:11 UTC

ARM-software / SCP-firmware

This System Control Processor (SCP) firmware repository is no longer used and has been set to Read-only for archiving purposes. Please refer to the following active repository.

C自定义许可证★ 265 星标⑂ 196 复刻始于 2018年5月已归档在 GitHub 上查看 ↗

ARM-software/SCP-firmware 的健康指数为 100 分中的 23 分,处于「危急」区间。 其得分最高的类别是Sustainability & Governance(85/100),最低的是Vitality(17/100)。 该仓库已归档,预计不会再有维护。

23
总分 / 100
危急

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

23
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

Abandonment Policy applies a 40% multiplier to weighted overall health and gives it a ceiling of 29.

所有权

2,615 关注者195 个公开仓库始于 2013年10月

该仓库由组织支持——共同承担、可问责的托管责任,可延续于任何单一维护者之后。

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

17危急 · 占总体的 22%
评分方式
0/36推送新近度 — 最近一次推送于 701 天前
0/36提交节奏 — 52 周中有 0 周有提交
0/18提交量 — 最近一年 0 次提交
0/10OpenSSF Scorecard:Maintained — project is archived
所用输入
commits_last_year0
human_commit_share1
days_since_last_push701
active_weeks_last_year0

发布纪律

40存在风险
评分方式
16.2/27有发布版本 — 26 个版本标签(无 GitHub 发布版本)
0/36发布时效 — 最近一次发布版本于 866 天前
19.8/27发布节奏 — 约每 78.7 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count26
latest_release_tagv2.14.0
releases_from_tags
days_since_latest_release866
mean_days_between_releases78.7
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

61中等 · 占总体的 18%
评分方式
39.3/60星标 — 265 个星标
19.1/25复刻 — 196 个复刻
0/15关注者 — 2 位关注者
所用输入
forks196
stars265
watchers2
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

64中等
评分方式
22.5/22.5README
16.9/22.5许可证 — 存在许可证文件,但不是可识别的许可证
18/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

85优秀 · 占总体的 24%
评分方式
54/54巴士系数 — 8 位贡献者贡献了半数提交
19.5/22.5提交分布 — 头号贡献者编写了 13% 的提交
13.5/13.5贡献者广度 — 86 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 12 contributing companies or organizations
所用输入
bus_factor8
contributors_sampled86
top_contributor_share0.133
评分方式
41.4/46.8议题解决 — 88% 的议题已关闭
34/38.3PR 接受 — 已裁定的 PR 中 774/870 已合并
0/15OpenSSF Scorecard:Code-Review — Found 0/30 approved changesets -- score normalized to 0
所用输入
merged_prs774
open_issues3
closed_issues23
issue_closed_ratio0.885
closed_unmerged_prs96
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
24.6/25所有者影响力 — ARM-software 有 2,615 位关注者
25/25既往记录 — 195 个公开仓库,账户约 12 年
所用输入
followers2,615
owner_typeOrganization
is_verified
owner_loginARM-software
public_repos195
account_age_days4,663

工程质量

基础的工程与文档实践是否到位?

72良好 · 占总体的 20%

工程实践

60中等
评分方式
24/24CI 工作流 — 2 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
0/6.4.editorconfig
0/20OpenSSF Scorecard:CI-Tests — 无数据
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config
已排除计分(无数据或不适用):OpenSSF Scorecard:CI-Tests。 其余权重已重新归一化。

文档

90优秀
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — https://gitlab.arm.com/firmware/SCP-firmware
10/10仓库描述
0/10主题标签
10/10Wiki
所用输入
topics
has_wiki
homepagehttps://gitlab.arm.com/firmware/SCP-firmware
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

46存在风险 · 占总体的 16%

安全态势

46存在风险
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — 无数据
0/2.5CI-Tests — 无数据
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 12 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5许可证 — license file detected
0/7.5Maintained — project is archived
0/5Packaging — 无数据
3.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 7
0/5SAST — no SAST tool detected
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — 无数据
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated14
scorecard_versionv5.5.0
checks_inconclusive4
scorecard_aggregate4.6
已排除计分(无数据或不适用):branch_protection, ci_tests, packaging, signed_releases。 其余权重已重新归一化。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

55中等 · 占总体的 0%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 100 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
评分方式
0/18一条命令的引导启动
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — C(静态类型)
10/10可复现环境 — Dockerfile
0/10已体现的代理实践 — 最近 100 次提交中没有代理编写的提交
0/8自动化维护 — 未观察到自动依赖更新
7/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 7
所用输入
has_nix
has_tests
lockfiles
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
评分方式
45/45可类型检查的代码 — C(静态类型)
54/55可控的文件大小 — 采样的 2,197 个源文件中有 39 个超过 60KB
所用输入
primary_languageC
largest_source_bytes409,650
source_files_sampled2,197
oversized_source_files39

关键数据

265GitHub 星标
86贡献者
0最近 12 个月提交数
701距最近推送天数
26发布版本数
8巴士系数(bus factor)
3开放议题
PyPI软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

更多细节

Star 与 Fork 历史 0 ★ / 196 ⇿
0Star
196Fork
26发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

0408012016020019542018-072022-062026-05
主版本 0次版本 11修订 0

每个点涵盖 8 天。

OpenSSF Scorecard 4.6 / 10
4.6综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-07-22 18:10 UTC

10Binary-Artifactsno binaries found in the repo
不适用Branch-Protectioninternal 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
不适用CI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 12 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
0Maintainedproject is archived
不适用Packagingpackaging workflow not detected
7Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 7
0SASTno SAST tool detected
10Security-Policysecurity policy file detected
不适用Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
全部依赖 0

来自 GitHub 依赖图的完整解析依赖集合:0 个直接依赖与 0 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
依赖安全公告 未评估

本报告未能完成公告比对:No resolved dependencies to assess

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 11721,
      "has_wiki": true,
      "homepage": "https://gitlab.arm.com/firmware/SCP-firmware",
      "languages": {
        "C": 16565200,
        "Ruby": 1607,
        "CMake": 569339,
        "Shell": 8373,
        "Python": 94804,
        "Assembly": 63920,
        "Makefile": 13831,
        "Dockerfile": 5625
      },
      "pushed_at": "2024-08-20T08:04:12Z",
      "created_at": "2018-05-22T10:35:56Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-11T04:14:38Z",
      "description": "This System Control Processor (SCP) firmware repository is no longer used and has been set to Read-only for archiving purposes. Please refer to the following active repository.",
      "is_archived": true,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "master",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "C",
      "significant_languages": [
        "C"
      ]
    },
    "owner": {
      "blog": "www.arm.com",
      "name": "Arm Software",
      "type": "Organization",
      "login": "ARM-software",
      "company": null,
      "location": "Cambridge, UK",
      "followers": 2615,
      "avatar_url": "https://avatars.githubusercontent.com/u/5690313?v=4",
      "created_at": "2013-10-15T10:38:41Z",
      "is_verified": null,
      "public_repos": 195,
      "account_age_days": 4663
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.14.0",
          "kind": "minor",
          "published_at": "2024-03-08T16:00:01Z"
        },
        {
          "tag": "v2.14.0-rc1",
          "kind": "prerelease",
          "published_at": "2024-03-04T12:42:48Z"
        },
        {
          "tag": "v2.14.0-rc0",
          "kind": "prerelease",
          "published_at": "2024-03-04T10:29:29Z"
        },
        {
          "tag": "v2.13.0",
          "kind": "minor",
          "published_at": "2023-09-13T14:27:08Z"
        },
        {
          "tag": "v2.13.0-rc0",
          "kind": "prerelease",
          "published_at": "2023-09-06T15:26:33Z"
        },
        {
          "tag": "v2.12.0",
          "kind": "minor",
          "published_at": "2023-04-14T15:20:21Z"
        },
        {
          "tag": "v2.12.0-rc0",
          "kind": "prerelease",
          "published_at": "2023-04-04T08:17:29Z"
        },
        {
          "tag": "v2.11.0",
          "kind": "minor",
          "published_at": "2022-10-06T08:27:52Z"
        },
        {
          "tag": "v2.11.0-rc0",
          "kind": "prerelease",
          "published_at": "2022-09-21T15:06:57Z"
        },
        {
          "tag": "v2.10.0",
          "kind": "minor",
          "published_at": "2022-03-31T12:53:23Z"
        },
        {
          "tag": "v2.10.0-rc1",
          "kind": "prerelease",
          "published_at": "2022-03-28T12:12:49Z"
        },
        {
          "tag": "v2.10.0-rc0",
          "kind": "prerelease",
          "published_at": "2022-03-24T14:18:41Z"
        },
        {
          "tag": "v2.9.0",
          "kind": "minor",
          "published_at": "2021-10-05T11:13:43Z"
        },
        {
          "tag": "v2.9.0-rc0",
          "kind": "prerelease",
          "published_at": "2021-09-30T11:18:17Z"
        },
        {
          "tag": "v2.8.0",
          "kind": "minor",
          "published_at": "2021-04-22T08:10:41Z"
        },
        {
          "tag": "v2.8.0-rc0",
          "kind": "prerelease",
          "published_at": "2021-04-08T11:54:02Z"
        },
        {
          "tag": "v2.7.0",
          "kind": "minor",
          "published_at": "2020-10-20T17:42:06Z"
        },
        {
          "tag": "v2.7.0-rc1",
          "kind": "prerelease",
          "published_at": "2020-10-20T11:54:24Z"
        },
        {
          "tag": "v2.7.0-rc0",
          "kind": "prerelease",
          "published_at": "2020-10-15T17:47:47Z"
        },
        {
          "tag": "v2.6.0",
          "kind": "minor",
          "published_at": "2020-03-19T17:20:59Z"
        },
        {
          "tag": "v2.6.0-rc0",
          "kind": "prerelease",
          "published_at": "2020-03-17T21:14:14Z"
        },
        {
          "tag": "v2.5.0",
          "kind": "minor",
          "published_at": "2019-08-08T10:51:27Z"
        },
        {
          "tag": "v2.5.0-rc0",
          "kind": "prerelease",
          "published_at": "2019-07-24T14:04:21Z"
        },
        {
          "tag": "v2.4.0",
          "kind": "minor",
          "published_at": "2018-10-10T14:33:05Z"
        },
        {
          "tag": "v2.4.0-rc1",
          "kind": "prerelease",
          "published_at": "2018-10-10T14:33:05Z"
        },
        {
          "tag": "v2.4.0-rc0",
          "kind": "prerelease",
          "published_at": "2018-10-09T07:09:10Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "b34e5ceb5bab4bb351e0ba4b86c2f8a539cdbbb4",
          "body": "The files were updated after the git revert.\nThis change corrects the copyright year.\n\nSigned-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>",
          "is_bot": false,
          "headline": "smcf: Fix copyright year after revert",
          "author_name": "Tarek El-Sherbiny",
          "author_login": "tarek-arm",
          "committed_at": "2024-08-19T11:29:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc0a62090b663b799a84e2519f674351a21f462d",
          "body": "The method of application the mode is largely determined by the type of\nmonitor being used. Each monitor implementation may require different handling.\nFrom a design perspective, it is preferable to delegate this handling to the\nspecific monitor driver and keep the smcf code generic.\n\nThis reverts commit 9860d64bd6ee38901257cacdc4915d10874b4329\n\nSigned-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>",
          "is_bot": false,
          "headline": "Revert \"smcf: Check MODE_STAT after setting MODE_REQ\"",
          "author_name": "Tarek El-Sherbiny",
          "author_login": "tarek-arm",
          "committed_at": "2024-08-19T11:29:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f666b2e131c86f6e27001fe6dac99b627d14656",
          "body": "Signed-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: Ie8c1d80b9f32a5004c76a86351a018b4cfb7b2e6",
          "is_bot": false,
          "headline": "requirements.txt: update pyyaml to be compatible with Python 3.10",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-08-16T17:35:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "249524daa2f9231969384a79be2523c2f2e98b22",
          "body": "On gcc 13.2.0 the following error is flagged:\nstoring the address of local variable ‘data_api’ in\n‘sensor_smcf_drv_ctx.data_api’ [-Werror=dangling-pointer=].\n\nStoring a local pointer in a global variable should be avoided.\n\nSigned-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>",
          "is_bot": false,
          "headline": "sensor_smcf_drv/unit_test: Fix compiler error",
          "author_name": "Tarek El-Sherbiny",
          "author_login": "tarek-arm",
          "committed_at": "2024-08-15T08:27:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a00810541699953f6ed1732c8b81fdcde310a58",
          "body": "On gcc 13.2.0 the following error is flagged:\nerror: comparison of integer expressions of different signedness:\n‘int’ and ‘enum pd_idx’ [-Werror=sign-compare]\n\nPositive enum should be compared against unsigned variables.\n\nSigned-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>",
          "is_bot": false,
          "headline": "mod_power_domain/unit_test: fix compiler error",
          "author_name": "Tarek El-Sherbiny",
          "author_login": "tarek-arm",
          "committed_at": "2024-08-15T08:27:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2da65a4266a33a15968d2724084b9daa4179c94e",
          "body": "On gcc 13.2.0 the following error is flagged:\nstoring the address of local variable ‘data_api’ in\n‘amu_smcf_drv_ctx.data_api’ [-Werror=dangling-pointer=].\n\nStoring a local pointer in a global variable should be avoided.\n\nSigned-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>",
          "is_bot": false,
          "headline": "amu_smcf_drv/unit_test: Fix compiler error",
          "author_name": "Tarek El-Sherbiny",
          "author_login": "tarek-arm",
          "committed_at": "2024-08-15T08:27:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed7e163e111535789250ebb76607bc8028163382",
          "body": "Programmable System Address Map feature in NoC S3 allows configurable\naddress map for address‑based routing from each upstream interface to\nthe corresponding downstream interfaces.\n\nAdd the support to configure PSAM during runtime in following mode\n1) Static mapping with the information passed throu\n[…]\nor this reason, the module will maintain the\n   context for the blocks that it is managing.\n\nSigned-off-by: Nishant Sharma <nishant.sharma@arm.com>\nChange-Id: Ia2c08a76e5d48ecdb6b38d19180e015aca22dc41",
          "is_bot": false,
          "headline": "mod/noc_s3: add the support to program psam",
          "author_name": "Nishant Sharma",
          "author_login": "nissha03",
          "committed_at": "2024-08-14T13:09:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "468ef4467f23ca8c16818bd10f06fed80e24ad32",
          "body": "The configuration register layout for NoC S3 is laid out in a\nmultibranch tree format. On the top of the tree is global configuration\nnode which points to the domain and domains points to components nodes.\nThe components nodes contains subfeatures that can be used to enable\nPSAM, APU, FCU and IDM.\n\n\n[…]\ne user\nwill access the table using node type 4 and Id 2. Table[4][2] will give\noffset of C2\n\nSigned-off-by: Nishant Sharma <nishant.sharma@arm.com>\nChange-Id: I221694d12a853e46df0f6c434058eaf6dfb4aa2b",
          "is_bot": false,
          "headline": "mod/noc_s3: add the support to discovery node offset",
          "author_name": "Nishant Sharma",
          "author_login": "nissha03",
          "committed_at": "2024-08-14T13:09:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ffd00f4998e35f798446a8ace0d730c9ece1e33e",
          "body": "NoC S3 Network-on-Chip Interconnect is a highly configurable\nsystem-level interconnect. This design allows the creation of a highly\noptimized, non-coherent interconnect which supports Programmable System\nAddress Map, Programmable Access Protection Unit, Programmable Fault\nProtection Unit and many mo\n[…]\n S3 features. The handlers added in this change will be consumed by\nthe subsequent changes.\n\nSigned-off-by: Nishant Sharma <nishant.sharma@arm.com>\nChange-Id: I81d9d7175a4c1f43dd84e5118772bc8b9d6826d5",
          "is_bot": false,
          "headline": "mod/noc_s3: add initial framework handlers",
          "author_name": "Nishant Sharma",
          "author_login": "nissha03",
          "committed_at": "2024-08-14T13:09:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e1fb6b016a242734b4a01cfbdf2d16671b446a7a",
          "body": "In Cortex-M3/M4/M23/M33, a core register block was named the System Control and\nID Register, separate from the System Control Block (SCnSCB). In Cortex-M55/M85,\nthe same block was renamed to Implementation Control Registers (ICB), creating a\nnaming discrepancy within the same Cortex v8m family. Ther\n[…]\nnsure compatibility, the register's definition\nis utilized over the family.\n\nThis adjustment should facilitate the build for Cortex-M23 and M33 cores.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "arch: Enhance compatibility for `arch_nvic_init`",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-08-12T15:23:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "98379844eb154240398dcc1a1885e0575dfce44f",
          "body": "This commit removes the dependencies of clang-tidy including configuration file\nlocated in the parent directory.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "cmake: Terminate Clang-Tidy support",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-08-09T17:05:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c4305d916c2c6dd650c030e8740fc1c723cda19",
          "body": "This commit removes the dependencies of IWYU including pragmas in source file.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "cmake: Terminate Include What You Use (IWYU) support",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-08-09T17:05:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a86c59b96dccf618428f57d00448874d3ba7db4d",
          "body": "This commit removes cmake targets for yamllint by dropping unused cmake and\nconfiguration file. Also, It removes redundant python package and script.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "cmake: Terminate yamllint support",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-08-09T17:05:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "124b59ee1336cd9335c637d3d9b4c83db00acb8a",
          "body": "This commit removes targets for c. All the dependencies of clang-format are\ndropped including submodule `run-clang-format`.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "cmake: Terminate Clang-format support",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-08-09T17:05:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68c1a0ff9e01f1b8446b9ff6c322014bc6d1a945",
          "body": "Currently, within the deployment and daily pipeline, products are\nbuild sequentially instead of in parallel which is slow. This patch\nadds building all products in parallel within the pipelines. In the\ndeployment pipeline, all products are built with default log level\nand in the daily pipeline all products are built with all log levels\n(all in parallel).\n\nSigned-off-by: Haaris Farooq <haaris.farooq@arm.com>",
          "is_bot": false,
          "headline": "ci: Build products in parallel in pipelines",
          "author_name": "Haaris Farooq",
          "author_login": null,
          "committed_at": "2024-08-09T16:05:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6a4be936fb64fa3fbf803117e85c263fd6fe711",
          "body": "Add a function which roughly estimate the overhead of tracing by calling\na FWK_TRACE_START followed by FWK_TRACE_FINISH and calculating how long\nthe empty trace took.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "fwk/trace: add calculate overhead function",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-08-09T14:51:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d6478a1cb930093da436d4b16be66043693b7c0",
          "body": "Enable fwk trace by providing the required driver functions.\n\nget_trace_count is implemented by returning the current time provided\nby the fwk.\n\nreport_trace_entry implemented to use the fwk log to dump the trace\nentry.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "prod/juno/ramfw: Enable fwk trace",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-08-09T14:51:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b5070b2ff9dfee95450ff837200bfe9c03530a1",
          "body": "Add the fwk_trace to the scpfw-path to be visible\nfor optee product.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "prod/optee: Add fwk_trace to scpfw-path for optee",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-08-09T14:51:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47422069be5038aa3ec5c683769b65ea871df3d0",
          "body": "Add a unit test for the fwk_trace component.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "fwk/trace/test: add test to fwk_trace component",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-08-09T14:51:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "813d518e23fcc57704bde5db84c2576bc2f58ea6",
          "body": "Similar to fwk Timer adding a fwk trace mechanism.\nWhich depends on trace driver that should be provided by product.\n\nThe driver should provide functions to\n- Get trace count which get current timestamp or cycle from the start.\n- Report trace entry which dumps the entry data.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "fwk/trace: Add tracing mechanism",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-08-09T14:51:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80befa77a8b2a49c71254dc86efcf5ec275485c2",
          "body": "The SCMI-perf protocol ops default unit test target is build with\nBUILD_HAS_SCMI_PERF_FAST_CHANNELS flag, which was incorrectly\nintroduced, has now been removed.\n\nThe two unit tests for checking incorrect message id which was not\nbeing compiled before for default target are modified accordingly.\n\nSigned-off-by: Md Golam Tanvir Zim <mdgolamtanvir.zim@arm.com>\nChange-Id: Ia18b4c7ffa8bfc0d70d2a55e9d5a7358366d00a5",
          "is_bot": false,
          "headline": "scmi_perf: Fixing perf protocol ops unit test build",
          "author_name": "Md Golam Tanvir Zim",
          "author_login": "mdgzim01",
          "committed_at": "2024-08-09T13:10:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "450a3b070440fb261ead92803ba8ae4f7903ee23",
          "body": "get_limit API defined with the second argument power_limit as\nuint32_t. Hence, changing the local variable (placeholder) type to\nuint32_t to avoid building compatibility issues.\n\n`unsigned int` translates differently based on the target.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics-analyzer: fix argument compatibility",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-08-08T15:03:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "19e742dbdfcdf5c23916737ded847f6a5ca13431",
          "body": "Modules to be included in product firmwares, has to be added to\nthe \"SCP_MODULE_PATHS\".\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics-analyzer: Add module to SCP_MODULE_PATHS",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-08-08T15:03:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f158b6328c2fef98cad4e11bcded42885f642af1",
          "body": "Add the missing fwk_id.h include.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics-analyzer: Add missing fwk_id header",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-08-08T15:03:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3694d4f08c3445a95966f2a9e5d821118e75923",
          "body": "As a convention SCP_MODULE name is `-` sperated.\nThis patch fixes the module name to follow the convention.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics-analyzer: fix the module name",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-08-08T15:03:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54c43f480901d3fd4de2bdb0e65811a836456945",
          "body": "Modify the FWK_IS_VALUE_POWER_OF_TWO macro to address cppcheck warnings\nencountered with unsigned integers in the previous version.\nThe revised macro ensures proper handling of both signed and unsigned integers\nby checking if a value is positive and a power of two.\n\nThe specific cppcheck warning encountered was: \"Checking if unsigned expression\n'page_size' is less than zero. [unsignedLessThanZero].\"\n\nChange-Id: I59c42016f207956ec07f557714cadd946ad58a91",
          "is_bot": false,
          "headline": "framework: update FWK_IS_VALUE_POWER_OF_TWO macro",
          "author_name": "Shaileshwar M",
          "author_login": null,
          "committed_at": "2024-08-08T09:35:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e64924675aa2f0bb2c32e0f70f8684c6bd1881a",
          "body": "Added a configuration attribute that allows for building with any\npre-defined configuration of flags and not just the default flags.\n\nSigned-off-by: Haaris Farooq <haaris.farooq@arm.com>",
          "is_bot": false,
          "headline": "tools: Add configuration attribute to builds",
          "author_name": "Haaris Farooq",
          "author_login": null,
          "committed_at": "2024-08-07T12:19:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0db8caa15c6e996bd3c18aa99ab5430ea7e0d38a",
          "body": "Currently, when a build is built in check_build.py, every build is written\nto the same directory which is the default output path specified. Now, each\nbuild is given its own build directory which is a concatenation of its\nproperties which is:\noutput_path/product-group/platform/log-level/variant/toolchain/mode\n\nSigned-off-by: Haaris Farooq <haaris.farooq@arm.com>",
          "is_bot": false,
          "headline": "tools: Add unique build directories for each build",
          "author_name": "Haaris Farooq",
          "author_login": null,
          "committed_at": "2024-08-07T12:19:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "434bc9977f7f3e83c2538571b9546ee3ff0291c6",
          "body": "…ducts\n\nIntroduces -p flag to allow for building with specific products. The flag\ncan take in a list of parameters, i.e. \"-p juno host morello\" will only\ncheck builds for those 3 products.\n\nSigned-off-by: Haaris Farooq <haaris.farooq@arm.com>",
          "is_bot": false,
          "headline": "tools: Add parameter to check_build.py for building with specific pro…",
          "author_name": "hf",
          "author_login": null,
          "committed_at": "2024-08-07T12:15:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b844ff3280a08fb6fa898d8ee09fe97d88269140",
          "body": "Fixing a leftover from a commit where P2A SCMI service channel were\nintroduced in JUNO which means the service count would not be equal\nto agent count as an agent can have both A2P and P2A.\n\nSigned-off-by: Md Golam Tanvir Zim <mdgolamtanvir.zim@arm.com>\nChange-Id: I0d876219f9447434e95ab55bcd00d47376abeeb9",
          "is_bot": false,
          "headline": "product/juno: Fix number of agents in agent table for SCMI clock",
          "author_name": "Md Golam Tanvir Zim",
          "author_login": "mdgzim01",
          "committed_at": "2024-08-06T17:08:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33bb61dce737c3aead29f4ec9492e8cc58ab4f81",
          "body": "…ctory\n\nSigned-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: Ia6385bba7e585a2e785912fdd8c8d01d2c81f8ed",
          "is_bot": false,
          "headline": "tools/check_build: move default product build list to a separate dire…",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-08-02T13:39:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6339976c27e646326de8f6d45edd3e8367d5362",
          "body": "Signed-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: Ib6694cb8614a0a3120d91ea4235e2baa9c742ced",
          "is_bot": false,
          "headline": "tools/check_api: move default banned API list to a separate directory",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-08-02T13:39:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd9bdf6a155e3aa7e0be62b520e122db3c1fc5ae",
          "body": "Signed-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: I17b3c214629ac6f38341d50c9928529df90caf5e",
          "is_bot": false,
          "headline": "cppcheck: move configuration files to a separate directory",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-08-02T13:39:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26fb80038996e002315350172e5b0922f189c109",
          "body": "This patch deletes Gemfile and cleans up dependencies of Markdownlint in cmake\nbuild system.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "tools: Remove Gemfile and Markdownlint",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-08-01T16:06:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "511a3851e61d82f7c2544549417f72a5606b9526",
          "body": "The cached_counters and delta variables are 64 bits, but they are allocated at the init function with 32 bits size.\nFix unit test utest_mpmm_element_init_two_core_success to expect 64 bits.\n\nSigned-off-by: mohmah01 <mohammed.mahmoud@arm.com>",
          "is_bot": false,
          "headline": "module/mpmm: Fix calloc variables size for counters",
          "author_name": "mohmah01",
          "author_login": null,
          "committed_at": "2024-07-31T13:00:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75c1086186947694799c03d0e8b3d679236320bc",
          "body": "Adding a macro to determine if a value is aligned with a given\nalignment or not.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "fwk/macros: Add a check alignment macro",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-30T13:37:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e6c11448c1660137d2f36a77af71bf865f387f4",
          "body": "Adding a macro to determine if a value is a power of two number or not.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "fwk/macros: Add a power of two check macro",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-30T13:37:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5c8d0249bcb9be4d93ecd0b584dd87256c546ad",
          "body": "In the `.board-test-run` template, the stage is incorrectly defined,\nthis has to be specified in the job. This patch also adds a retries\nvalue to prevent failure when resources are exhausted and the\njob times out.\n\nSigned-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: I6e667260358d9e7b6587ded15fb70919453d2b97",
          "is_bot": false,
          "headline": "ci/platform-test: fix stage definition in template and add retries value",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-07-30T10:20:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18338b6c872cb4e367c7c4e21047ad2b0f0326f9",
          "body": "Add a CI job in templates to build OPTEE with SCP. The job is scheduled\nto run in the daily and deployment pipeline.\n\nSigned-off-by: Wen Ping Teh <wenping.teh@arm.com>",
          "is_bot": false,
          "headline": "ci/build: Build OPTEE with SCP",
          "author_name": "Wen Ping Teh",
          "author_login": "wenping-arm",
          "committed_at": "2024-07-29T11:21:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05af272f9b717c2d11bec7a12a72ad155da169c0",
          "body": "Fixes a redundant check in mod_juno_reset_domain.c which causes cppcheck to\nfail when building for juno with the SCP_ENABLE_SCMI_RESET build flag enabled\n\nSigned-off-by: Haaris Farooq <haaris.farooq@arm.com>",
          "is_bot": false,
          "headline": "juno: Fix redundant check in mod_juno_reset_domain",
          "author_name": "Haaris Farooq",
          "author_login": null,
          "committed_at": "2024-07-26T15:48:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91ffcb6e57c4faa33676d26b2b46c19144dc7c30",
          "body": "Integrate FVP boot test coverage into the deployment pipeline report.\n\nSigned-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: Ic128d1974d5a480a5f44b37fc08d23d5f010b91c",
          "is_bot": false,
          "headline": "ci/deployment-pipeline: add FVP boot coverage data to report",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-07-23T15:01:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5e71df0fe3270514246e4f75ba4f71a35385010",
          "body": "This patch adds `fvp-boot-test` job output coverage to be merged\ninto the coverage report on the daily pipeline.\n\nSigned-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: If874aa7cebb2999c3c75386f267fb6365acd529c",
          "is_bot": false,
          "headline": "ci/daily-pipeline: add `fvp-boot-test` to coverage report",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-07-22T18:09:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "29004d91a9a6940a73fdb8bf740f8f08c0bdb2ec",
          "body": "`fvp-boot-test` now manages its artifacts by saving the correspoding\nones into `artifacts` directory.\n\nSigned-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: I4383394845ab2bf022fd0ccbdd60682da86a0e63",
          "is_bot": false,
          "headline": "ci/platform-test: Update artifact path location for `fvp-boot-test`",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-07-22T18:09:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7fc8f0ab8ab308594675dbce43bf8898d04397b",
          "body": "Merge unit test coverage report in daily and deployment pipeline using\nthe merge-report template. The job in deployment pipeline will also\nenables code coverage visualization.\n\nThe unit-test template will copy the coverage report to a folder to be\nmerge later in the merge-ut-coverage job.\n\nSigned-off-by: Wen Ping Teh <wenping.teh@arm.com>",
          "is_bot": false,
          "headline": "ci/ut: Merge UT coverage report",
          "author_name": "Wen Ping Teh",
          "author_login": "wenping-arm",
          "committed_at": "2024-07-22T14:51:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5d1709cf15c3e316493b766c08919e6bf30fafb",
          "body": "Add a job to merge all coverage reports at the end of daily and\ndevelopment pipeline. The 'coverage' keyword is added to display\ncode coverage result.\n\nSigned-off-by: Wen Ping Teh <wenping.teh@arm.com>",
          "is_bot": false,
          "headline": "ci/coverage: Merge all coverage report",
          "author_name": "Wen Ping Teh",
          "author_login": "wenping-arm",
          "committed_at": "2024-07-22T14:51:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c103c67a581000ff56bc1f7bfc2c9b84c7736a49",
          "body": "This patch introduces a job template to merge all coverage reports\nthat is in artifacts/coverage_reports/ directory using qa-tools\nlibrary. The template also generate html or xml output by using\ngenhtml and lcov-cobertura respectively.\n\nSigned-off-by: Wen Ping Teh <wenping.teh@arm.com>",
          "is_bot": false,
          "headline": "ci/coverage: Add template to merge coverage report",
          "author_name": "Wen Ping Teh",
          "author_login": "wenping-arm",
          "committed_at": "2024-07-22T14:51:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bcebd429a4cf737b1dc8ab5cde74fd392231557d",
          "body": "The scmi-tester code coverage flag is enabled. The coverage report is\nfilter to remove CMSIS reference and copy into a common folder to be\nmerge with other reports.\n\nSigned-off-by: Wen Ping Teh <wenping.teh@arm.com>",
          "is_bot": false,
          "headline": "ci/scmi: Enable scmi-tester code coverage",
          "author_name": "Wen Ping Teh",
          "author_login": "wenping-arm",
          "committed_at": "2024-07-22T14:51:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7cd4e06077972fb9923080f0530ee50ada2b4a7",
          "body": "Modify filter_coverage_report.py to filter out cmock and cmsis from\ncoverage report. A report can have their own filter by appending\nthe 'regex_list'. This is done by using get() method which will return\nthe default regex if filename is not found.\n\nUpdate a few variables naming to PEP8 style guide.\n\nSigned-off-by: Wen Ping Teh <wenping.teh@arm.com>",
          "is_bot": false,
          "headline": "ci/filter: Filter cmock and cmsis from coverage report",
          "author_name": "Wen Ping Teh",
          "author_login": "wenping-arm",
          "committed_at": "2024-07-22T14:50:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85d9db73507ffa1667a3ff97db1bb8f133eb9114",
          "body": "Add lcov-cobertura library for coverage report generation of xml file.\n\nSigned-off-by: Wen Ping Teh <wenping.teh@arm.com>",
          "is_bot": false,
          "headline": "requirements.txt: Add lcov-cobertura library",
          "author_name": "Wen Ping Teh",
          "author_login": "wenping-arm",
          "committed_at": "2024-07-18T11:42:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b20b44fbdbe1f0371091bad71f041a40331a9cf4",
          "body": "The artifacts within the setup-workspace test were missing\nan expire_in value. This has been introduced and set to 2\ndays to be inline with the other tests.\n\nSigned-off-by: Katherine Vincent <katherine.vincent@arm.com>\nChange-Id: I2af2f7818006048ed0285b6e937bcb6bc53afa0e",
          "is_bot": false,
          "headline": "ci/setup-workspace: Add an expire_in value",
          "author_name": "Katherine Vincent",
          "author_login": "katvin01",
          "committed_at": "2024-07-16T16:22:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07af990302563f13d0b524c208b675dd1f2b7fe8",
          "body": "Fixing the initialize_module_domains inner loop control variable.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer/test: fix loop ctrl variable in UT initialization",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-12T16:29:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0a77d7904b0c82fd890d398b21385ef7ad57cea",
          "body": "This patch adds a scope section to the document and clarifies\nthe trusted boundary in the diagram.\n\nSigned-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>",
          "is_bot": false,
          "headline": "threat model: Add scope section and update the trusted boundary",
          "author_name": "Tarek El-Sherbiny",
          "author_login": "tarek-arm",
          "committed_at": "2024-07-09T13:14:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "032aed5a4a8f74765ae40017c7f51dc4bf484225",
          "body": "This patch removes all remaining deprecated files from tc0 and\ntc1 that were reintroduced by mistake because of a rebase.\n\nSigned-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: I1692364f48a50b1aa6843dc585335cc4a208aec7",
          "is_bot": false,
          "headline": "totalcompute: Remove deprecated files from tc0 and tc1",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-07-08T10:29:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1dd151e731f0946b159d332740c0fa754546096",
          "body": "In this patch set_limit and controller_update apis are implemented.\nIt also includes unit tests for the added features and the\nframework related functions.\n\nSigned-off-by: Ahmed Gadallah <ahmed.gadallah@arm.com>",
          "is_bot": false,
          "headline": "mod/perf_controller: add set_limit and controller_update apis",
          "author_name": "Ahmed Gadallah",
          "author_login": "AhmedImbabyGadallah",
          "committed_at": "2024-07-05T18:11:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "854b9b576caf2527a341cfafb3c48ec6be64fd52",
          "body": "As the perf_controller breaks the tight coupling between the SCMI_perf\nand DVFS, the DVFS will have some changes accordingly.\n\nThe DVFS will need to implement the driver interface for the\nperformance controller which for now will support the set_performance_level\nrequest while still supporting the rest of the APIs required by the SCMI_perf.\n\nThis changes are implemented in this patch.\n\nSigned-off-by: Ahmed Gadallah <ahmed.gadallah@arm.com>",
          "is_bot": false,
          "headline": "mod/dvfs: integrate with perf_controller",
          "author_name": "Ahmed Gadallah",
          "author_login": "AhmedImbabyGadallah",
          "committed_at": "2024-07-05T18:11:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "638a7137061a5786fb92a931211507334039f393",
          "body": "The SCMI_perf module doesn't follow the same layered architecture as\nthe other protocols which use a HAL to communicate with different drivers.\nInstead it is tightly couple to one driver which is the DVFS module.\n\nWith the introduction of the perf_controller module, it will act as the\nHAL for the SC\n[…]\nrf.\n\nIn this patch only the changes to the SCMI_perf are added for simplicity.\nthe changes to the DVFS module will be added in the next commits.\n\nSigned-off-by: Ahmed Gadallah <ahmed.gadallah@arm.com>",
          "is_bot": false,
          "headline": "mod/scmi_perf: integrate SCMI perf with perf_controller",
          "author_name": "Ahmed Gadallah",
          "author_login": "AhmedImbabyGadallah",
          "committed_at": "2024-07-05T18:11:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "787d5b17f93d05ce1d35f0f781543ed949565bc9",
          "body": "This commit adds the skeleton of the  performance controller module.\nIt will replace the DVFS module in receiveing the performance set\nrequests from the SCMI perf.\n\nThe performance controller receives the power limit request by\nimplementing the generic set_limit interface. The power limit request co\n[…]\nducing this module would be explained in the subsequent commits\nthat include the integration with SCMI perf, DVFS module and SCMI power capping.\n\nSigned-off-by: Ahmed Gadallah <ahmed.gadallah@arm.com>",
          "is_bot": false,
          "headline": "Add perf_controller module",
          "author_name": "Ahmed Gadallah",
          "author_login": "AhmedImbabyGadallah",
          "committed_at": "2024-07-05T18:11:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6c0582260707be85cbeb2e29f98a15ffcd06a597",
          "body": "Fix the include cmsis directory comment in CMakeLists.txt for all\nproducts.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "prod/cmake: fix a comment for all products",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-05T15:35:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ef1a8afb7f2c389d744003c486277dff8efd76c",
          "body": "- Make necessary changes to add cortex-M85 support.\n\n- The CMSIS definitions for System control Register not in SCB (SCnSCB)\n  are deprecated on M85 header. Armv8m based cores define a separate\n  Implementation Control Registers instead. Hence change the arch/nvic\n  reference accordingly.\n\nSigned-off-by: Tintu Thomas <tintu.thomas@arm.com>",
          "is_bot": false,
          "headline": "toolchain: Add cortex-M85 support",
          "author_name": "Tintu Thomas",
          "author_login": "tintuthomas-arm",
          "committed_at": "2024-07-05T14:08:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d784dbb4c98f4aee750b07cc2dd5e087970b309b",
          "body": "Add custom banner for LCP RAM firmware in fmw_log.h file.\n\nSigned-off-by: Shriram K <shriram.k@arm.com>\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: I35ef9430570c8b302eb554ce7af3edb96bc260ad",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: add custom banner for lcpfw",
          "author_name": "Shriram K",
          "author_login": "shriram-k-arm",
          "committed_at": "2024-07-04T12:48:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "449fb0ac6a77f876df457884281dc036c12f556b",
          "body": "As the support for other compute blocks of the platform is now\navailable, remove the use of FMW_DISABLE_ARCH_SUSPEND from LCP\nfirmware.\n\nSigned-off-by: Shriram K <shriram.k@arm.com>\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: I17843d1bd3f2c871087356b508811d61e6100a70",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: remove use of FMW_DISABLE_ARCH_SUSPEND for lcpfw",
          "author_name": "Shriram K",
          "author_login": "shriram-k-arm",
          "committed_at": "2024-07-04T12:48:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb764eed756f4fc3643a6fc8c014cd9c4dd5ed3a",
          "body": "The dvfs-handler controller enables support for DVFS on the platform. AP\nrequests for setting of supported performance levels using the MHU3\nfastchannel interface. So include the dvfs-handler module and its\nassociated configuration data in the lcp firmware build.\n\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: Iaf8b61c1c16da3dffae104b21cd35951c4fc6fce",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: enable support for dvfs-handler in lcpfw",
          "author_name": "Pranav Madhu",
          "author_login": "Pranav-Madhu",
          "committed_at": "2024-07-04T12:48:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "370e4e42ebed824d88ffacebc74e1e3279510f5b",
          "body": "Update transport module config data for LCP with AP-LCP fastchannel for\nDVFS and remove the SCP-LCP transport channel as it is not used at this\nstage. Also, set the CMake flag\nSCP_TARGET_EXCLUDE_SCMI_PERF_PROTOCOL_OPS to enable fast channel\nsupport.\n\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: If0825f6a1083ac5d9ac782a010262c39c5598722",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: update transport module config data in lcpfw",
          "author_name": "Pranav Madhu",
          "author_login": "Pranav-Madhu",
          "committed_at": "2024-07-04T12:48:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e50a229d54624b251dbf639aec70535c09e874f2",
          "body": "Remove SCP-LCP doorbell channel and add fastchannel between LCP and AP\nfor the DVFS module. Also, update the driver ID in the transport config\ndata to use the LCP-AP fastchannel in the MHU driver.\n\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: Iec000f267467ed702986c7f5c83dc7401acc05d4",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: update mhu3 module config data in lcpfw",
          "author_name": "Pranav Madhu",
          "author_login": "Pranav-Madhu",
          "committed_at": "2024-07-04T12:48:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f0dc9f1bc0de8fb58ac5cee0f9ebb0a832ed5a6",
          "body": "Fix the incorrect AP-LCP MHU instance base address.\n\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: Ic2cdf60bb8d1166e4e66b1277ee4c5d42c7b5ce4",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: fix AP-LCP MHU instance base address",
          "author_name": "Pranav Madhu",
          "author_login": "Pranav-Madhu",
          "committed_at": "2024-07-04T12:48:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25f2fc4eda91595244d242f1b270e5225ba1053a",
          "body": "…emory regions\n\nLCP does not have a non-secure ITCM and DTCM memory regions. So remove\nthe definitions of these memory regions and use the secure ITCM and DTCM\nmemory regions instead.\n\nSigned-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: Ifb4a28307b2ab2f47e48fb09d4471efbb5ab209f",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: remove use of non-secure LCP's ITCM and DTCM m…",
          "author_name": "Vijayenthiran Subramaniam",
          "author_login": "vijayenthiran-arm",
          "committed_at": "2024-07-04T12:48:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c0534b090cdcabc4a0c58624b2d4c64f43670fb",
          "body": "Reduce the LCP's DTCM size to 32KB to align FVP platform implementation\nwhich has 32KB DTCM and 64KB ITCM.\n\nSigned-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: I040991960b3a3ec22b73367bb5f7748a3c93e1a9",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: reduce LCP's DTCM size to 32KB",
          "author_name": "Vijayenthiran Subramaniam",
          "author_login": "vijayenthiran-arm",
          "committed_at": "2024-07-04T12:48:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b45e0f5dd819ea34d2005db1e82190da95892d1",
          "body": "The SCP and MCP firmware include files have been moved under their\nrespective firmware directories. Correspondingly, move the LCP firmware\nheader files under LCP firmware directory and add fmw_io.h to configure\niostream for LCP firmware.\n\nSigned-off-by: Shriram K <shriram.k@arm.com>\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: I7fd6a2688a10dca6f2be4c4751d640c85d2a1401",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: reorganize lcp include files",
          "author_name": "Shriram K",
          "author_login": "shriram-k-arm",
          "committed_at": "2024-07-04T12:48:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce432984a9e2f3d2426974b63564192adcdda616",
          "body": "DVFS hardware is a hardware level abstraction to achieve frequency and\nvoltage scaling. DVFS hardware reduces the complexity in software to\nachieve frequency and voltage scaling, by writing directly to the DVFS\nhardware register and not to worry about the complex hardware logic\nbeneath the DVFS hard\n[…]\ne RD-Fremont\nplatform, as it enables dynamic voltage and frequency scaling for\nindividual CPUs.\n\nSigned-off-by: Pranav Madhu <pranav.madhu@arm.com>\nChange-Id: Ie9c49297b7e16d1be53b5d92e450250425b52ba4",
          "is_bot": false,
          "headline": "neoverse-rd/rdfremont: Add dvfs_handler driver",
          "author_name": "Pranav Madhu",
          "author_login": "Pranav-Madhu",
          "committed_at": "2024-07-04T12:47:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ca081df6678e648594ab54b1c3c5a23a1917edeb",
          "body": "Checking the subelement count in metrics_analyzer_element_init\ncovered by UT.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer: Add boundry check for subelement count",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9a2dddbe256e15b59eae6e5cbb54f781e7adf86",
          "body": "Add a unit test such that a provider return no power limit\nusing the Macro defined in interface power management.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer: Add No power limit test case",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a30f90fb841e9dd02f28323ee1d6ed59700ee8a",
          "body": "Combine collecting powerlimits and evaluating the aggregate limit\non the fly.\n\naggregate_limit has to be set to the maximum value (invalidated) for\na correct evaluation.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer: Combine collection and evaluation",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af462ad4968223d1de7524823ddbb8204aa62b97",
          "body": "Adding the analysis process, which consists of:\n- Collecting all associated limits for all domains from the providers.\n- Evaluate the aggregate limit for each domain.\n- Report the aggregate limit to consumers of each domain.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer: Implement analysis logic",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a679ac977c939df94507dc9418f7e978fdd3a0f4",
          "body": "Add implementation of framework handlers (covered with UT)\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer: Implement framework handlers",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5addcc193aec9f913cd494f6a93c298adcdf5b0a",
          "body": "A typical test configuration\nthat involves different metrics for different domains.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer/test: Add a test configuration",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "056601c8f2ee9ae0b90169d52554105ac6676016",
          "body": "Add to the unit test the mocks for\n- limit providers API `get_limit`\n- limit consumers API `set_limit`\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer/test: Add power mgmt APIs mocks",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e47d0a2d4d6402b4b4b149e843ff7428e2303b09",
          "body": "module context:\n- List of domains (should be allocated in initialization)\n- Module configurations\n\ndomain:\n- List of metrics_ctx  associated with the domain\n  (should be allocated during element initialization)\n- The aggregate limit which should be consumed.\n- Domain configurations\n\nmetrics:\n- Power limit for this metric\n- Limit provider configs\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer: Add module/domain ctx definitions",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d25a542dbe817e246c95394b77da2e6683141ba",
          "body": "Add element configuration definitions.\n\nmetrics analyzer domain configs:\n- List of metrics power limit providers information (for collecting metrics limits).\n- Providers count\n- Metrics power limit consumer information\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer: Add element configuration",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5dfa8093df6c4807e6e010f0d186f829eb6a6e85",
          "body": "Add useful power related macro definitions to be used across users of\npower_management interface.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "interface/power_management: Add power related Macros",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b022b5beb3e6c73c1c091271a8813e7c21640b86",
          "body": "Add the definition of the get limit interface.\nInterface implemented by modules considered as metrics for\nsystem domains. these modules provide power limits through this\ninterface.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "interface/power_management: Add get limit API",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d36f83eeb36326041ba4e8054f6ccae6424be7f6",
          "body": "Add the skeleton of the module:\n- src and header files\n- unittest files\n- CMake files\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer: Add initial module files",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9731d613c6cacb5aa21cf759f3766cbbffb18efa",
          "body": "Adding metrics analyzer documentation which explains the module\npurpose and operation.\n\nThe document is in markdown format and for the best viewing experience\nit should be used on viewers that provide `mermaid` rendering.\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "mod/metrics_analyzer/doc: Add metrics analyzer doc",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-07-03T12:11:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17da2bca9f9fb3c0797321f45ddb736cc0766c62",
          "body": "This patch adds the initial set-up for unit tests for this module\nand includes two brief tests to cover the addition to the gtimer\nget timestamp function.\n\nSigned-off-by: Katherine Vincent <katherine.vincent@arm.com>\nChange-Id: I4ab3da912e3c7fca67e20fe13da2e3654ac8a25d",
          "is_bot": false,
          "headline": "mod/gtimer: add unit tests for the change to timestamps",
          "author_name": "Katherine Vincent",
          "author_login": "katvin01",
          "committed_at": "2024-07-01T16:05:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50d31535e250eeee97677d4fa3e333ab358be78f",
          "body": "If a call is made to request a timestamp, which uses the element\nconfiguration to read the corresponding registers, then it will\nnow return 0 if the module has yet to be initialised. This prevents\nerroneously reading a memory location prior to it being set up\nensuring it fails in a way that does not crash the system.\n\nSigned-off-by: Katherine Vincent <katherine.vincent@arm.com>\nChange-Id: I3c896823041eef71221c0a39da2e9dd62ea95617",
          "is_bot": false,
          "headline": "mod/gtimer: return 0 if timestamp registers uninitalised",
          "author_name": "Katherine Vincent",
          "author_login": "katvin01",
          "committed_at": "2024-07-01T16:05:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7080140310f0d961ef1d39c1fa8da44cbaf4d264",
          "body": "… to printing\n\nThe purpose of this change is to ensure that the PL011 module will not start\nprinting UART until the module has been initalised.\n\nIt also includes corresponding unit tests.\n\nSigned-off-by: Katherine Vincent <katherine.vincent@arm.com>\nChange-Id: I0d22ffbe6e4aaa7ad3b229848705e8ca77e7d475",
          "is_bot": false,
          "headline": "mod/pl011: Introduce a check to ensure the module is initalised prior…",
          "author_name": "Katherine Vincent",
          "author_login": "katvin01",
          "committed_at": "2024-07-01T15:31:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5f955445f4fe84811bdd3765d5893dbb86d574e",
          "body": "This change defines the per agent mapping config for OSPM\nand PSCI in SCMI Power protocol. It only introduces the mapping\nfor JUNO and not change the behaviour as all ten power domains\nare still exposed to both the agents.\n\nSigned-off-by: Abhishek Rawat <abhishek.rawat@arm.com>\nChange-Id: I2469b7da83742b2c4e5c41da7654a4836bc790d2",
          "is_bot": false,
          "headline": "juno: Add per agent mapping in SCMI Power protocol",
          "author_name": "Abhishek Rawat",
          "author_login": "abhishek-arm",
          "committed_at": "2024-06-28T15:39:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1e5d1255abde33401f8eff72d97100bb25db689",
          "body": "This change adds unit tests for new per agent mapping feature.\n\nSigned-off-by: Abhishek Rawat <abhishek.rawat@arm.com\nChange-Id: I7ea1c4ce97322ef96ddb04d584e78611d83d5265",
          "is_bot": false,
          "headline": "scmi_power_domain: Add unit tests for per agent mapping",
          "author_name": "Abhishek Rawat",
          "author_login": "abhishek-arm",
          "committed_at": "2024-06-28T15:39:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6efe7bfc51a68c94f778c4a0fd4a30fa63833d60",
          "body": "This change adds per agent view for SCMI Power protocol.\nIt allows platforms to define agent's relative mapping of power\ndomains and consequently limits their visibility of domains\nas per their scope of operability. SCMI power_domain handles\nan additional layer of translation (agent_pd_index --> power_hal_domain_index).\n\nSigned-off-by: Abhishek Rawat <abhishek.rawat@arm.com>\nChange-Id: Idc9d60de49a4f5289f472c8334feb9d39c6f634c",
          "is_bot": false,
          "headline": "scmi_power_domain: Add agent context handling in scmi_power_domain",
          "author_name": "Abhishek Rawat",
          "author_login": "abhishek-arm",
          "committed_at": "2024-06-28T15:39:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6981bbe59829515d67f9b63b0958f7ec53d2e502",
          "body": "This patch updates the cppcheck suppression list to include\nelements missing from the update from version V2.8 to V1.90.\n\nSigned-off-by: Leandro Belli <leandro.belli@arm.com>\nChange-Id: I4d6857f5c3cd53d1c2cf2c8ab52fcfb913ffe61f",
          "is_bot": false,
          "headline": "cppcheck: Update suppression list for version change",
          "author_name": "Leandro Belli",
          "author_login": "leandro-arm",
          "committed_at": "2024-06-25T13:27:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a04a919b079ca4b0101b3bc0f285578a59e843ed",
          "body": "This patch removes all the remaining false positve case in 1.90.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "cppcheck: Modify suppression list for cppcheck 2.8 landing",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T17:20:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b1147392e43aef249db56d93e1007721e382dc2",
          "body": "Adding a default tag for the untagged jobs to run on arm64 runners\n\nSigned-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>",
          "is_bot": false,
          "headline": "ci: Add default for untagged jobs",
          "author_name": "Mohamed Omar Asaker",
          "author_login": "mohamedasaker-arm",
          "committed_at": "2024-06-24T14:30:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd5ef3fc2732ea1a452c93f86b5aff6e68368770",
          "body": "This patch updates document/script to cppcheck V2.8 and bypass error ids with\nunknown macro before switching to V2.8 which is also compatible with V1.90.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "cppcheck: Update guide, wrapper and suppression list",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T13:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c09e6513c90e3dd72a1213a34c3dd910b613f918",
          "body": "Fixes the error with id:\n- arrayIndexOutOfBoundsCond\n- constStatement\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "product/synquacer: Resolve defect with cppcheck V2.8",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T13:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8fcf2d53d28d77ceb7ab255d08ff5accba845521",
          "body": "Fixes the error with id:\n- constVariable\n- constParameter\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "product/rcar: Resolve defect with cppcheck V2.8",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T13:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "390e32b7a87ff3ed2443f87728aedad1c30bcc4a",
          "body": "Fixes the error with id:\n- constParameter\n- unassignedVariable\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "product/n1sdp: Resolve defect with cppcheck V2.8",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T13:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0485def8e0ede6e8ba6e5cd0f25dbe8f3c420aba",
          "body": "Fixes the error with id:\n- constParameter\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "product/morello: Resolve defect with cppcheck V2.8",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T13:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b6d8c2fac043c37958fa1381e31551ab2af99e7",
          "body": "Fixes the error with id:\n- constParameter\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "product/juno: Resolve defect with cppcheck V2.8",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T13:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7caaa95153d04d116b6c4925efd76125ff2f3e3",
          "body": "Fixes the cppcheck V2.8 warning with id knownConditionTrueFalse. There is no\nneed to check the condition within the inner if-else statement since condition\n'hnf_node_pos.port_num<=region_hnf_pos_end.port_num' is alongside with boundary\ncheck and is always true.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "cmn700: Refines conditional check flow in `is_hnf_inside_rect()`",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T13:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "caf8c71eaa73d7807000c4f8df2c67e37071b5b8",
          "body": "For sensor_enable/disable, this patch removes duplicate statement to get\nsensor_dev_ctx by element index. In additions, this patch applies 'const' to\nfunction parameter in preparation for switching to cppcheck V2.8.\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "mod_sensor: Refine sensor_enable/disable and fix potential defects.",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T13:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "968ce826c4352571a5dc8c1577c6741f88525ba8",
          "body": "Fixes the error with id:\n- arrayIndexOutOfBoundsCond\n- constParameter\n- constStatement\n- constVariable\n- knownConditionTrueFalse\n- missingReturn\n- nullPointer\n- unreadVariable\n\nSigned-off-by: Wei-Chia Su <Wei-Chia.Su@arm.com>",
          "is_bot": false,
          "headline": "module: Resolve defect with cppcheck V2.8",
          "author_name": "Wei-Chia Su",
          "author_login": null,
          "committed_at": "2024-06-24T13:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 26,
      "commits_last_year": 0,
      "latest_release_at": "2024-03-08T16:00:01Z",
      "latest_release_tag": "v2.14.0",
      "releases_from_tags": true,
      "days_since_last_push": 701,
      "active_weeks_last_year": 0,
      "days_since_latest_release": 866,
      "mean_days_between_releases": 78.7
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 196,
      "stars": 265,
      "watchers": 2,
      "fork_history": {
        "days": [
          {
            "date": "2018-07-25",
            "count": 3
          },
          {
            "date": "2018-08-14",
            "count": 1
          },
          {
            "date": "2018-08-30",
            "count": 1
          },
          {
            "date": "2018-09-03",
            "count": 1
          },
          {
            "date": "2018-09-06",
            "count": 1
          },
          {
            "date": "2018-09-19",
            "count": 1
          },
          {
            "date": "2018-10-19",
            "count": 1
          },
          {
            "date": "2018-10-26",
            "count": 1
          },
          {
            "date": "2018-11-16",
            "count": 1
          },
          {
            "date": "2018-12-14",
            "count": 1
          },
          {
            "date": "2019-01-08",
            "count": 1
          },
          {
            "date": "2019-02-22",
            "count": 1
          },
          {
            "date": "2019-02-28",
            "count": 1
          },
          {
            "date": "2019-03-02",
            "count": 1
          },
          {
            "date": "2019-03-07",
            "count": 1
          },
          {
            "date": "2019-03-22",
            "count": 1
          },
          {
            "date": "2019-05-03",
            "count": 1
          },
          {
            "date": "2019-05-12",
            "count": 1
          },
          {
            "date": "2019-05-22",
            "count": 1
          },
          {
            "date": "2019-06-18",
            "count": 2
          },
          {
            "date": "2019-07-05",
            "count": 1
          },
          {
            "date": "2019-07-26",
            "count": 1
          },
          {
            "date": "2019-08-20",
            "count": 1
          },
          {
            "date": "2019-08-23",
            "count": 2
          },
          {
            "date": "2019-08-26",
            "count": 1
          },
          {
            "date": "2019-08-28",
            "count": 1
          },
          {
            "date": "2019-09-25",
            "count": 1
          },
          {
            "date": "2019-10-16",
            "count": 1
          },
          {
            "date": "2019-10-18",
            "count": 2
          },
          {
            "date": "2019-11-13",
            "count": 1
          },
          {
            "date": "2020-01-13",
            "count": 1
          },
          {
            "date": "2020-01-15",
            "count": 1
          },
          {
            "date": "2020-01-31",
            "count": 1
          },
          {
            "date": "2020-02-05",
            "count": 1
          },
          {
            "date": "2020-02-10",
            "count": 1
          },
          {
            "date": "2020-02-25",
            "count": 1
          },
          {
            "date": "2020-02-27",
            "count": 1
          },
          {
            "date": "2020-03-03",
            "count": 1
          },
          {
            "date": "2020-03-23",
            "count": 2
          },
          {
            "date": "2020-04-13",
            "count": 1
          },
          {
            "date": "2020-05-05",
            "count": 1
          },
          {
            "date": "2020-05-06",
            "count": 1
          },
          {
            "date": "2020-05-14",
            "count": 1
          },
          {
            "date": "2020-05-19",
            "count": 2
          },
          {
            "date": "2020-05-22",
            "count": 1
          },
          {
            "date": "2020-06-08",
            "count": 2
          },
          {
            "date": "2020-06-15",
            "count": 1
          },
          {
            "date": "2020-07-02",
            "count": 1
          },
          {
            "date": "2020-07-04",
            "count": 1
          },
          {
            "date": "2020-07-07",
            "count": 1
          },
          {
            "date": "2020-08-13",
            "count": 1
          },
          {
            "date": "2020-08-16",
            "count": 1
          },
          {
            "date": "2020-08-25",
            "count": 1
          },
          {
            "date": "2020-09-08",
            "count": 1
          },
          {
            "date": "2020-10-08",
            "count": 1
          },
          {
            "date": "2020-10-29",
            "count": 1
          },
          {
            "date": "2020-11-21",
            "count": 1
          },
          {
            "date": "2021-01-11",
            "count": 1
          },
          {
            "date": "2021-01-21",
            "count": 1
          },
          {
            "date": "2021-02-15",
            "count": 1
          },
          {
            "date": "2021-02-23",
            "count": 1
          },
          {
            "date": "2021-02-24",
            "count": 1
          },
          {
            "date": "2021-03-02",
            "count": 1
          },
          {
            "date": "2021-03-04",
            "count": 1
          },
          {
            "date": "2021-03-17",
            "count": 1
          },
          {
            "date": "2021-03-18",
            "count": 2
          },
          {
            "date": "2021-03-26",
            "count": 3
          },
          {
            "date": "2021-05-26",
            "count": 2
          },
          {
            "date": "2021-05-27",
            "count": 1
          },
          {
            "date": "2021-06-04",
            "count": 1
          },
          {
            "date": "2021-06-16",
            "count": 1
          },
          {
            "date": "2021-06-29",
            "count": 1
          },
          {
            "date": "2021-07-03",
            "count": 1
          },
          {
            "date": "2021-07-04",
            "count": 1
          },
          {
            "date": "2021-07-17",
            "count": 1
          },
          {
            "date": "2021-08-01",
            "count": 1
          },
          {
            "date": "2021-11-01",
            "count": 1
          },
          {
            "date": "2021-11-05",
            "count": 1
          },
          {
            "date": "2021-11-09",
            "count": 1
          },
          {
            "date": "2021-12-20",
            "count": 1
          },
          {
            "date": "2021-12-29",
            "count": 1
          },
          {
            "date": "2021-12-30",
            "count": 1
          },
          {
            "date": "2022-01-06",
            "count": 1
          },
          {
            "date": "2022-01-12",
            "count": 1
          },
          {
            "date": "2022-01-26",
            "count": 1
          },
          {
            "date": "2022-01-31",
            "count": 1
          },
          {
            "date": "2022-02-06",
            "count": 1
          },
          {
            "date": "2022-02-10",
            "count": 1
          },
          {
            "date": "2022-02-16",
            "count": 2
          },
          {
            "date": "2022-02-22",
            "count": 1
          },
          {
            "date": "2022-02-28",
            "count": 1
          },
          {
            "date": "2022-03-10",
            "count": 1
          },
          {
            "date": "2022-04-21",
            "count": 1
          },
          {
            "date": "2022-04-28",
            "count": 1
          },
          {
            "date": "2022-05-13",
            "count": 1
          },
          {
            "date": "2022-06-17",
            "count": 1
          },
          {
            "date": "2022-06-27",
            "count": 1
          },
          {
            "date": "2022-07-01",
            "count": 1
          },
          {
            "date": "2022-07-25",
            "count": 1
          },
          {
            "date": "2022-07-30",
            "count": 1
          },
          {
            "date": "2022-08-09",
            "count": 1
          },
          {
            "date": "2022-08-31",
            "count": 1
          },
          {
            "date": "2022-09-26",
            "count": 1
          },
          {
            "date": "2022-10-20",
            "count": 1
          },
          {
            "date": "2022-11-06",
            "count": 1
          },
          {
            "date": "2022-11-16",
            "count": 1
          },
          {
            "date": "2022-12-06",
            "count": 1
          },
          {
            "date": "2022-12-08",
            "count": 1
          },
          {
            "date": "2022-12-09",
            "count": 1
          },
          {
            "date": "2022-12-13",
            "count": 1
          },
          {
            "date": "2023-01-10",
            "count": 1
          },
          {
            "date": "2023-01-24",
            "count": 1
          },
          {
            "date": "2023-02-08",
            "count": 1
          },
          {
            "date": "2023-02-16",
            "count": 1
          },
          {
            "date": "2023-02-17",
            "count": 2
          },
          {
            "date": "2023-02-23",
            "count": 1
          },
          {
            "date": "2023-03-16",
            "count": 1
          },
          {
            "date": "2023-03-20",
            "count": 1
          },
          {
            "date": "2023-03-29",
            "count": 1
          },
          {
            "date": "2023-04-16",
            "count": 1
          },
          {
            "date": "2023-04-19",
            "count": 1
          },
          {
            "date": "2023-05-24",
            "count": 1
          },
          {
            "date": "2023-06-01",
            "count": 1
          },
          {
            "date": "2023-06-09",
            "count": 2
          },
          {
            "date": "2023-06-14",
            "count": 1
          },
          {
            "date": "2023-06-16",
            "count": 2
          },
          {
            "date": "2023-06-21",
            "count": 1
          },
          {
            "date": "2023-06-26",
            "count": 1
          },
          {
            "date": "2023-07-07",
            "count": 1
          },
          {
            "date": "2023-07-26",
            "count": 1
          },
          {
            "date": "2023-08-04",
            "count": 1
          },
          {
            "date": "2023-08-16",
            "count": 1
          },
          {
            "date": "2023-08-24",
            "count": 1
          },
          {
            "date": "2023-09-12",
            "count": 1
          },
          {
            "date": "2023-09-29",
            "count": 2
          },
          {
            "date": "2023-10-04",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 1
          },
          {
            "date": "2023-11-13",
            "count": 1
          },
          {
            "date": "2023-12-07",
            "count": 1
          },
          {
            "date": "2023-12-12",
            "count": 1
          },
          {
            "date": "2023-12-14",
            "count": 1
          },
          {
            "date": "2024-01-24",
            "count": 1
          },
          {
            "date": "2024-02-05",
            "count": 1
          },
          {
            "date": "2024-03-29",
            "count": 1
          },
          {
            "date": "2024-04-01",
            "count": 2
          },
          {
            "date": "2024-04-09",
            "count": 1
          },
          {
            "date": "2024-06-24",
            "count": 2
          },
          {
            "date": "2024-06-25",
            "count": 1
          },
          {
            "date": "2024-07-02",
            "count": 1
          },
          {
            "date": "2024-07-12",
            "count": 1
          },
          {
            "date": "2024-07-15",
            "count": 1
          },
          {
            "date": "2024-07-25",
            "count": 1
          },
          {
            "date": "2024-08-19",
            "count": 1
          },
          {
            "date": "2024-10-22",
            "count": 1
          },
          {
            "date": "2024-10-31",
            "count": 1
          },
          {
            "date": "2024-11-01",
            "count": 1
          },
          {
            "date": "2024-12-09",
            "count": 1
          },
          {
            "date": "2024-12-26",
            "count": 1
          },
          {
            "date": "2025-01-16",
            "count": 2
          },
          {
            "date": "2025-02-01",
            "count": 1
          },
          {
            "date": "2025-03-06",
            "count": 1
          },
          {
            "date": "2025-04-02",
            "count": 1
          },
          {
            "date": "2025-07-19",
            "count": 1
          },
          {
            "date": "2025-10-15",
            "count": 2
          },
          {
            "date": "2025-11-15",
            "count": 1
          },
          {
            "date": "2025-12-22",
            "count": 1
          },
          {
            "date": "2026-01-15",
            "count": 1
          },
          {
            "date": "2026-01-29",
            "count": 2
          },
          {
            "date": "2026-02-26",
            "count": 1
          },
          {
            "date": "2026-04-09",
            "count": 1
          },
          {
            "date": "2026-05-14",
            "count": 1
          },
          {
            "date": "2026-05-15",
            "count": 1
          },
          {
            "date": "2026-05-30",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 195,
        "total_forks": 196
      },
      "star_history": null,
      "open_issues_and_prs": 3
    },
    "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": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 409650,
      "source_files_sampled": 2197,
      "oversized_source_files": 39,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "requirements.txt"
      ],
      "advisories": {
        "error": "No resolved dependencies to assess",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [],
        "collected": true,
        "truncated": false,
        "total_count": 0,
        "direct_count": 0,
        "indirect_count": 0
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 774,
        "open_issues": 3,
        "closed_ratio": 0.885,
        "closed_issues": 23,
        "closed_unmerged_prs": 96
      },
      "bus_factor": 8,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "nicola-mazzucato-arm",
          "commits": 375,
          "avatar_url": "https://avatars.githubusercontent.com/u/42373140?v=4"
        },
        {
          "type": "User",
          "login": "CJKay",
          "commits": 224,
          "avatar_url": "https://avatars.githubusercontent.com/u/1470499?v=4"
        },
        {
          "type": "User",
          "login": "leandro-arm",
          "commits": 186,
          "avatar_url": "https://avatars.githubusercontent.com/u/66436985?v=4"
        },
        {
          "type": "User",
          "login": "manojkumar-arm",
          "commits": 172,
          "avatar_url": "https://avatars.githubusercontent.com/u/35599589?v=4"
        },
        {
          "type": "User",
          "login": "shriram-k-arm",
          "commits": 156,
          "avatar_url": "https://avatars.githubusercontent.com/u/84845124?v=4"
        },
        {
          "type": "User",
          "login": "vijayenthiran-arm",
          "commits": 147,
          "avatar_url": "https://avatars.githubusercontent.com/u/45235138?v=4"
        },
        {
          "type": "User",
          "login": "girishpathak",
          "commits": 125,
          "avatar_url": "https://avatars.githubusercontent.com/u/11646433?v=4"
        },
        {
          "type": "User",
          "login": "jimqui01",
          "commits": 109,
          "avatar_url": "https://avatars.githubusercontent.com/u/54316584?v=4"
        },
        {
          "type": "User",
          "login": "adiang01",
          "commits": 108,
          "avatar_url": "https://avatars.githubusercontent.com/u/49706881?v=4"
        },
        {
          "type": "User",
          "login": "tarek-arm",
          "commits": 92,
          "avatar_url": "https://avatars.githubusercontent.com/u/56722698?v=4"
        }
      ],
      "contributors_sampled": 86,
      "top_contributor_share": 0.133
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "scp_gitlab_mirroring.yml",
        "scp_pr_auto_message.yml"
      ],
      "has_docs_dir": true,
      "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": 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": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 12 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": 9,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "project is archived",
            "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": 7,
            "reason": "dependency not pinned by hash detected -- score normalized to 7",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "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": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "b34e5ceb5bab4bb351e0ba4b86c2f8a539cdbbb4",
        "ran_at": "2026-07-22T18:10:44Z",
        "aggregate_score": 4.6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": null,
      "oldest_open_prs": [],
      "last_merged_pr_at": "2023-12-13T09:26:41Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 560,
          "created_at": "2021-11-25T17:09:33Z",
          "last_comment_at": "2023-12-06T20:48:14Z",
          "last_comment_author": "nicola-mazzucato-arm"
        },
        {
          "number": 892,
          "created_at": "2024-02-27T02:59:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 893,
          "created_at": "2024-04-08T07:02:09Z",
          "last_comment_at": "2024-08-16T08:02:00Z",
          "last_comment_author": "tarek-arm"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/ARM-software/SCP-firmware",
    "host": "github.com",
    "name": "SCP-firmware",
    "owner": "ARM-software"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "critical",
      "name": "Overall health",
      "note": "Abandonment Policy applies a 40% multiplier to weighted overall health and gives it a ceiling of 29.",
      "notes": [
        {
          "code": "abandonment_overall_adjustment",
          "params": {
            "cap": 29,
            "pct": 40
          }
        }
      ],
      "value": 23,
      "inputs": {
        "security": 46,
        "vitality": 17,
        "community": 61,
        "governance": 85,
        "engineering": 72,
        "abandonment_cap": 29,
        "abandonment_state": "declared",
        "abandonment_multiplier": 40,
        "weighted_overall_before_abandonment": 57,
        "overall_after_abandonment_multiplier": 23
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "critical",
        "name": "Vitality",
        "value": 17,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "critical",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "commits_last_year": 0,
              "human_commit_share": 1,
              "days_since_last_push": 701,
              "active_weeks_last_year": 0
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 701 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 701
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "0/52 weeks with commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "0 commits in the last year",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project is archived",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "at_risk",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 40,
            "inputs": {
              "releases_count": 26,
              "latest_release_tag": "v2.14.0",
              "releases_from_tags": true,
              "days_since_latest_release": 866,
              "mean_days_between_releases": 78.7
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "26 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 26
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 866 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 866
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~78.7 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 78.7
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "at_risk",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "cap": 29,
              "state": "declared",
              "guards": [],
              "signals": [],
              "red_flag": true,
              "multiplier_pct": 40,
              "declared_reason": "archived",
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "the repository is archived on GitHub",
                "points": 40,
                "status": "partial",
                "details": [
                  {
                    "code": "abandonment_archived",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 61,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 58,
            "inputs": {
              "forks": 196,
              "stars": 265,
              "watchers": 2,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "265 stars",
                "points": 39.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 265
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "196 forks",
                "points": 19.1,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 196
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "2 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "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": "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": 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
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "excellent",
        "name": "Sustainability & Governance",
        "value": 85,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "excellent",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "bus_factor": 8,
              "contributors_sampled": 86,
              "top_contributor_share": 0.133
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "8 contributor(s) cover half of all commits",
                "points": 54,
                "status": "met",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 13% of commits",
                "points": 19.5,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 13
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "86 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 86
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 12 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "merged_prs": 774,
              "open_issues": 3,
              "closed_issues": 23,
              "issue_closed_ratio": 0.885,
              "closed_unmerged_prs": 96
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "88% of issues closed",
                "points": 41.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 88
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "774/870 decided PRs merged",
                "points": 34,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 774,
                      "decided": 870
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "followers": 2615,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "ARM-software",
              "public_repos": 195,
              "account_age_days": 4663
            },
            "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": "2,615 followers of ARM-software",
                "points": 24.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 2615,
                      "login": "ARM-software"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "195 public repos, account ~12 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 195
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 12
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 72,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "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": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": "https://gitlab.arm.com/firmware/SCP-firmware",
              "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://gitlab.arm.com/firmware/SCP-firmware",
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 46,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "ci_tests",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 46,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 14,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 4,
              "scorecard_aggregate": 4.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": "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": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 12 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.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project is archived",
                "points": 0,
                "status": "missed",
                "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 7",
                "points": 3.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "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": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "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": 8
            },
            "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": "moderate",
        "name": "AI Readiness",
        "value": 55,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "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": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 50,
            "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": [],
              "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": "C (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C"
                    }
                  }
                ],
                "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 7",
                "points": 7,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "C",
              "largest_source_bytes": 409650,
              "source_files_sampled": 2197,
              "oversized_source_files": 39
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "39/2197 source files over 60KB",
                "points": 54,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 2197,
                      "oversized": 39
                    }
                  }
                ],
                "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-22T18:11:02.567137Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/ARM-software/SCP-firmware.svg",
  "full_name": "ARM-software/SCP-firmware",
  "license_state": "custom",
  "license_spdx": null
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v1.13.0、模式 v0.26.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计.