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

microsoft / mu_basecore

Project Mu BaseCore

C · Python自定义许可证★ 286 星标⑂ 177 复刻始于 2018年9月在 GitHub 上查看 ↗

microsoft/mu_basecore 的健康指数为 100 分中的 84 分,处于「良好」区间。 其得分最高的类别是Vitality(95/100),最低的是AI Readiness(60/100)。 最近一次更新在今天。 近期的大部分工作由 13 位贡献者完成。

84
总分 / 100
良好

软件健康指数

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

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

评分画像

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

所有权

Microsoft组织
125,580 关注者8,215 个公开仓库始于 2013年12月

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

按类别列示的指标

活力

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

95优秀 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
35.3/36提交节奏 — 52 周中有 51 周有提交
18/18提交量 — 最近一年 730 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year730
human_commit_share0.88
days_since_last_push0
active_weeks_last_year51

发布纪律

90优秀
评分方式
27/27有发布版本 — 已发布 100 个发布版本
36/36发布时效 — 最近一次发布版本于 0 天前
27/27发布节奏 — 约每 3.6 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — Project has not signed or included provenance with any releases.
所用输入
releases_count100
latest_release_tagv2025110002.0.12
releases_from_tags
days_since_latest_release0
mean_days_between_releases3.6

社区与采用

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

75良好 · 占总体的 18%
评分方式
39.8/60星标 — 286 个星标
18.7/25复刻 — 177 个复刻
7/15关注者 — 19 位关注者
所用输入
forks177
stars286
watchers19
growth_stateorganic
growth_factor_pct100

社区健康

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

可持续性与治理

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

90优秀 · 占总体的 24%
评分方式
54/54巴士系数 — 13 位贡献者贡献了半数提交
21/22.5提交分布 — 头号贡献者编写了 7% 的提交
13.5/13.5贡献者广度 — 98 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 18 contributing companies or organizations
所用输入
bus_factor13
contributors_sampled98
top_contributor_share0.067
评分方式
41.8/46.8议题解决 — 89% 的议题已关闭
32.1/38.3PR 接受 — 已裁定的 PR 中 1,434/1,711 已合并
15/15OpenSSF Scorecard:Code-Review — all changesets reviewed
所用输入
merged_prs1,434
open_issues14
closed_issues118
issue_closed_ratio0.894
closed_unmerged_prs277
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
25/25所有者影响力 — microsoft 有 125,580 位关注者
25/25既往记录 — 8,215 个公开仓库,账户约 12 年
所用输入
followers125,580
owner_typeOrganization
is_verified
owner_loginmicrosoft
public_repos8,215
account_age_days4,606

工程质量

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

80良好 · 占总体的 20%

工程实践

74良好
评分方式
24/24CI 工作流 — 19 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
6.4/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 10 out of 10 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

90优秀
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — https://microsoft.github.io/mu/
10/10仓库描述
10/10主题标签 — 4 个主题标签
0/10Wiki
所用输入
topicsfirmware, uefi, projectmu, uefi-development
has_wiki
homepagehttps://microsoft.github.io/mu/
has_readme
has_docs_dir
has_description

安全

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

74良好 · 占总体的 16%

安全态势

68中等
评分方式
5.2/7.5Binary-Artifacts — binaries present in source code
6/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 10 out of 10 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 18 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — 无数据
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate6.8
已排除计分(无数据或不适用):packaging。 其余权重已重新归一化。
评分方式
35/35直接依赖不含已知公告 — 没有直接依赖携带已知公告
0/25间接依赖不含已知公告 — 在此范围内,传递依赖集合无法与开发和测试依赖区分
0/40没有长期未处理的公告 — 没有公告带有发布日期
所用输入
sourceosv
advisories0
affected_packages0
assessed_packages5
unassessed_packages4
affected_by_severitynone
direct_affected_packages0
已排除计分(无数据或不适用):间接依赖不含已知公告, 没有长期未处理的公告。 其余权重已重新归一化。 已将 5 个已解析依赖与 OSV 比对。 有 4 项无法评估——没有已解析的版本、生态系统不受支持,或超出所报告的软件包清单。 该仓库未发布任何索引可解析的软件包,因此改为评估仓库依赖图。该图将开发与测试版本固定同交付的依赖混在一起,因此仅对声明的运行时依赖计分;传递性发现仅作为背景信息列出,不计入评分。 未对可达性进行分析。

AI 就绪度

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

60中等 · 占总体的 0%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 88 次人类提交中有 84 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.955
agent_instruction_files
agent_instruction_max_bytes
评分方式
18/18一条命令的引导启动 — ArmPlatformPkg/Scripts/Makefile, BaseTools/GNUmakefile, BaseTools/Makefile, BaseTools/Source/C/BrotliCompress/GNUmakefile, BaseTools/Source/C/BrotliCompress/Makefile, BaseTools/Source/C/Common/GNUmakefile, BaseTools/Source/C/Common/Makefile, BaseTools/Source/C/DevicePath/GNUmakefile, BaseTools/Source/C/DevicePath/Makefile, BaseTools/Source/C/EfiRom/GNUmakefile, BaseTools/Source/C/EfiRom/Makefile, BaseTools/Source/C/GNUmakefile, BaseTools/Source/C/GenCrc32/GNUmakefile, BaseTools/Source/C/GenCrc32/Makefile, BaseTools/Source/C/GenFfs/GNUmakefile, BaseTools/Source/C/GenFfs/Makefile, BaseTools/Source/C/GenFv/GNUmakefile, BaseTools/Source/C/GenFv/Makefile, BaseTools/Source/C/GenFw/GNUmakefile, BaseTools/Source/C/GenFw/Makefile, BaseTools/Source/C/GenSec/GNUmakefile, BaseTools/Source/C/GenSec/Makefile, BaseTools/Source/C/GenStm/GNUmakefile, BaseTools/Source/C/GenStm/Makefile, BaseTools/Source/C/LzmaCompress/GNUmakefile, BaseTools/Source/C/LzmaCompress/Makefile, BaseTools/Source/C/Makefile, BaseTools/Source/C/PyEfiCompressor/Makefile, BaseTools/Source/C/TianoCompress/GNUmakefile, BaseTools/Source/C/TianoCompress/Makefile, BaseTools/Source/C/VfrCompile/GNUmakefile, BaseTools/Source/C/VfrCompile/Makefile, BaseTools/Source/C/VfrCompile/Pccts/Makefile, BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile, BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile, BaseTools/Source/C/VfrCompile/Pccts/support/genmk/makefile, BaseTools/Source/C/VfrCompile/Pccts/support/rexpr/makefile, BaseTools/Source/C/VolInfo/GNUmakefile, BaseTools/Source/C/VolInfo/Makefile, BaseTools/Source/Python/GNUmakefile, BaseTools/Source/Python/Makefile, BaseTools/Tests/GNUmakefile
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — C(静态类型)
10/10可复现环境 — devcontainer
0/10已体现的代理实践 — 最近 100 次提交中没有代理编写的提交
8/8自动化维护 — 最近 100 次提交中有 4 次为自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfiles
has_dockerfile
typed_language
bootstrap_filesArmPlatformPkg/Scripts/Makefile, BaseTools/GNUmakefile, BaseTools/Makefile, BaseTools/Source/C/BrotliCompress/GNUmakefile, BaseTools/Source/C/BrotliCompress/Makefile, BaseTools/Source/C/Common/GNUmakefile, BaseTools/Source/C/Common/Makefile, BaseTools/Source/C/DevicePath/GNUmakefile, BaseTools/Source/C/DevicePath/Makefile, BaseTools/Source/C/EfiRom/GNUmakefile, BaseTools/Source/C/EfiRom/Makefile, BaseTools/Source/C/GNUmakefile, BaseTools/Source/C/GenCrc32/GNUmakefile, BaseTools/Source/C/GenCrc32/Makefile, BaseTools/Source/C/GenFfs/GNUmakefile, BaseTools/Source/C/GenFfs/Makefile, BaseTools/Source/C/GenFv/GNUmakefile, BaseTools/Source/C/GenFv/Makefile, BaseTools/Source/C/GenFw/GNUmakefile, BaseTools/Source/C/GenFw/Makefile, BaseTools/Source/C/GenSec/GNUmakefile, BaseTools/Source/C/GenSec/Makefile, BaseTools/Source/C/GenStm/GNUmakefile, BaseTools/Source/C/GenStm/Makefile, BaseTools/Source/C/LzmaCompress/GNUmakefile, BaseTools/Source/C/LzmaCompress/Makefile, BaseTools/Source/C/Makefile, BaseTools/Source/C/PyEfiCompressor/Makefile, BaseTools/Source/C/TianoCompress/GNUmakefile, BaseTools/Source/C/TianoCompress/Makefile, BaseTools/Source/C/VfrCompile/GNUmakefile, BaseTools/Source/C/VfrCompile/Makefile, BaseTools/Source/C/VfrCompile/Pccts/Makefile, BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile, BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile, BaseTools/Source/C/VfrCompile/Pccts/support/genmk/makefile, BaseTools/Source/C/VfrCompile/Pccts/support/rexpr/makefile, BaseTools/Source/C/VolInfo/GNUmakefile, BaseTools/Source/C/VolInfo/Makefile, BaseTools/Source/Python/GNUmakefile, BaseTools/Source/Python/Makefile, BaseTools/Tests/GNUmakefile
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0.04
评分方式
45/45可类型检查的代码 — C(静态类型)
52.5/55可控的文件大小 — 采样的 5,118 个源文件中有 235 个超过 60KB
所用输入
primary_languageC
largest_source_bytes698,119
source_files_sampled5,118
oversized_source_files235

机器可读接口

40存在风险
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
0/20MCP 服务器
40/40可运行示例 — sample, samples
所用输入
example_dirssample, samples
has_mcp_signal
api_schema_files

关键数据

286GitHub 星标
98贡献者
730最近 12 个月提交数
0距最近推送天数
100发布版本数
13巴士系数(bus factor)
14开放议题
软件包生态系统数

更多细节

Star 与 Fork 历史 286 ★ / 177 ⇿
286Star
177Fork
95发布

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

050100150200250300286169552018-092022-082026-07
主版本 9次版本 2修订 60

每个点涵盖 8 天。

OpenSSF Scorecard 6.8 / 10
6.8综合

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

7Binary-Artifactsbinaries present in source code
8Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests10 out of 10 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
10Contributorsproject has 18 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
10Maintained30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
不适用Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
全部依赖 9

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

注册表软件包版本关系
PyPIantlr4-python3-runtime4.13.2间接
PyPIedk2-pytool-extensions间接
PyPIedk2-pytool-extensions0.12.*间接
PyPIedk2-pytool-library间接
PyPIedk2-pytool-library0.10.*间接
PyPIlcov-cobertura2.1.1间接
PyPIpygount3.2.0间接
PyPIregex2026.7.10间接
PyPItoml0.10.2间接
依赖安全公告 0

该仓库未发布可被索引解析的包,因此评估的是其自身的依赖图——共 5 个包,其中也包含从不交付的开发与测试版本固定:0 个存在已知公告,0 个为直接依赖。 有 4 个无法评估——没有已解析的版本、生态系统不受支持,或不在所列包清单之内。

没有已知公告影响已评估的依赖。

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [
        "firmware",
        "uefi",
        "projectmu",
        "uefi-development"
      ],
      "is_fork": false,
      "size_kb": 328004,
      "has_wiki": false,
      "homepage": "https://microsoft.github.io/mu/",
      "languages": {
        "C": 64359170,
        "ASL": 42770,
        "C++": 1259250,
        "GAP": 427026,
        "Rez": 21053,
        "HTML": 29149,
        "NASL": 12121,
        "NSIS": 1847,
        "Pawn": 321,
        "Roff": 13862,
        "ANTLR": 15914,
        "Shell": 21341,
        "Python": 8832299,
        "BitBake": 30328,
        "Assembly": 1098826,
        "Makefile": 74603,
        "Batchfile": 48391,
        "DenizenScript": 113493,
        "Linker Script": 2804,
        "Rich Text Format": 1356984
      },
      "pushed_at": "2026-07-21T23:20:09Z",
      "created_at": "2018-09-08T00:37:07Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-21T18:33:38Z",
      "description": "Project Mu BaseCore",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "release/202511",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "C",
      "significant_languages": [
        "C",
        "Python"
      ]
    },
    "owner": {
      "blog": "https://opensource.microsoft.com",
      "name": "Microsoft",
      "type": "Organization",
      "login": "microsoft",
      "company": null,
      "location": "Redmond, WA",
      "followers": 125580,
      "avatar_url": "https://avatars.githubusercontent.com/u/6154722?v=4",
      "created_at": "2013-12-10T19:06:48Z",
      "is_verified": null,
      "public_repos": 8215,
      "account_age_days": 4606
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2025110002.0.12",
          "kind": "patch",
          "published_at": "2026-07-21T23:20:10Z"
        },
        {
          "tag": "v2025110002.0.11",
          "kind": "patch",
          "published_at": "2026-07-16T18:48:44Z"
        },
        {
          "tag": "v2025110002.0.10",
          "kind": "patch",
          "published_at": "2026-07-16T16:08:00Z"
        },
        {
          "tag": "v2025110002.0.9",
          "kind": "patch",
          "published_at": "2026-07-13T21:20:23Z"
        },
        {
          "tag": "v2025110002.0.8",
          "kind": "patch",
          "published_at": "2026-06-26T15:52:52Z"
        },
        {
          "tag": "v2025110002.0.7",
          "kind": "patch",
          "published_at": "2026-06-25T22:08:19Z"
        },
        {
          "tag": "v2025110002.0.6",
          "kind": "patch",
          "published_at": "2026-06-24T00:26:23Z"
        },
        {
          "tag": "v2025110002.0.5",
          "kind": "patch",
          "published_at": "2026-06-23T14:54:11Z"
        },
        {
          "tag": "v2025110002.0.4",
          "kind": "patch",
          "published_at": "2026-06-22T21:25:52Z"
        },
        {
          "tag": "v2025110002.0.3",
          "kind": "patch",
          "published_at": "2026-06-19T19:41:54Z"
        },
        {
          "tag": "v2025110002.0.2",
          "kind": "patch",
          "published_at": "2026-06-12T22:04:45Z"
        },
        {
          "tag": "v2025110002.0.1",
          "kind": "patch",
          "published_at": "2026-06-08T21:49:43Z"
        },
        {
          "tag": "v2025110002.0.0",
          "kind": "major",
          "published_at": "2026-06-02T21:56:24Z"
        },
        {
          "tag": "v2025110001.0.12",
          "kind": "patch",
          "published_at": "2026-06-02T21:20:45Z"
        },
        {
          "tag": "v2025110001.0.11",
          "kind": "patch",
          "published_at": "2026-05-20T17:43:22Z"
        },
        {
          "tag": "v2025110001.0.10",
          "kind": "patch",
          "published_at": "2026-05-18T16:54:57Z"
        },
        {
          "tag": "v2025110001.0.9",
          "kind": "patch",
          "published_at": "2026-05-14T17:13:57Z"
        },
        {
          "tag": "v2025110001.0.8",
          "kind": "patch",
          "published_at": "2026-05-13T23:42:46Z"
        },
        {
          "tag": "v2025110001.0.7",
          "kind": "patch",
          "published_at": "2026-05-12T04:07:56Z"
        },
        {
          "tag": "v2025110001.0.6",
          "kind": "patch",
          "published_at": "2026-05-06T20:05:37Z"
        },
        {
          "tag": "v2025020003.0.7",
          "kind": "patch",
          "published_at": "2026-07-13T21:20:04Z"
        },
        {
          "tag": "v2025110001.0.5",
          "kind": "patch",
          "published_at": "2026-04-24T22:35:18Z"
        },
        {
          "tag": "v2025110001.0.4",
          "kind": "patch",
          "published_at": "2026-04-23T20:04:22Z"
        },
        {
          "tag": "v2025020003.0.6",
          "kind": "patch",
          "published_at": "2026-04-17T20:59:47Z"
        },
        {
          "tag": "v2025110001.0.3",
          "kind": "patch",
          "published_at": "2026-04-17T20:10:49Z"
        },
        {
          "tag": "v2025110001.0.2",
          "kind": "patch",
          "published_at": "2026-04-03T22:09:33Z"
        },
        {
          "tag": "v2025110001.0.1",
          "kind": "patch",
          "published_at": "2026-04-02T18:22:55Z"
        },
        {
          "tag": "v2025110001.0.0",
          "kind": "major",
          "published_at": "2026-04-02T15:53:28Z"
        },
        {
          "tag": "v2025110000.0.6",
          "kind": "patch",
          "published_at": "2026-04-01T04:17:47Z"
        },
        {
          "tag": "v2025110000.0.5",
          "kind": "patch",
          "published_at": "2026-03-27T23:05:59Z"
        },
        {
          "tag": "v2025110000.0.4",
          "kind": "patch",
          "published_at": "2026-03-26T22:43:24Z"
        },
        {
          "tag": "v2025110000.0.3",
          "kind": "patch",
          "published_at": "2026-03-23T20:12:04Z"
        },
        {
          "tag": "v2025110000.0.2",
          "kind": "patch",
          "published_at": "2026-03-18T21:19:03Z"
        },
        {
          "tag": "v2025110000.0.1",
          "kind": "patch",
          "published_at": "2026-03-13T00:23:17Z"
        },
        {
          "tag": "v2025110000.0.0",
          "kind": "major",
          "published_at": "2026-03-11T03:58:44Z"
        },
        {
          "tag": "v2025020003.0.5",
          "kind": "patch",
          "published_at": "2026-03-04T17:35:58Z"
        },
        {
          "tag": "v2025020003.0.4",
          "kind": "patch",
          "published_at": "2026-02-25T23:20:18Z"
        },
        {
          "tag": "v2025020003.0.3",
          "kind": "patch",
          "published_at": "2026-02-12T20:22:00Z"
        },
        {
          "tag": "v2025020003.0.2",
          "kind": "patch",
          "published_at": "2026-02-09T23:21:23Z"
        },
        {
          "tag": "v2025020003.0.1",
          "kind": "patch",
          "published_at": "2026-02-04T23:28:19Z"
        },
        {
          "tag": "v2025110000.0.0-rc0",
          "kind": "prerelease",
          "published_at": "2026-01-28T22:35:01Z"
        },
        {
          "tag": "v2025020003.0.0",
          "kind": "major",
          "published_at": "2026-01-09T06:24:23Z"
        },
        {
          "tag": "v2025020002.1.3",
          "kind": "patch",
          "published_at": "2025-12-02T16:07:18Z"
        },
        {
          "tag": "v2024050004.0.5",
          "kind": "patch",
          "published_at": "2026-04-17T20:59:29Z"
        },
        {
          "tag": "v2024050004.0.4",
          "kind": "patch",
          "published_at": "2025-11-06T22:55:57Z"
        },
        {
          "tag": "v2025020002.1.2",
          "kind": "patch",
          "published_at": "2025-11-04T00:19:44Z"
        },
        {
          "tag": "v2025020002.1.1",
          "kind": "patch",
          "published_at": "2025-11-03T16:45:23Z"
        },
        {
          "tag": "v2025020002.1.0",
          "kind": "minor",
          "published_at": "2025-10-31T18:39:16Z"
        },
        {
          "tag": "v2025020002.0.3",
          "kind": "patch",
          "published_at": "2025-10-23T16:53:55Z"
        },
        {
          "tag": "v2025020002.0.2",
          "kind": "patch",
          "published_at": "2025-10-17T21:16:48Z"
        },
        {
          "tag": "v2025020002.0.1",
          "kind": "patch",
          "published_at": "2025-10-14T03:32:26Z"
        },
        {
          "tag": "v2025020002.0.0",
          "kind": "major",
          "published_at": "2025-09-19T19:02:51Z"
        },
        {
          "tag": "v2025020001.0.6",
          "kind": "patch",
          "published_at": "2025-08-28T15:09:52Z"
        },
        {
          "tag": "dev-v2025020001.0.6",
          "kind": "other",
          "published_at": "2025-08-28T15:05:44Z"
        },
        {
          "tag": "dev-v2025020001.05",
          "kind": "other",
          "published_at": "2025-08-16T01:25:35Z"
        },
        {
          "tag": "v2025020001.0.5",
          "kind": "patch",
          "published_at": "2025-08-16T01:25:42Z"
        },
        {
          "tag": "v2025020001.0.4",
          "kind": "patch",
          "published_at": "2025-08-15T23:17:02Z"
        },
        {
          "tag": "dev-v2025020001.0.4",
          "kind": "other",
          "published_at": "2025-08-15T23:16:54Z"
        },
        {
          "tag": "v2025020001.0.3",
          "kind": "patch",
          "published_at": "2025-08-15T22:38:52Z"
        },
        {
          "tag": "dev-v2025020001.0.3",
          "kind": "other",
          "published_at": "2025-08-15T22:38:29Z"
        },
        {
          "tag": "dev-v2025020001.0.2",
          "kind": "other",
          "published_at": "2025-08-08T01:15:05Z"
        },
        {
          "tag": "v2025020001.0.2",
          "kind": "patch",
          "published_at": "2025-08-07T21:12:04Z"
        },
        {
          "tag": "v2025020001.0.1",
          "kind": "patch",
          "published_at": "2025-07-29T00:04:10Z"
        },
        {
          "tag": "dev-v2025020001.0.1",
          "kind": "other",
          "published_at": "2025-07-29T00:03:59Z"
        },
        {
          "tag": "v2025020000.0.7",
          "kind": "patch",
          "published_at": "2025-07-24T18:01:15Z"
        },
        {
          "tag": "dev-v2025020001.0.0",
          "kind": "other",
          "published_at": "2025-07-24T18:00:52Z"
        },
        {
          "tag": "v2025020000.0.6",
          "kind": "patch",
          "published_at": "2025-06-03T22:28:38Z"
        },
        {
          "tag": "dev-v2025020000.0.6",
          "kind": "other",
          "published_at": "2025-06-03T22:28:32Z"
        },
        {
          "tag": "v2025020000.0.5",
          "kind": "patch",
          "published_at": "2025-06-02T21:11:32Z"
        },
        {
          "tag": "dev-v2025020000.0.5",
          "kind": "other",
          "published_at": "2025-06-02T21:11:24Z"
        },
        {
          "tag": "v2024050004.0.3",
          "kind": "patch",
          "published_at": "2025-06-04T03:39:23Z"
        },
        {
          "tag": "dev-v2024050004.0.3",
          "kind": "other",
          "published_at": "2025-06-04T03:39:21Z"
        },
        {
          "tag": "dev-dev-2025020000.0.4",
          "kind": "other",
          "published_at": "2025-05-29T21:21:21Z"
        },
        {
          "tag": "v2025020000.0.4",
          "kind": "patch",
          "published_at": "2025-05-29T21:21:25Z"
        },
        {
          "tag": "dev-v2025020000.0.3",
          "kind": "other",
          "published_at": "2025-05-28T21:57:41Z"
        },
        {
          "tag": "v2025020000.0.3",
          "kind": "patch",
          "published_at": "2025-05-28T21:57:58Z"
        },
        {
          "tag": "v2025020000.0.2",
          "kind": "patch",
          "published_at": "2025-05-21T01:41:32Z"
        },
        {
          "tag": "dev-v2025020000.0.2",
          "kind": "other",
          "published_at": "2025-05-21T01:41:17Z"
        },
        {
          "tag": "v2025020000.0.1",
          "kind": "patch",
          "published_at": "2025-05-02T23:50:29Z"
        },
        {
          "tag": "dev-v2025020000.0.1",
          "kind": "other",
          "published_at": "2025-05-02T23:50:11Z"
        },
        {
          "tag": "v2025020000.0.0",
          "kind": "major",
          "published_at": "2025-04-30T23:05:30Z"
        },
        {
          "tag": "dev-v2025020000.0.0",
          "kind": "other",
          "published_at": "2025-04-30T22:32:49Z"
        },
        {
          "tag": "v2024050004.0.2",
          "kind": "patch",
          "published_at": "2025-04-30T22:33:25Z"
        },
        {
          "tag": "dev-v2024050004.0.1",
          "kind": "other",
          "published_at": "2025-03-21T01:34:11Z"
        },
        {
          "tag": "v2024050004.0.1",
          "kind": "patch",
          "published_at": "2025-03-21T01:34:45Z"
        },
        {
          "tag": "v2024050003.1.0",
          "kind": "minor",
          "published_at": "2025-02-14T00:46:50Z"
        },
        {
          "tag": "dev-v2024050004.0.0",
          "kind": "other",
          "published_at": "2025-02-14T00:46:32Z"
        },
        {
          "tag": "v2024050003.0.1",
          "kind": "patch",
          "published_at": "2025-01-14T19:03:29Z"
        },
        {
          "tag": "dev-v2024050003.0.1",
          "kind": "other",
          "published_at": "2025-01-14T19:03:09Z"
        },
        {
          "tag": "dev-v2024050003.0.0",
          "kind": "other",
          "published_at": "2024-12-20T16:51:47Z"
        },
        {
          "tag": "v2024050003.0.0",
          "kind": "major",
          "published_at": "2024-12-20T16:48:01Z"
        },
        {
          "tag": "v2024050002.0.0",
          "kind": "major",
          "published_at": "2024-12-11T20:19:23Z"
        },
        {
          "tag": "dev-v2024050002.0.0",
          "kind": "other",
          "published_at": "2024-12-11T20:19:13Z"
        },
        {
          "tag": "v2024050001.0.1",
          "kind": "patch",
          "published_at": "2024-12-10T17:49:03Z"
        },
        {
          "tag": "dev-v2024050001.0.1",
          "kind": "other",
          "published_at": "2024-12-10T17:48:44Z"
        },
        {
          "tag": "v2024050001.0.0",
          "kind": "major",
          "published_at": "2024-12-03T01:15:44Z"
        },
        {
          "tag": "dev-v2024050001.0.0",
          "kind": "other",
          "published_at": "2024-12-03T01:15:28Z"
        },
        {
          "tag": "dev-v2024050000.2.0",
          "kind": "other",
          "published_at": "2024-11-22T01:28:22Z"
        },
        {
          "tag": "v2024050000.1.4",
          "kind": "patch",
          "published_at": "2024-11-15T23:07:27Z"
        },
        {
          "tag": "v2024050000.1.3",
          "kind": "patch",
          "published_at": "2024-11-13T20:29:36Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "18de13ad691dbe878db7d62b1139db7a65d4dbb6",
          "body": "Reordering x64 toolchain defines (GCCS) to use a DLINK_XIPFLAGS\nto set common-page-size to 0x40. Otherwise use default align\n(0x1000 for x64).\n\nReorder CLANGDWARF toolchain defines to use DLINK_XIPFLAGS\nto set common-page-size to 0x40 (matching existing behavior)\nand otherwise use default linker val\n[…]\n.template to support CLANGDWARF\nbuild family for SEC, PEI_CORE, PEIM type files.\n\nSigned-off-by: Aaron Pop <aaronpop@microsoft.com>\n(cherry picked from commit 87e486f622c5eaa0bee04f090b5c543466d6178b)",
          "is_bot": false,
          "headline": "[Cherry-Pick] BaseTools: Enable 4k alignment for tool chains",
          "author_name": "Aaron Pop",
          "author_login": "apop5",
          "committed_at": "2026-07-21T18:33:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "29d32ac447690388af0d427bb157edff2767dfd6",
          "body": "Add Google Test Mock library header and implementation for\nSecureBootVariableLib to allow simple mocking for host based unit tests\nthat utilize the Google Test framework.\n\nSigned-off-by: Joey Vagedes <joey.vagedes@gmail.com>",
          "is_bot": false,
          "headline": "[CHERRY-PICK] SecurityPkg: Add Google Test MockSecureBootVariableLib",
          "author_name": "Joey Vagedes",
          "author_login": "Javagedes",
          "committed_at": "2026-07-16T18:59:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "911ddffb7101eb78a55bd9b8d10bb562bd937cd0",
          "body": "Signed-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>",
          "is_bot": false,
          "headline": "Update BaseTools external dependency to v2025110002.0.10",
          "author_name": "uefibot",
          "author_login": "uefibot",
          "committed_at": "2026-07-16T17:05:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "327c7a3a718371a27c3a27170fa2a4da3e2cc249",
          "body": "…ase behavior\n\nUpdate the test decision matrix and TC6 expected result to reflect\nthe backward-compatible ForceRebase logic: when ForceRebase=TRUE and\nno files have the ,XIP suffix (XipFileCount==0), all files are\nrebased using the legacy behavior rather than skipping all files.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit ae023dbe9952cef22a108bf247605030d0c60b50)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools/Tests: Update TC6 for backward-compatible reb…",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-07-16T16:06:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9551ccf6589ba1c9efd3c782fa2424c18556ae78",
          "body": "…ip is unused\n\nAdd XipFileCount to FV_INFO to track how many files have the ,XIP\nsuffix. Update FfsRebase() to only apply selective XIP rebase when\nXipFileCount > 0. When no files have the ,XIP suffix (XipFileCount\n== 0), preserve the legacy ForceRebase=TRUE behavior of rebasing all\nfiles. This main\n[…]\nexisting platforms\nthat use FvForceRebase=TRUE without any Xip rules.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit 0347d3b7113ef215e0f19a38206703e86a4e5d1b)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools/GenFv: Preserve legacy rebase behavior when X…",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-07-16T16:06:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5cee956217137fc25b89042de8634c45f30d2059",
          "body": "synced local file(s) with\n[microsoft/mu_devops](https://github.com/microsoft/mu_devops).\n\n🤖: View the [Repo File Sync Configuration\nFile](https://github.com/microsoft/mu_devops/blob/main/.sync/Files.yml)\nto see how files are synced.\n\n---\n\nThis PR was created automatically by the\n[repo-file-sync-acti\n[…]\ncom/microsoft/mu_devops/actions/runs/29457513730)\n\nSigned-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>\nCo-authored-by: mu-automation[bot] <204385837+mu-automation[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Repo File Sync: change dependabot schedule to monthly (#1848)",
          "author_name": "mu-automation[bot]",
          "author_login": "mu-automation[bot]",
          "committed_at": "2026-07-15T23:36:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0bc369329a88489c230d9617ac448baa2beefd8f",
          "body": "Updates `regex` from 2026.6.28 to 2026.7.10\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "pip: bump regex from 2026.6.28 to 2026.7.10 (#1847)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-15T22:18:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df9560579f9580d808937c716304d8fe4f87f47b",
          "body": "This PR updates the BaseTools external dependency to version\nv2025110002.0.8.\n\nSigned-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>\nCo-authored-by: uefibot <uefibot@microsoft.com>",
          "is_bot": true,
          "headline": "[release/202511] Update BaseTools ext dep to v2025110002.0.8 (#1839)",
          "author_name": "mu-automation[bot]",
          "author_login": "mu-automation[bot]",
          "committed_at": "2026-07-13T20:30:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5315549216a14e8b0f433af7012a99d6476afc31",
          "body": "Updates `edk2-pytool-library` to 0.23.15\nUpdates `regex` from 2026.5.9 to 2026.6.28\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "pip: bump edk2-pytool-library to 0.23.15, regex to 2026.6.28 (#1841)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-01T17:05:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8875f996f3dccac6dedc4b317e0540533eb4e2a",
          "body": "## Description\n\nThe pragma once changes in edk2 were not made until the end of February\nand are first released in the\n[edk2-stable202605](https://github.com/tianocore/edk2/releases/tag/edk2-stable202605)\ntag. However, some Mu platforms have moved ahead with pragma once\nchanges in code outside of Mu.\n[…]\ning complex variations of include types\nincluding the inlining case with `#pragma once` in .h files.\n\n## Integration Instructions\n\n- N/A\n\nSigned-off-by: Michael Kubacki <michael.kubacki@microsoft.com>",
          "is_bot": false,
          "headline": "BaseTools/Trim.py: Strip \"#pragma once\" from inlined ASL content (#1840)",
          "author_name": "Michael Kubacki",
          "author_login": "makubacki",
          "committed_at": "2026-06-30T18:46:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f11f1104bdd723aea56ceded74f497e70e701510",
          "body": "…age (#1258)\n\nThis change adds the implementation of supporting \"resource descriptor\nhob type 2\", which will extends the existing definition of resource\ndescriptor hob with an attribute field.\n\nThis field can be used to provide the actual attributes needs to be set\nfor the memory region, instead of \n[…]\nthe cache attributes) to the DXE phase,\n`BuildResourceDescriptorWithCacheHob` should be used to produce resource\ndescriptors (v2).\n\n(cherry picked from commit 221fa7a50bb0d25b1a51c4ed6ab8833d5dbe4f39)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] Add resource descriptor hob v2 for memory attributes us…",
          "author_name": "kuqin12",
          "author_login": "kuqin12",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2f596775efd36682b2ef6aedde840866b0b33fa1",
          "body": "This commit adds unit tests and documentation for the Memory Bin\nfeature.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 1b39cb1d816a870a44fbeeaaf092773b1b08b179)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: MemoryBins: Add GoogleTest and README",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9609079c68edcc0eb37f1b38589de74c6838771a",
          "body": "If memory bins are enabled for PEI, PEI will produce\nMemory Allocation HOBs marked with gEfiMemoryTypeInformationGuid.\nIf these exist, DXE core will now process the stats from them\nto have accurate numbers.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit cf1a2a541e1fa19a0117a952fece30de1928caae)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: DxeCore: Update Memory Statistics from PEI",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ca5dc70ff99b3dcb647b2f2567576380c89e506",
          "body": "…em PEI\n\nThis commit adds opt-in support for post-mem PEI memory bins.\nSee the README for full details.\n\nMemoryBin.c is duplicated to PeiCore per request.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 2e7aa4810bd3e4008e561f2ea5a9de1dc189c817)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: PeiCore: Add Memory Bin Support to Post-M…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0227d52e5f6d562793bcd0539d46fe09ba1a10c4",
          "body": "This adds a PCD, FALSE by default, that enables the memory\nbin feature in PEI.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 840d07abb15a722f47bfd9151681207246b71573)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Add PCD to Enable Memory Bin Support in PEI",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a14f7633ab031fa54d240dc9537150b4302d631b",
          "body": "…arate File\n\nThis commits splits out logic currently contained in\nGcd.c and Page.c to a new file called\nMemoryBin.c. This is set up in preparation to\nadd support to PEI for memory bins (an S4 resume stability\nfeature).\n\nMemoryBin.c takes all global state in as parameters so that\nDXE core can use glo\n[…]\ne\nfunctionality to share with PEI.\n\nThis was requested not to be a library.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit eab3300622876b674cf22c5c56f899b0a6df1087)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Dxe Core: Split Memory Bin Logic Into Sep…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f74bfcc8b11f8a6f9d3540504230f233e94c6768",
          "body": "This commit adds a parameter to the memory bin allocation function\nto tell it whether it should create the Resource Descriptor HOB\nowned by gMemoryTypeInformationGuid. This will be used by PEI to\ntell DXE where the memory bins are.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit a196ef6db5c77708dde3528dc735494037f16ab3)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Dxe Core: Add Resource Desc Hob Generation",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1077cdd82d153c873989206c2b39a4484ae2564c",
          "body": "This adds a helper function to initialize the\nmemory bin statistics as the same logic is\nrepeated in several places.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit b33c1b9f7d00e1b06910385dcfac2174f2f081f9)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Dxe Core: Add Stats Init Helper",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "115a31917352c0615a81cddafe9c3b2b151cb40e",
          "body": "…onRange for PEI\n\nMigrate CoreSetMemoryTypeInformationRange() to not use globals so\nit can be used in PEI as well.\n\nThis temporarily moves the EFI_MEMORY_STATISTICS structure to\nDxeMain.h so that it can be used in Gcd.c as well as Page.c.\nThis will migrate to a different private header once that is included.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 81bec6f0fbf686fa94b193eb16cba4729dfbc98b)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Dxe Core: Prep CoreSetMemoryTypeInformati…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0a0ee408261a3303cedc8cfe99e3a67d170acbf",
          "body": "…er Fn\n\nIn preparation for sharing logic with PEI, create a helper\nfunction to update the memory bin statistics.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 6b838a0d44edcf95c4edfa12212e19c7b79ab721)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Dxe Core: Add UpdateMemoryStatistics Help…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "82625afb5c32e866f1d47d11836d5ee68a5719b7",
          "body": "In preparation for sharing logic with PEI for memory bins,\nadd AllocateMemoryTypeInformationBins().\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 47e73e61c6eaca1c611c9ba19eb5a92f16139613)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Dxe Core: Add AllocateMemoryBins Helper Fn",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c896d9fbcb6b1404a135ee20a42267e23777b91",
          "body": "…urceHob Helper\n\nIn preparation for sharing memory bin logic with PEI, create a\nhelper function that finds and validates a resource descriptor\nHOB owned by gEfiMemoryTypeInformationGuid.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 1c8c92b7cc24be5f88b2685b87371facba9bd8ac)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: DxeCore: Add GetMemoryTypeInformationReso…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e8802e25bfdf522686b25caabc1dfdd1756c490",
          "body": "…tion Helper\n\nIn preparation for supporting shared memory bin logic in DXE\nand PEI, create a PopulateMemoryTypeInformation() helper function.\nThis function searches for a Memory Type Information Hob and\npopulates an EFI_MEMORY_TYPE_INFORMATION struct with it.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit d77628d4c1bf410eb86c5994389a19d9f43de197)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: DxeCore: Create PopulateMemoryTypeInforma…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1ee063e67b9d7d32b4db211fa4d0eea66e1d936",
          "body": "In preparation for sharing memory bin logic between\nPEI and DXE, update CaclulateTotalMemoryBinSizeNeeded()\nto take gMemoryTypeInformation by reference.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit b2c33619f76fc3aff547db9ee410c8f91da8395a)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Dxe Core: Update Bin Size Helper Fn",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "036d41f3c4dcbebfe6e03a9399819dfe8e166953",
          "body": "Currently, there is no guarantee that the memory bins will be\nallocated contiguously. However, there are assumptions in the\ncode that bins are allocated contiguously, such as the GCD\ninit code requiring a free memory region be large enough for\na contiguous bin range on DXE Core init.\n\nEnsuring conti\n[…]\nis commit updates CoreAddMemoryDescriptor() to\nallocate a contiguous range.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit d93ad5f525e5a994a0b51fb46bea5fe8c0bbb98e)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Dxe Core: Allocate Memory Bins Contiguously",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bd85201720cbf05068eb467c8c85238c809f34fc",
          "body": "…Needed()\n\nCoreSetMemoryTypeInformationRange() currently calculates the bin\nsize needed independently from the CalculateTotalMemoryBinSizeNeeded()\nfunction. This commit updates to use that function and remove the\nduplication.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit ab3097d457ac1e284ffcaded9d83a7687c65cc13)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: Dxe Core: Use CalculateTotalMemoryBinSize…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f404ceac6b883a96d2259d1e96269ac72b0dadb4",
          "body": "…e Calc\n\nCurrently CalculateTotalMemoryBinSizeNeeded() does not take\nruntime alignment granularity considerations into account. This\nmeans that the GCD initialization code can choose resource desc\nHOBs to use for the bin region that are actually too small and\nfail to initialize the bins.\n\nThis fixes\n[…]\nto consideration, both for size and for\nalignment of the bin address range.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 2be91af0cc5881e5cca63545ae7a4abe03ab76a0)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: GCD: Use Alignment Requirement in Bin Siz…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "43c73a2a8edaf37744925ea24c0a96e502d85a03",
          "body": "… Issues\n\nFix alignment issues in memory map entries returned by\nGetMemoryMap() when RUNTIME_PAGE_ALLOCATION_GRANULARITY is\nlarger than DEFAULT_PAGE_ALLOCATION_GRANULARITY.\n\nThere are no issues in the Page/Pool Allocation/Free services.\n\nLogic issues issues are addressed in the memory map returned\nb\n[…]\ntire bin.       [Added]\n  Split memory map entry at both ends of bin.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit d419725b23207ebbb14ac6f1285a24753e955e92)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg/Core/Dxe/Mem: Fix GetMemoryMap() Alignment…",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1ac65a0118b080428a1c58a6001a29b1b4accee5",
          "body": "…ries\n\nFix alignment issues in memory map entries returned by\nGetMemoryMap() when RUNTIME_PAGE_ALLOCATION_GRANULARITY is\nlarger than DEFAULT_PAGE_ALLOCATION_GRANULARITY.\n\nAlignment issues are addressed in the initial memory map\nlayout when Memory Type Information is provided with memory\nbins that us\n[…]\nerate memory\n  map entries that always follow alignment requirements.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit 6834d43991741737acf9e53350cb9293e1c9c2f5)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg/Core/Dxe/Mem: Align initial memory map ent…",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7647dde26914c1960766b0261d3047e61ff87340",
          "body": "…urce hob memory top\n\nCurrent GCD logic uses plain addition calulation when iterating through\nthe resource descriptor hobs. However, if the resource descriptor is\nincorrectly prepared, this could cause incorrect memory initialization\nand other failures down the boot process.\n\nThis change adds an overflow check before using the value.\n\nSigned-off-by: Kun Qin <kun.qin@microsoft.com>\n(cherry picked from commit 5be1bccd9cd009e54c75ee31fb8f760dfb7954b1)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg: DxeCore: Check overflow before using reso…",
          "author_name": "Kun Qin",
          "author_login": "kuqin12",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "459ed86f8397e2a894f13198d7367df90232b66d",
          "body": "…1258)\"\n\nThis reverts commit 221fa7a50bb0d25b1a51c4ed6ab8833d5dbe4f39 to apply\nit on top of the PEI memory bin changes so it lands in the correct\nplaces.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"Add resource descriptor hob v2 for memory attributes usage (#…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b423f72ead39a6a6cb99f607b505e97acf1de6ef",
          "body": "…source descriptor hobs (#1549)\"\n\nThis reverts commit c0ab3a273ca4ec6218f2f17761639e841ebcf9c9 as it has\nbeen upstreamed to edk2.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"Adding check for underflow/overflow when iterating through re…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "908ca790e3077b83c1f3b49636367236d6e6f664",
          "body": "This reverts commit e248a90d5974bcb081b0c537381e1f5f9ce86ce4\nas it has been upstreamed to edk2.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg: Consolidate Memory Bin Logic\"",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff8bd7e8763e80671d267166d9eaf1ce88017203",
          "body": "This reverts commit 906650bb67b5fb682f3fbc3d5cb565895ca29f40 as\nit has been upstreamed to edk2.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg: MemoryBin: Allocate Bins Contiguously\"",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a289bd1a557cf74c51aed92ce6e4c385869d6eec",
          "body": "…d()\"\n\nThis reverts commit 8bc20a2962593caa1a472b5725022271077f6a18 as it\nhas been upstreamed to edk2.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg: MemoryBin: Use CalculateTotalMemoryBinSizeNeede…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d07a5552643e14e64bf1569f0ac676bc60b48a01",
          "body": "This reverts commit c2a07d57def2ee6b8972a05f2c6dde1b45de61ee as it\nwas removed in upstreaming.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg: MemoryBin: Add DefaultBin Field to Stats\"",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb4f26df3e5978576fd259c2a70097958d7ac05f",
          "body": "This reverts commit bd8c2bbb3d37c75254e6fafa45409c8d0aaf9c2b as it\nhas been upstreamed to edk2.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg: MemoryBin: Add Bin Resource Desc Hob Generation\"",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "528f1071c6f78ca399de120409869cded2c6c6c3",
          "body": "This reverts commit ae6343cb2ddd857778dea122284dad74a2121848 as it\nhas been upstreamed to edk2.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg: PeiCore: Add Memory Bin Support to Post-Mem PEI\"",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "768f16f1d97520466fdfc7ab631d6f40f9d699dc",
          "body": "This reverts commit 59002db567b2c1fb119a0cb6f62001f9006201ff as it\nhas been upstreamed to edk2.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg: DxeCore: Update Memory Statistics from PEI\"",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0202ef31e7798cb307d1d05fa1542ab456e3ae51",
          "body": "This reverts commit d210225e80cb53d46b47e039e888ef891e0264d7 as it\nhas been upstreamed to edk2.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg: MemoryBins: Add GoogleTest and README\"",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-26T15:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb410d038d3a2c232ada556bf8d3fda8cd07bafd",
          "body": "Implemented dynamic TCG log scaling in Tcg2Dxe. When the log would become\ntruncated it instead now dynamically scales doubling the size each time.\nAn ERROR log is reported that an increase to your base log size should\noccur such that scaling is not necessary. This is a precaution against\nplatforms t\n[…]\nwhen scaling occurs on the\nnormal event log. Consumers can trigger callbacks on this event; the test\napp uses this to know when scaling occurs.\n\nSigned-off-by: Raymond Diaz <raymonddiaz@microsoft.com>",
          "is_bot": false,
          "headline": "SecurityPkg: Introduce Dynamic TCG Log Scaling",
          "author_name": "rdiaz",
          "author_login": "Raymond-MS",
          "committed_at": "2026-06-25T18:28:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cb92f397ac7e5c45e37a3f9b19b91ad51a42fb87",
          "body": "… (#257)\"\n\nThis reverts commit 348b4bd65e20263f3655ad9437550ffc5dd9951a.",
          "is_bot": false,
          "headline": "Revert \"SecurityPkg: Add an assert to TCG log function if log is full…",
          "author_name": "rdiaz",
          "author_login": "Raymond-MS",
          "committed_at": "2026-06-25T18:28:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd6a1451f8b64861ac660bf90f59f8c7af8dd8d4",
          "body": "… leaf-level entries",
          "is_bot": false,
          "headline": "Set cacheability attributes (MemAttr and Shareability) in the Stage-2…",
          "author_name": "eeshanl",
          "author_login": "eeshanl",
          "committed_at": "2026-06-25T17:27:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2bab7480d27cb8fa69eee5717b75ac9227902480",
          "body": "…14 (#1836)\n\nUpdates the requirements on\n[edk2-pytool-library](https://github.com/tianocore/edk2-pytool-library)\nto permit the latest version.\n\nUpdates `edk2-pytool-library` to 0.23.14\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "pip: update edk2-pytool-library requirement from ~=0.23.13 to ~=0.23.…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-24T14:09:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1175b2fdde286145699593d7126df786d9b4264a",
          "body": "As the FFA function now returns the target ID properly, instead of\nhardcoding the FFA_RUN target ID being the TPM SP, we use the parsed\nID to issue the FFA_RUN.\n\nSigned-off-by: Kun Qin <kun.qin@microsoft.com>",
          "is_bot": false,
          "headline": "SecurityPkg: Tpm2DeviceLibFfa: FFA run should use the returned ID",
          "author_name": "Kun Qin",
          "author_login": "kuqin12",
          "committed_at": "2026-06-24T00:57:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26adbab2d31c50b3cb00fc81888d0e4bcac072ab",
          "body": "As the FFA function now returns the target ID properly, instead of\nhardcoding the FFA_RUN target ID being the STMM, we use the parsed\nID to issue the FFA_RUN.\n\nSigned-off-by: Kun Qin <kun.qin@microsoft.com>",
          "is_bot": false,
          "headline": "ArmPkg: MmCommunication: FFA run should use the returned ID",
          "author_name": "Kun Qin",
          "author_login": "kuqin12",
          "committed_at": "2026-06-24T00:57:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f5f88a3622ed96bf2d273e46b12f58317436264",
          "body": "The direct message arguments stripped off the header, making the\nunderlying FF-A function interface to lose information when it comes to\ncertain return code, i.e. FFA_YIELD and FFA_INTERRUPT.\n\nThis change adds back the header field for this purpose so that the\ncallers can decide how to act on the co\n[…]\npopulates the header field for this purpose in FFA direct\nmessage functions so that the callers can decide how to act on the\ncorresponding return codes.\n\nSigned-off-by: Kun Qin <kun.qin@microsoft.com>",
          "is_bot": false,
          "headline": "MdePkg/MdeModulePkg: ArmFfaLib: Expand to include first 4 registers",
          "author_name": "Kun Qin",
          "author_login": "kuqin12",
          "committed_at": "2026-06-24T00:57:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "733cc7ea33c98d4d23054a9e456925df265baaa3",
          "body": "The current implementation assumes the the caller will perform the\nnecessary cleanup before exiting boot services. This has been observed\nto drop some cached file writes that occur even before the application\ncalling exit boot services is launched.\n\nThis commit adds a per-volume pre-ExitBootServices\n[…]\n for the volume in the future to ensure that all subsequent\naccess persists.\n\nSigned-off-by: Chris Fernald <chfernal@microsoft.com>\n(cherry picked from commit 12c5ded287fc142380b0f9efab3b6ac47c2d1067)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] FatPkg: Clean any volume caches during exit boot services",
          "author_name": "Chris Fernald",
          "author_login": "cfernald",
          "committed_at": "2026-06-24T00:20:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cccf503d05e7ea976b7dadff7b4ac31886fedc66",
          "body": "synced local file(s) with\n[microsoft/mu_devops](https://github.com/microsoft/mu_devops).\n\nSigned-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>\nCo-authored-by: mu-automation[bot] <204385837+mu-automation[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Repo File Sync: Bump actions/cache from 5 to 6 (#1835)",
          "author_name": "mu-automation[bot]",
          "author_login": "mu-automation[bot]",
          "committed_at": "2026-06-23T23:12:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "89e0b934789da578b5579949640bb25d06595835",
          "body": "Bumps the all-actions-dependencies group with 1 update:\n[actions/checkout](https://github.com/actions/checkout).\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "GitHub Action: Bump actions/checkout from 6 to 7 (#1829)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-23T18:18:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbb0179ff5d4d47eee7468f3d5592c8644d21f3c",
          "body": "…cial-purpose\n\nFix the GCD memory type selection logic in DXE GCD initialization so persistent memory correctly takes precedence over special-purpose memory when both attributes are present.\n\nThe existing code/comment said persistent should win, but the condition order allowed special-purpose to ove\n[…]\nhe checks so behavior matches the intended precedence and comment.\n\nSigned-off-by: Sureshkumar Ponnusamy <sponnusamy@microsoft.com>\n(cherry picked from commit e03fb69e9aad9d8ee501c512c0f1a08d8aa1fa8b)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg/Core/Dxe/Gcd: make persistent override spe…",
          "author_name": "Sureshkumar Ponnusamy",
          "author_login": "sureshkumarpMSFT",
          "committed_at": "2026-06-23T17:20:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "38313254aa0ca3f1943e67ab336713485fcc6a03",
          "body": "synced local file(s) with\n[microsoft/mu_devops](https://github.com/microsoft/mu_devops).\n\n🤖: View the [Repo File Sync Configuration\nFile](https://github.com/microsoft/mu_devops/blob/main/.sync/Files.yml)\nto see how files are synced.\n\n---\n\nThis PR was created automatically by the\n[repo-file-sync-acti\n[…]\ncom/microsoft/mu_devops/actions/runs/28019027788)\n\nSigned-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>\nCo-authored-by: mu-automation[bot] <204385837+mu-automation[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Repo File Sync: Update checkout action in codeql.yml to v7 (#1833)",
          "author_name": "mu-automation[bot]",
          "author_login": "mu-automation[bot]",
          "committed_at": "2026-06-23T15:03:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8d72fb322df9705a2f9287daa807ef12872d404e",
          "body": "MM communicate is used at runtime, and the secure partition it is communicating\nwith may provide services access through other means then the UEFI runtime\nservices. As such, the MM communication library must not assume that the\npartition will be in the waiting state. Instead it must handle the case\nwhere the partition is busy and retry the communication to some limit.\n\nSigned-off-by: Chris Fernald <chfernal@microsoft.com>",
          "is_bot": false,
          "headline": "ArmPkg: Handle FFA_BUSY response for MM communication",
          "author_name": "Chris Fernald",
          "author_login": "cfernald",
          "committed_at": "2026-06-22T23:07:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d435d356cdacca64078616dfc311f666a4ff144",
          "body": "Signed-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>",
          "is_bot": false,
          "headline": "Update BaseTools external dependency to v2025110002.0.4",
          "author_name": "uefibot",
          "author_login": "uefibot",
          "committed_at": "2026-06-22T22:18:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a47ed7a6c75375ee14c500ba940baaaee2722a92",
          "body": "Add TestFdfParserFvKeywordOrder test class with 8 parameterized\nsubtests verifying that FV-level keywords (FvForceRebase,\nFvBaseAddress, FvAlignment) can be freely interleaved with FV\nattribute flags in any order within an [FV] section.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit 3a1cfddd9a12bcdbbbcd0ff98c87a8747d08e433)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools/Tests: Add FV section keyword order parser tests",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-22T17:37:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0e715d2db4f3eee2c3b19a99847bee23b50629d",
          "body": "…keyword order\n\nFix _GetFvAttributes() to return True when it has successfully parsed\nat least one attribute before encountering a non-attribute keyword.\nPreviously it always returned False on encountering an unrecognized\nword, even after consuming prior attributes. This caused the outer\nparsing loo\n[…]\n\nchange the early return from 'return False' to 'return IsWordToken'.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit 57164cdc87cfc42083310062720d0a2eeef92bac)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools/GenFds: Fix FV attribute parser to allow any …",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-22T17:37:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "945808a762c3a55b21e33c8e7a2acf7deb4aa679",
          "body": "…tests\n\nAdd TestFdfParserPe32KeywordOrder test class with 17 parameterized\nsubtests covering all permutations of Align, Xip, and\nRELOCS_STRIPPED/RELOCS_RETAINED keywords in PE32 section statements.\nTests verify pairwise orderings, all 6 three-keyword permutations,\nsingle-keyword cases, and Xip=FALSE/RELOCS_RETAINED variants.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit 2a4022b6ae4652515aa215e00f856f899693a2a3)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools/Tests: Add PE32 section keyword order parser …",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-22T17:37:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2de34356b2a75bed298033268d45afeed10f4b8",
          "body": "Replace sequential if-statements for Align, Xip, and\nRELOCS_STRIPPED/RELOCS_RETAINED parsing in _GetEfiSection() with a\nwhile-loop that accepts these keywords in any permutation. Previously,\nspecifying Xip before Align in a [Rule] PE32 section caused a Python\nstack trace.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools/GenFds: Allow PE32 section keywords in any order",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-22T17:37:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ef67fc4e03c3744de8e0fe273b3e0ab93b58a24",
          "body": "…rebase\n\nAdd TestGenFvXip.py with 19 parameterized subtests covering the\ncomplete XIP rebase decision matrix:\n\n- 11 unit subtests validating DetermineXipEnabled() with\n  RuleComplexFile and RuleSimpleFile objects covering Xip attribute\n  parsing (TRUE/FALSE/None, case insensitive, boolean vs string)\n[…]\ndress)\n  3. PE/COFF ImageBase in the FV binary matches expected value\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit 80bf0137c1ef00047769f3ea7b05f93ec9696b1c)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools/Tests: Add unit and functional tests for XIP …",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-22T17:37:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "14131d8c63422dd593e1c62d2090d36b1596dc1a",
          "body": "…control\n\nUpdate ParseFvInf() to detect and strip \",XIP\" suffix from\nEFI_FILE_NAME values in the FV INF file. Store the per-file XIP\nflag in the new XipFile[] array in the FV_INFO structure.\n\nAdd FileIndex parameter to FfsRebase() so it can look up the XIP\nflag for the current file. When ForceRebase\n[…]\n TRUE, only rebase\nfiles that have their XipFile[] entry set to TRUE.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit 3ee3b60eb82d52e159641b89d66bcc91a40b84ce)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools/GenFv: Parse ,XIP suffix for per-file rebase …",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-22T17:37:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a1e97524b54f5943d17f6097db28edb71bc06a1f",
          "body": "… suffix\n\nAdd Xip attribute to FDF Rule class and parse the Xip keyword in\nEFI section rules of FDF files. Add XipEnabled attribute to\nFfsInfStatement that is determined from the applicable FDF Rule's\nsection Xip setting. When generating the FV INF file, append \",XIP\"\nto EFI_FILE_NAME entries for mo\n[…]\nng\nwhich files require XIP rebase directly in the FV INF file format.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit adc5e8d00941485ddeb185869eb35dd2de08f711)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools/GenFds: Propagate Xip flag to FV INF via ,XIP…",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-22T17:37:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fd4b1ed41278a6ae3a9415a47447dc07064e9e02",
          "body": "This PR updates the BaseTools external dependency to version\nv2025110002.0.3.\n\nSigned-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>\nCo-authored-by: uefibot <uefibot@microsoft.com>",
          "is_bot": true,
          "headline": "[release/202511] Update BaseTools ext dep to v2025110002.0.3 (#1828)",
          "author_name": "mu-automation[bot]",
          "author_login": "mu-automation[bot]",
          "committed_at": "2026-06-22T15:58:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0c7ed5c85a7f0eb66984588d52c24bebc28b327",
          "body": "## Description\n\nThese workflow files were previously using a dedicated branch for\ndevelopment of the Mu PR Validation workflow. It has been stable for a\ncouple of months now, so we can switch back to using the main branch\nwhich has the latest changes.\n\n- [ ] Impacts functionality?\n- [ ] Impacts secu\n[…]\nare branch content (`main` <-> `add_mu_pr_val_workflow_e2e_val`)\n\n## Integration Instructions\n\n- N/A. Only affects GitHub repo workflow.\n\nSigned-off-by: Michael Kubacki <michael.kubacki@microsoft.com>",
          "is_bot": false,
          "headline": ".github: Switch Mu PR Validation workflow to main branch (#1824)",
          "author_name": "Michael Kubacki",
          "author_login": "makubacki",
          "committed_at": "2026-06-16T18:35:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8ce0b6cf111091e46f8e411a2df23990998bf427",
          "body": "EmbeddedPkg's PrePiLib and OvmfPkg's PeilessStartupLib (which\nuses PrePiLib) only produce FV2 HOBs for extracted FVs. However,\nFV3 HOBs have superceded FV2 HOBs for describing extracted FVs.\n\nThis commit updates both of these libs to also produce FV3 HOBs,\nfollowing PEI's pattern of producing an FV,\n[…]\n\nfor that.\n\nContinuous-integration-options: PatchCheck.ignore-multi-package\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit c6c02f8cae2642b9a8987ef14b1606afb0688b1e)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] EmbeddedPkg, OvmfPkg: Produce FV3 HOBs for Extracted FVs",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-15T22:45:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a5348f390153c971b9af825c4903d1617a3402f9",
          "body": "…V2 HOB Production\n\nPrePiLib is incorrectly producing FV2 HOBs. The FvName field of\nthe FV2 HOB is intended to be the parent FV's name. This way the\nHOB consumer phase can identify when an FV has already been\nextracted: if the file name of the extracted FV and the parent\nFV name match in the FV2 HOB\n[…]\no updated.\n\nContinuous-integration-options: PatchCheck.ignore-multi-package\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 7ad30b28b2e86ccc9cab9917d272f486140323bb)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] EmbeddedPkg, OvmfPkg: PrePiLib: Use Correct FvName in F…",
          "author_name": "Dmitry Antipov",
          "author_login": "dmitryantipov",
          "committed_at": "2026-06-15T22:45:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8b2674e2ad3019aaad8f9d4f012db6d0f39be2c0",
          "body": "…riting\n\nFfsGetVolumeInfo() in PrePiLib does not zero the VolumeInfo\nbuffer before writing to it. However, it has some fields that\nare expected to be zero if certain conditions are not met.\n\nFor example, the FvName is expected to be all 0's if the\nextended header is not present in the FV. Currently,\n[…]\nctation and have FfsGetVolumeInfo() zero the\nbuffer before it writes to it.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 6eca4a4a95942e9d7eb1809524e4116fb3ac1cd3)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] EmbeddedPkg: PrePiLib: Zero Volume Info Buffer Before W…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-15T22:45:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "335078b5d6ce7e02b9f0278c6bc5a6eb53dde4b6",
          "body": "PrePiLib only searches for the existence of an FV2 HOB to\ndetermine if an FV has already been extracted. However,\nFV2 HOBs have been superceded by FV3 HOBs for describing extracted\nFVs.\n\nThis commit updates PrePiLib to check for the existence of either\nan FV2 or FV3 HOB for this FV and skips extracting if either is\nfound.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit e63bba000a464fe35fb215e99bc4dcf01ebeabd6)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] EmbeddedPkg: PrePiLib: Skip Extracting if FV3 HOB Found",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-15T22:45:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3d910ea9255fdf763da9edabff0bb6b95009bd0",
          "body": "PrePi.h has some duplicate HOB definitions from HobLib.h.\nInstead of redefining them, use HobLib.h.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit 622a2c7abf98d36525f8122ae724d381148121df)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] EmbeddedPkg: PrePi.h: Drop Duplicate HOB Defintions",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-15T22:45:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa4fed0bc4a8d8503f761cc1cf048ccad00ee29b",
          "body": "…FV file in PrePiLib\"\n\nThis reverts commit f2af7a9a3f7b62e187cec92f744fe5e8f8a53318 as\nit has been upstreamed to edk2.",
          "is_bot": false,
          "headline": "Revert \"EmbeddedPkg: [TCBZ2094] Fix FV2 Hob creation when processing …",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-15T22:45:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "855c46388870277fda55a07502569cdfc3d2a340",
          "body": "synced local file(s) with\n[microsoft/mu_devops](https://github.com/microsoft/mu_devops).\n\nSigned-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>\nCo-authored-by: mu-automation[bot] <204385837+mu-automation[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Repo File Sync: update mu_devops to v18.0.7 (#1821)",
          "author_name": "mu-automation[bot]",
          "author_login": "mu-automation[bot]",
          "committed_at": "2026-06-15T17:51:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d48127377d5589cbdcf9061847322a4b9b4d7a11",
          "body": "This PR updates the BaseTools external dependency to version\nv2025110002.0.2.\n\nSigned-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>\nCo-authored-by: uefibot <uefibot@microsoft.com>",
          "is_bot": true,
          "headline": "[release/202511] Update BaseTools ext dep to v2025110002.0.2 (#1822)",
          "author_name": "mu-automation[bot]",
          "author_login": "mu-automation[bot]",
          "committed_at": "2026-06-15T15:43:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aec1b7f4f43242f3dbd71b5b7e7b791c42e65794",
          "body": "Replaces the previous shared-root model with on-demand per-StreamID\nstage-2 isolation:\n\n  * Each StreamID gets its own stage-2 page-table root and VMID,\n    allocated lazily on the first IoMmuSetAttribute call and promoted\n    via break-before-make.\n  * Aliases (multiple StreamIDs for one logical de\n[…]\nVICE_ENTRY {UniqueId, ObjName[32]} maps each platform\n    UniqueId to an IORT Named Component name.\n\nSee ArmPkg/Drivers/SmmuDxe/README.md for flow diagrams, HOB layout,\nand platform integration steps.",
          "is_bot": false,
          "headline": "ArmPkg/SmmuDxe: Add per-streamId isolation for each DMA capable device",
          "author_name": "eeshanl",
          "author_login": "eeshanl",
          "committed_at": "2026-06-12T01:19:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "46916353d0b14e25a4d70b3e604d1c98fb4fdc9f",
          "body": "DmaMap() takes two new parameters - IommuBase and DmaId - which DmaLib\nforwards to IoMmuSetAttributeById so handle-less DMA agents can still\nprogram the IOMMU. IommuBase == 0 is the explicit \"no DMA protection /\nIOMMU not enabled\" opt-out: the SetAttributeById call short-circuits\nand no page-table m\n[…]\nCE with the same two\n                        fields so the unmap path can replay them.\n\nThe NonCoherentIoMmuDxe sample is updated to pass 0/0 for\nIommuBase/DmaId since it has no DmaProtection enabled.",
          "is_bot": false,
          "headline": "EmbeddedPkg/DmaLib: Use IoMmuSetAttributeById with IommuBase/DmaId",
          "author_name": "eeshanl",
          "author_login": "eeshanl",
          "committed_at": "2026-06-12T01:19:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "50bd8cfd3054b41c37aabb8f955a78b5243807ac",
          "body": "NonDiscoverablePciDeviceDxe now remembers the controller EFI_HANDLE it\nbound to on NON_DISCOVERABLE_PCI_DEVICE->Handle, and passes that handle\n(instead of NULL) to IoMmuSetAttribute from CoherentPciIoMap /\nNonCoherentPciIoMap / CoherentPciIoUnmap / NonCoherentPciIoUnmap.\n\nThis lets an IOMMU producer\n[…]\nthe\ndevice's StreamID via the IORT - the same path used for real PCIe\ndevices. Without this change SmmuDxe could not distinguish between\nnon-discoverable devices and would have to fall back to bypass.",
          "is_bot": false,
          "headline": "MdeModulePkg: Add Handle to NON_DISCOVERABLE_PCI_DEVICE",
          "author_name": "eeshanl",
          "author_login": "eeshanl",
          "committed_at": "2026-06-12T01:19:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7fd4fb12a91f1852e363eca42d444102ab9cf0a4",
          "body": "Adds EDKII_IOMMU_PROTOCOL.SetAttributeById for callers that cannot supply\nan EFI_HANDLE for the DMA agent (firmware-internal MMIO/DMA components\nnot described in the IORT). The caller supplies the owning IOMMU base\naddress and the DMA identifier (StreamID on Arm SMMU, RequesterID on\nVT-d) the device\n[…]\neld, bump revision\n  - Library/IoMmuLib     : wrap mIoMmuProtocol->SetAttributeById with\n                           NULL/ready checks\n  - Library/IoMmuLibNull : NULL implementation returns EFI_SUCCESS",
          "is_bot": false,
          "headline": "MdeModulePkg: Add SetAttributeById to IoMmu Protocol",
          "author_name": "eeshanl",
          "author_login": "eeshanl",
          "committed_at": "2026-06-12T01:19:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1055879405e9be5cd7e9e4dc25650e70b630d153",
          "body": "RegisterNonDiscoverableMmioDevice() now takes a platform-assigned\nUniqueId as its first parameter and stores it on the\nNON_DISCOVERABLE_DEVICE protocol. NonDiscoverablePciDeviceDxe copies it\ninto NON_DISCOVERABLE_PCI_DEVICE and uses it to synthesize a\ndeterministic BDF in PciIo->GetLocation():\n    S\n[…]\nment    = 0xFF\n    Bus        = UniqueId >> 5\n    Device     = UniqueId & 0x1F\n    Function   = 0\n\nCallers of RegisterNonDiscoverableMmioDevice must be updated to pass a\nunique value per registration.",
          "is_bot": false,
          "headline": "MdeModulePkg: Add UniqueId to NonDiscoverableDeviceRegistrationLib",
          "author_name": "eeshanl",
          "author_login": "eeshanl",
          "committed_at": "2026-06-12T01:19:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ffc93029b4f9b112c13e9050c4c608ad1756cd2a",
          "body": "…ministic UniqueId support in NonDiscoverablePciDeviceDxe\"\n\nThis reverts commit ba56d534c5149a6e7a7d72bf92822dbf31c1bae0.",
          "is_bot": false,
          "headline": "Revert \"Add gEdkiiNonDiscoverableDeviceUniqueIdProtocolGuid for deter…",
          "author_name": "eeshanl",
          "author_login": "eeshanl",
          "committed_at": "2026-06-12T01:19:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a336f084cb9ef3ba32fe5a24d935c4ab02f0ce3b",
          "body": "…a PCD\n\nAdds gEfiMdeModulePkgTokenSpaceGuid.PcdNvmeGenericTimeout (FixedAtBuild, UINT32, default 5 seconds) so platforms can tune the NVMe generic command timeout without patching the driver. NVME_GENERIC_TIMEOUT now resolves via FixedPcdGet32 to preserve compile-time evaluation and existing behavior at the default value.",
          "is_bot": false,
          "headline": "MdeModulePkg/NvmExpressDxe: Make NVME_GENERIC_TIMEOUT configurable vi…",
          "author_name": "Maheer Aeron",
          "author_login": "maheeraeron",
          "committed_at": "2026-06-09T22:17:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2c598ff40e6970c022a546971e68e8dcef091b0",
          "body": "This patch adds ArmFfaConsoleDebugLib. A debug library that utilizes\nFF-A Console Log API to print debug messages to the console.\n\nThis is useful in context of running the StandaloneMm payload\nas a S-EL0 SP on top of SPMC where StandaloneMm isn't allowed to\naccess console device or no console device\n[…]\nnium.\n\nNOTE:\n  FFA_CONSOLE_LOG* could be used by secure partition only.\n\nSigned-off-by: Mohamed Gamal Morsy <mohamed.morsy@arm.com>\n(cherry picked from commit ddc7ed1deeb0f8acadc936f8fae6f0be07232efb)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] MdeModulePkg/Library: introduce ArmFfaConsoleDebugLib",
          "author_name": "Mohamed Gamal Morsy",
          "author_login": null,
          "committed_at": "2026-06-08T21:46:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f265718deb5127ecce4931fe59a462e1c8558503",
          "body": "Adds GenStm as a C tool.\n\nSigned-off-by: Michael Kubacki <michael.kubacki@microsoft.com>",
          "is_bot": false,
          "headline": "BaseTools: Add GenStm",
          "author_name": "Kun Qin",
          "author_login": "kuqin12",
          "committed_at": "2026-06-06T00:15:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e18ecee1af3280c913a9fadf588bf64492538625",
          "body": "… on Windows\n\nCurrently, Edk2BaseToolsBuild.py cleans before doing the build\non Linux, but doesn't do so on Windows.\n\nIt has been observed on Windows that the incremental build can\nlead to a bad state of some logic from the old build and some from\nthe new build.\n\nThis commit aligns Windows to Linux and always do a clean before\nbuilding on both OSes.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>\n(cherry picked from commit b313503a60e987f0c2c131abe588a5d06e33f8c5)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools: Edk2BaseToolsBuild.py: Clean Before Building…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-06T00:15:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a0a42d837c10481e8bf6397f603dbf25613ee56",
          "body": "Update Edk2ToolsBuild.py to support using Linux/CLANG and\nWindows Mingw/CLANG environments to build C tools within\nthe BaseTools directory. The environment variable settings\nCC=clang and CXX=clang++ must also be set before running\nEdk2ToolsBuild.py to enable the use of the clang compiler.\nPATH must \n[…]\nhe mingw-make.exe\nutility can be used to process BaseTools makefiles.\n\nSigned-off-by: Michael D Kinney <michael.d.kinney@intel.com>\n(cherry picked from commit 85e2fef2a8dfcdc64235e783abd827f33f2664b3)",
          "is_bot": false,
          "headline": "[CHERRY-PICK] BaseTools: Add CLANG support to Edk2ToolsBuild.py",
          "author_name": "Michael D Kinney",
          "author_login": "mdkinney",
          "committed_at": "2026-06-06T00:15:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8e32d01cde58f8e7f9177a2e05ef8a06dc7b7e79",
          "body": "This reverts commit 35f2ed51e00b0a9ae4a70ebb16fee75cb35192f6\ntemporarily as part of it has been upstreamed to edk2.",
          "is_bot": false,
          "headline": "Revert \"BaseTools: Add GenStm\"",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-06T00:15:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a916a3cbebd277f8dd1b865fa7b9ed7ab3a8788a",
          "body": "This reverts commit bf11205a1c6d6e1f4418893237dc8868609e019b\nto squash it with 35f2ed51e00b0a9ae4a70ebb16fee75cb35192f6.",
          "is_bot": false,
          "headline": "Revert \"Add CPU_INFORMATION_HEADER struct to STM_HEADER\"",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-06T00:15:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf3ee1ad43f542f7a433164dad7b600ab93078a0",
          "body": "…sage\"\n\nThis temporarily reverts commit 9601f61b08b108bd3062492a2cca1f76412ff314\nto better fix up history.",
          "is_bot": false,
          "headline": "Revert \"Move STATIC_ASSERT abstraction to common file for BaseTools u…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-06T00:15:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f3ab75e4dae31476d32d21234d7afe5483d6421",
          "body": "In StandaloneMM mode, IsStatusCodeUsingSerialPort is expecting to\nfind gMmStatusCodeUseSerialHobGuid, and will assert if it is not found.\n\nChange the logic so that if the Guided Hob is not found, to let\nthe function return FALSE and progress to proceed.\n\nSigned-off-by: Aaron Pop <aaronpop@microsoft.com>\n(cherry picked from commit 4743d8d9925654a3f4d150e3bc502a02979f3892)",
          "is_bot": false,
          "headline": "[Cherry-Pick] MdeModulePkg: StatusCodeHandler Stmm remove assert",
          "author_name": "Aaron Pop (from Dev Box)",
          "author_login": "apop5",
          "committed_at": "2026-06-05T18:05:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "614b36650381e9697516e5d7438725d6db2bcb0e",
          "body": "This reverts commit db8ffadfa3fd8dbc74ad0142cc616ce8a32c83ac.\n\n---\n\nCommit 4 of 4 for \"Remove MU RT cache buffer allocation changes\"\n\n\"Remove MU RT cache buffer allocation changes\" series objective:\n\nProject Mu had changes to move UEFI variable runtime cache allocation\nto DXE instead of PEI. The Pro\n[…]\nory buckets added to Project Mu beginning with the 2511\nbranch, the upstream flow to allocate the RT cache buffer in PEI can\nbe restored\n\nSigned-off-by: Michael Kubacki <michael.kubacki@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg/Variable: Move RT cache buffer allocation to DXE\"",
          "author_name": "Michael Kubacki",
          "author_login": "makubacki",
          "committed_at": "2026-06-02T21:54:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "723d0a7f53e9c5ed858206cee8dd4ab082474034",
          "body": "…lloc failure\"\n\nThis reverts commit c8e592bd3b4dd0e4f00f59d8444d5a35e21c0673.\n\n---\n\nCommit 3 of 4 for \"Remove MU RT cache buffer allocation changes\"\n\n\"Remove MU RT cache buffer allocation changes\" series objective:\n\nProject Mu had changes to move UEFI variable runtime cache allocation\nto DXE instead\n[…]\nory buckets added to Project Mu beginning with the 2511\nbranch, the upstream flow to allocate the RT cache buffer in PEI can\nbe restored\n\nSigned-off-by: Michael Kubacki <michael.kubacki@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg/VariableSmmRuntimeDxe: Disable var RT cache on a…",
          "author_name": "Michael Kubacki",
          "author_login": "makubacki",
          "committed_at": "2026-06-02T21:54:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4592e28a2d7d30ac1b0ea602db0ec2aa5b8d125b",
          "body": "… (#1588)\"\n\nThis reverts commit 9dd4ee3bf1bb3c9073fae2e57af26a47747910b3.\n\n---\n\nCommit 2 of 4 for \"Remove MU RT cache buffer allocation changes\"\n\n\"Remove MU RT cache buffer allocation changes\" series objective:\n\nProject Mu had changes to move UEFI variable runtime cache allocation\nto DXE instead of \n[…]\nory buckets added to Project Mu beginning with the 2511\nbranch, the upstream flow to allocate the RT cache buffer in PEI can\nbe restored\n\nSigned-off-by: Michael Kubacki <michael.kubacki@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"MdeModulePkg/Variable: Add PCD to control RT cache allocation…",
          "author_name": "Michael Kubacki",
          "author_login": "makubacki",
          "committed_at": "2026-06-02T21:54:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2c8714a9ce1f7e2e32665fe1c15b350dab75e48e",
          "body": "…UPPORTED leak (#1668)\"\n\nThis reverts commit 9994a208d9d233bd594c26c17989817536efe0b3 to\n\n---\n\nCommit 1 of 4 for \"Remove MU RT cache buffer allocation changes\"\n\n\"Remove MU RT cache buffer allocation changes\" series objective:\n\nProject Mu had changes to move UEFI variable runtime cache allocation\nto \n[…]\nory buckets added to Project Mu beginning with the 2511\nbranch, the upstream flow to allocate the RT cache buffer in PEI can\nbe restored\n\nSigned-off-by: Michael Kubacki <michael.kubacki@microsoft.com>",
          "is_bot": false,
          "headline": "Revert \"[CHERRY-PICK] MdeModulePkg/VariableSmmRuntimeDxe: Fix EFI_UNS…",
          "author_name": "Michael Kubacki",
          "author_login": "makubacki",
          "committed_at": "2026-06-02T21:54:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d210225e80cb53d46b47e039e888ef891e0264d7",
          "body": "This commit adds unit tests and documentation for the Memory Bin\nfeature.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "MdeModulePkg: MemoryBins: Add GoogleTest and README",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-02T21:19:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59002db567b2c1fb119a0cb6f62001f9006201ff",
          "body": "If memory bins are enabled for PEI, PEI will produce\nMemory Allocation HOBs marked with gEfiMemoryTypeInformationGuid.\nIf these exist, DXE core will now process the stats from them\nto have accurate numbers.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "MdeModulePkg: DxeCore: Update Memory Statistics from PEI",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-02T21:19:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae6343cb2ddd857778dea122284dad74a2121848",
          "body": "This commit adds opt-in support for post-mem PEI memory bins.\nSee the README for full details.\n\nMemoryBin.c is duplicated to PeiCore per request.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "MdeModulePkg: PeiCore: Add Memory Bin Support to Post-Mem PEI",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-02T21:19:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd8c2bbb3d37c75254e6fafa45409c8d0aaf9c2b",
          "body": "This commit adds a parameter to the memory bin allocation function\nto tell it whether it should create the Resource Descriptor HOB\nowned by gMemoryTypeInformationGuid. This will be used by PEI to\ntell DXE where the memory bins are.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "MdeModulePkg: MemoryBin: Add Bin Resource Desc Hob Generation",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-02T21:19:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2a07d57def2ee6b8972a05f2c6dde1b45de61ee",
          "body": "In order to prepare for PEI core to use the memory bin\nfeature, add a DefaultBin field to the stats structure\nto track which bins simply point to the default bin.\n\nThis also adds a helper function to initialize the statistics.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "MdeModulePkg: MemoryBin: Add DefaultBin Field to Stats",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-02T21:19:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bc20a2962593caa1a472b5725022271077f6a18",
          "body": "CoreSetMemoryTypeInformationRange() currently calculates the bin\nsize needed independently from the CalculateTotalMemoryBinSizeNeeded()\nfunction. This commit updates to use that function and remove the\nduplication.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "MdeModulePkg: MemoryBin: Use CalculateTotalMemoryBinSizeNeeded()",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-02T21:19:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "906650bb67b5fb682f3fbc3d5cb565895ca29f40",
          "body": "Currently, there is no guarantee that the memory bins will be\nallocated contiguously. However, this is a requirement to use\nthe resource descriptor HOB that describes the memory bin\nrange.\n\nThis commit updates AllocateMemoryTypeInformationBins() to\nallocate a contiguous range.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "MdeModulePkg: MemoryBin: Allocate Bins Contiguously",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-02T21:19:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e248a90d5974bcb081b0c537381e1f5f9ce86ce4",
          "body": "This commits splits out logic currently contained in\nGcd.c and Page.c to a new file called\nMemoryBin.c. This is set up in preparation to\nadd support to PEI for memory bins (an S4 resume stability\nfeature).\n\nMemoryBin.c takes all global state in as parameters so that\nDXE core can use globals and PEI core can use HOBs.\n\nThis was requested not to be a library.\n\nSigned-off-by: Oliver Smith-Denny <osde@microsoft.com>",
          "is_bot": false,
          "headline": "MdeModulePkg: Consolidate Memory Bin Logic",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-02T21:19:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b48ef867723cf180cffd0ca6567a4aec7769aecc",
          "body": "…t type information (#1429)\"\n\nThis reverts commit b79a6ef972d651bd3f8154919d08f81b97d86ded as it\nwas rejected upstream in favor a different solution.",
          "is_bot": false,
          "headline": "Revert \"Update memory map descriptor merging logic to honor the bucke…",
          "author_name": "Oliver Smith-Denny",
          "author_login": "os-d",
          "committed_at": "2026-06-02T21:19:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84c9fdd597260fdab7d37431a73c286f48932dea",
          "body": "This PR updates the BaseTools external dependency to version\nv2025110001.0.11.\n\nSigned-off-by: Project Mu UEFI Bot <uefibot@microsoft.com>\nCo-authored-by: uefibot <uefibot@microsoft.com>",
          "is_bot": true,
          "headline": "[release/202511] Update BaseTools ext dep to v2025110001.0.11 (#1806)",
          "author_name": "mu-automation[bot]",
          "author_login": "mu-automation[bot]",
          "committed_at": "2026-06-02T14:55:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 730,
      "latest_release_at": "2026-07-21T23:20:10Z",
      "latest_release_tag": "v2025110002.0.12",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 51,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 3.6
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 177,
      "stars": 286,
      "watchers": 19,
      "fork_history": {
        "days": [
          {
            "date": "2018-09-30",
            "count": 1
          },
          {
            "date": "2018-10-10",
            "count": 1
          },
          {
            "date": "2018-10-11",
            "count": 1
          },
          {
            "date": "2018-11-25",
            "count": 1
          },
          {
            "date": "2018-12-19",
            "count": 1
          },
          {
            "date": "2018-12-20",
            "count": 2
          },
          {
            "date": "2018-12-21",
            "count": 1
          },
          {
            "date": "2019-01-16",
            "count": 1
          },
          {
            "date": "2019-01-30",
            "count": 1
          },
          {
            "date": "2019-02-21",
            "count": 1
          },
          {
            "date": "2019-02-27",
            "count": 1
          },
          {
            "date": "2019-03-20",
            "count": 1
          },
          {
            "date": "2019-04-17",
            "count": 1
          },
          {
            "date": "2019-05-03",
            "count": 1
          },
          {
            "date": "2019-05-06",
            "count": 1
          },
          {
            "date": "2019-05-08",
            "count": 1
          },
          {
            "date": "2019-06-10",
            "count": 1
          },
          {
            "date": "2019-06-12",
            "count": 1
          },
          {
            "date": "2019-06-22",
            "count": 1
          },
          {
            "date": "2019-10-17",
            "count": 1
          },
          {
            "date": "2019-11-07",
            "count": 1
          },
          {
            "date": "2019-11-20",
            "count": 1
          },
          {
            "date": "2020-03-23",
            "count": 1
          },
          {
            "date": "2020-04-23",
            "count": 1
          },
          {
            "date": "2020-05-15",
            "count": 1
          },
          {
            "date": "2020-06-09",
            "count": 1
          },
          {
            "date": "2020-06-10",
            "count": 1
          },
          {
            "date": "2020-06-15",
            "count": 1
          },
          {
            "date": "2020-06-30",
            "count": 1
          },
          {
            "date": "2020-07-15",
            "count": 1
          },
          {
            "date": "2020-07-31",
            "count": 1
          },
          {
            "date": "2020-08-05",
            "count": 1
          },
          {
            "date": "2020-10-30",
            "count": 1
          },
          {
            "date": "2020-11-18",
            "count": 1
          },
          {
            "date": "2020-12-07",
            "count": 1
          },
          {
            "date": "2020-12-14",
            "count": 1
          },
          {
            "date": "2021-02-10",
            "count": 1
          },
          {
            "date": "2021-02-11",
            "count": 3
          },
          {
            "date": "2021-03-04",
            "count": 1
          },
          {
            "date": "2021-03-09",
            "count": 1
          },
          {
            "date": "2021-07-16",
            "count": 2
          },
          {
            "date": "2021-09-23",
            "count": 1
          },
          {
            "date": "2021-12-08",
            "count": 1
          },
          {
            "date": "2021-12-15",
            "count": 1
          },
          {
            "date": "2022-02-15",
            "count": 1
          },
          {
            "date": "2022-02-18",
            "count": 1
          },
          {
            "date": "2022-03-04",
            "count": 1
          },
          {
            "date": "2022-03-05",
            "count": 1
          },
          {
            "date": "2022-03-25",
            "count": 1
          },
          {
            "date": "2022-04-07",
            "count": 1
          },
          {
            "date": "2022-04-15",
            "count": 1
          },
          {
            "date": "2022-04-27",
            "count": 1
          },
          {
            "date": "2022-05-17",
            "count": 1
          },
          {
            "date": "2022-06-03",
            "count": 1
          },
          {
            "date": "2022-06-28",
            "count": 1
          },
          {
            "date": "2022-07-05",
            "count": 1
          },
          {
            "date": "2022-07-07",
            "count": 1
          },
          {
            "date": "2022-10-21",
            "count": 1
          },
          {
            "date": "2022-11-11",
            "count": 1
          },
          {
            "date": "2022-11-17",
            "count": 1
          },
          {
            "date": "2022-12-01",
            "count": 1
          },
          {
            "date": "2023-01-16",
            "count": 1
          },
          {
            "date": "2023-03-02",
            "count": 1
          },
          {
            "date": "2023-03-20",
            "count": 1
          },
          {
            "date": "2023-04-03",
            "count": 1
          },
          {
            "date": "2023-04-23",
            "count": 1
          },
          {
            "date": "2023-04-28",
            "count": 1
          },
          {
            "date": "2023-06-19",
            "count": 1
          },
          {
            "date": "2023-06-28",
            "count": 1
          },
          {
            "date": "2023-06-30",
            "count": 1
          },
          {
            "date": "2023-07-21",
            "count": 1
          },
          {
            "date": "2023-08-01",
            "count": 1
          },
          {
            "date": "2023-08-21",
            "count": 1
          },
          {
            "date": "2023-08-24",
            "count": 1
          },
          {
            "date": "2023-08-29",
            "count": 1
          },
          {
            "date": "2023-08-30",
            "count": 1
          },
          {
            "date": "2023-09-13",
            "count": 1
          },
          {
            "date": "2023-11-24",
            "count": 1
          },
          {
            "date": "2023-12-19",
            "count": 1
          },
          {
            "date": "2024-02-27",
            "count": 1
          },
          {
            "date": "2024-03-09",
            "count": 1
          },
          {
            "date": "2024-03-13",
            "count": 1
          },
          {
            "date": "2024-04-02",
            "count": 1
          },
          {
            "date": "2024-04-06",
            "count": 1
          },
          {
            "date": "2024-04-17",
            "count": 1
          },
          {
            "date": "2024-05-14",
            "count": 1
          },
          {
            "date": "2024-05-20",
            "count": 1
          },
          {
            "date": "2024-07-18",
            "count": 3
          },
          {
            "date": "2024-07-22",
            "count": 2
          },
          {
            "date": "2024-08-02",
            "count": 1
          },
          {
            "date": "2024-08-11",
            "count": 1
          },
          {
            "date": "2024-08-19",
            "count": 1
          },
          {
            "date": "2024-08-23",
            "count": 1
          },
          {
            "date": "2024-09-06",
            "count": 1
          },
          {
            "date": "2024-09-10",
            "count": 1
          },
          {
            "date": "2024-09-19",
            "count": 1
          },
          {
            "date": "2024-10-08",
            "count": 1
          },
          {
            "date": "2024-10-15",
            "count": 1
          },
          {
            "date": "2024-10-23",
            "count": 1
          },
          {
            "date": "2024-11-04",
            "count": 1
          },
          {
            "date": "2024-11-06",
            "count": 1
          },
          {
            "date": "2024-11-12",
            "count": 1
          },
          {
            "date": "2024-11-25",
            "count": 1
          },
          {
            "date": "2024-11-26",
            "count": 1
          },
          {
            "date": "2024-12-05",
            "count": 1
          },
          {
            "date": "2025-01-15",
            "count": 2
          },
          {
            "date": "2025-01-23",
            "count": 1
          },
          {
            "date": "2025-01-31",
            "count": 1
          },
          {
            "date": "2025-02-23",
            "count": 1
          },
          {
            "date": "2025-03-09",
            "count": 1
          },
          {
            "date": "2025-03-17",
            "count": 1
          },
          {
            "date": "2025-04-23",
            "count": 1
          },
          {
            "date": "2025-05-08",
            "count": 1
          },
          {
            "date": "2025-05-19",
            "count": 1
          },
          {
            "date": "2025-05-20",
            "count": 1
          },
          {
            "date": "2025-05-21",
            "count": 1
          },
          {
            "date": "2025-05-23",
            "count": 1
          },
          {
            "date": "2025-05-27",
            "count": 2
          },
          {
            "date": "2025-06-10",
            "count": 1
          },
          {
            "date": "2025-06-17",
            "count": 1
          },
          {
            "date": "2025-06-24",
            "count": 1
          },
          {
            "date": "2025-07-03",
            "count": 1
          },
          {
            "date": "2025-07-11",
            "count": 1
          },
          {
            "date": "2025-07-14",
            "count": 1
          },
          {
            "date": "2025-07-22",
            "count": 1
          },
          {
            "date": "2025-07-30",
            "count": 1
          },
          {
            "date": "2025-08-21",
            "count": 1
          },
          {
            "date": "2025-09-09",
            "count": 1
          },
          {
            "date": "2025-09-16",
            "count": 1
          },
          {
            "date": "2025-09-23",
            "count": 1
          },
          {
            "date": "2025-10-09",
            "count": 1
          },
          {
            "date": "2025-10-20",
            "count": 1
          },
          {
            "date": "2025-10-26",
            "count": 1
          },
          {
            "date": "2025-10-30",
            "count": 1
          },
          {
            "date": "2025-11-03",
            "count": 1
          },
          {
            "date": "2025-11-26",
            "count": 2
          },
          {
            "date": "2025-12-04",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 1
          },
          {
            "date": "2026-02-04",
            "count": 1
          },
          {
            "date": "2026-03-03",
            "count": 1
          },
          {
            "date": "2026-03-13",
            "count": 1
          },
          {
            "date": "2026-03-15",
            "count": 1
          },
          {
            "date": "2026-03-20",
            "count": 1
          },
          {
            "date": "2026-04-08",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 1
          },
          {
            "date": "2026-04-25",
            "count": 1
          },
          {
            "date": "2026-04-27",
            "count": 1
          },
          {
            "date": "2026-04-29",
            "count": 1
          },
          {
            "date": "2026-05-11",
            "count": 1
          },
          {
            "date": "2026-05-15",
            "count": 1
          },
          {
            "date": "2026-05-21",
            "count": 1
          },
          {
            "date": "2026-05-24",
            "count": 1
          },
          {
            "date": "2026-05-30",
            "count": 1
          },
          {
            "date": "2026-06-04",
            "count": 1
          },
          {
            "date": "2026-06-23",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-08",
            "count": 1
          },
          {
            "date": "2026-07-12",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 169,
        "total_forks": 177
      },
      "star_history": {
        "days": [
          {
            "date": "2018-09-08",
            "count": 1
          },
          {
            "date": "2018-09-14",
            "count": 3
          },
          {
            "date": "2018-09-15",
            "count": 1
          },
          {
            "date": "2018-09-30",
            "count": 1
          },
          {
            "date": "2018-10-11",
            "count": 1
          },
          {
            "date": "2018-10-12",
            "count": 1
          },
          {
            "date": "2018-10-15",
            "count": 1
          },
          {
            "date": "2018-10-16",
            "count": 2
          },
          {
            "date": "2018-11-06",
            "count": 1
          },
          {
            "date": "2018-11-22",
            "count": 1
          },
          {
            "date": "2018-11-25",
            "count": 1
          },
          {
            "date": "2018-12-19",
            "count": 5
          },
          {
            "date": "2018-12-20",
            "count": 50
          },
          {
            "date": "2018-12-21",
            "count": 6
          },
          {
            "date": "2018-12-22",
            "count": 5
          },
          {
            "date": "2018-12-24",
            "count": 2
          },
          {
            "date": "2018-12-28",
            "count": 1
          },
          {
            "date": "2018-12-30",
            "count": 1
          },
          {
            "date": "2019-01-04",
            "count": 2
          },
          {
            "date": "2019-01-17",
            "count": 1
          },
          {
            "date": "2019-01-18",
            "count": 1
          },
          {
            "date": "2019-01-28",
            "count": 1
          },
          {
            "date": "2019-02-23",
            "count": 1
          },
          {
            "date": "2019-02-27",
            "count": 1
          },
          {
            "date": "2019-03-09",
            "count": 3
          },
          {
            "date": "2019-03-20",
            "count": 1
          },
          {
            "date": "2019-03-24",
            "count": 1
          },
          {
            "date": "2019-04-07",
            "count": 1
          },
          {
            "date": "2019-04-16",
            "count": 1
          },
          {
            "date": "2019-05-06",
            "count": 2
          },
          {
            "date": "2019-05-25",
            "count": 1
          },
          {
            "date": "2019-05-30",
            "count": 1
          },
          {
            "date": "2019-06-22",
            "count": 1
          },
          {
            "date": "2019-07-01",
            "count": 1
          },
          {
            "date": "2019-07-02",
            "count": 1
          },
          {
            "date": "2019-07-05",
            "count": 1
          },
          {
            "date": "2019-08-02",
            "count": 1
          },
          {
            "date": "2019-08-07",
            "count": 1
          },
          {
            "date": "2019-08-14",
            "count": 1
          },
          {
            "date": "2019-08-15",
            "count": 1
          },
          {
            "date": "2019-08-19",
            "count": 1
          },
          {
            "date": "2019-08-20",
            "count": 1
          },
          {
            "date": "2019-09-02",
            "count": 1
          },
          {
            "date": "2019-10-05",
            "count": 1
          },
          {
            "date": "2019-10-07",
            "count": 1
          },
          {
            "date": "2019-10-24",
            "count": 1
          },
          {
            "date": "2019-11-06",
            "count": 1
          },
          {
            "date": "2019-11-07",
            "count": 1
          },
          {
            "date": "2019-11-12",
            "count": 1
          },
          {
            "date": "2019-11-20",
            "count": 1
          },
          {
            "date": "2020-01-25",
            "count": 1
          },
          {
            "date": "2020-03-04",
            "count": 1
          },
          {
            "date": "2020-03-20",
            "count": 1
          },
          {
            "date": "2020-03-23",
            "count": 1
          },
          {
            "date": "2020-04-01",
            "count": 1
          },
          {
            "date": "2020-04-12",
            "count": 1
          },
          {
            "date": "2020-05-09",
            "count": 1
          },
          {
            "date": "2020-05-10",
            "count": 1
          },
          {
            "date": "2020-05-12",
            "count": 1
          },
          {
            "date": "2020-05-26",
            "count": 1
          },
          {
            "date": "2020-06-07",
            "count": 1
          },
          {
            "date": "2020-07-15",
            "count": 1
          },
          {
            "date": "2020-08-05",
            "count": 1
          },
          {
            "date": "2020-08-30",
            "count": 1
          },
          {
            "date": "2020-09-16",
            "count": 1
          },
          {
            "date": "2020-10-04",
            "count": 1
          },
          {
            "date": "2020-10-30",
            "count": 1
          },
          {
            "date": "2020-11-24",
            "count": 1
          },
          {
            "date": "2020-12-29",
            "count": 1
          },
          {
            "date": "2021-01-12",
            "count": 1
          },
          {
            "date": "2021-03-08",
            "count": 1
          },
          {
            "date": "2021-03-09",
            "count": 1
          },
          {
            "date": "2021-03-30",
            "count": 1
          },
          {
            "date": "2021-04-20",
            "count": 1
          },
          {
            "date": "2021-05-18",
            "count": 1
          },
          {
            "date": "2021-06-19",
            "count": 1
          },
          {
            "date": "2021-07-09",
            "count": 1
          },
          {
            "date": "2021-07-11",
            "count": 1
          },
          {
            "date": "2021-07-16",
            "count": 1
          },
          {
            "date": "2021-08-06",
            "count": 1
          },
          {
            "date": "2021-09-30",
            "count": 1
          },
          {
            "date": "2021-11-24",
            "count": 1
          },
          {
            "date": "2022-01-10",
            "count": 1
          },
          {
            "date": "2022-01-18",
            "count": 1
          },
          {
            "date": "2022-02-04",
            "count": 1
          },
          {
            "date": "2022-02-17",
            "count": 1
          },
          {
            "date": "2022-02-18",
            "count": 2
          },
          {
            "date": "2022-03-03",
            "count": 1
          },
          {
            "date": "2022-03-11",
            "count": 1
          },
          {
            "date": "2022-03-17",
            "count": 1
          },
          {
            "date": "2022-04-14",
            "count": 1
          },
          {
            "date": "2022-04-19",
            "count": 1
          },
          {
            "date": "2022-04-21",
            "count": 1
          },
          {
            "date": "2022-04-27",
            "count": 1
          },
          {
            "date": "2022-05-04",
            "count": 1
          },
          {
            "date": "2022-05-05",
            "count": 1
          },
          {
            "date": "2022-05-12",
            "count": 1
          },
          {
            "date": "2022-05-30",
            "count": 1
          },
          {
            "date": "2022-06-01",
            "count": 1
          },
          {
            "date": "2022-06-07",
            "count": 1
          },
          {
            "date": "2022-07-06",
            "count": 1
          },
          {
            "date": "2022-07-09",
            "count": 1
          },
          {
            "date": "2022-08-26",
            "count": 1
          },
          {
            "date": "2022-08-27",
            "count": 1
          },
          {
            "date": "2022-10-21",
            "count": 1
          },
          {
            "date": "2022-11-02",
            "count": 1
          },
          {
            "date": "2022-11-22",
            "count": 1
          },
          {
            "date": "2022-11-24",
            "count": 1
          },
          {
            "date": "2022-12-09",
            "count": 1
          },
          {
            "date": "2022-12-24",
            "count": 1
          },
          {
            "date": "2023-01-04",
            "count": 1
          },
          {
            "date": "2023-01-25",
            "count": 1
          },
          {
            "date": "2023-01-30",
            "count": 1
          },
          {
            "date": "2023-02-11",
            "count": 1
          },
          {
            "date": "2023-02-13",
            "count": 1
          },
          {
            "date": "2023-02-25",
            "count": 2
          },
          {
            "date": "2023-03-03",
            "count": 1
          },
          {
            "date": "2023-04-19",
            "count": 1
          },
          {
            "date": "2023-04-24",
            "count": 1
          },
          {
            "date": "2023-04-28",
            "count": 1
          },
          {
            "date": "2023-05-29",
            "count": 1
          },
          {
            "date": "2023-05-30",
            "count": 1
          },
          {
            "date": "2023-06-05",
            "count": 1
          },
          {
            "date": "2023-06-24",
            "count": 1
          },
          {
            "date": "2023-07-15",
            "count": 1
          },
          {
            "date": "2023-07-21",
            "count": 1
          },
          {
            "date": "2023-07-26",
            "count": 1
          },
          {
            "date": "2023-09-07",
            "count": 1
          },
          {
            "date": "2023-10-02",
            "count": 1
          },
          {
            "date": "2023-10-11",
            "count": 1
          },
          {
            "date": "2023-10-26",
            "count": 1
          },
          {
            "date": "2023-10-27",
            "count": 1
          },
          {
            "date": "2023-11-06",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 1
          },
          {
            "date": "2023-11-18",
            "count": 1
          },
          {
            "date": "2023-11-24",
            "count": 1
          },
          {
            "date": "2023-12-10",
            "count": 1
          },
          {
            "date": "2023-12-19",
            "count": 1
          },
          {
            "date": "2023-12-20",
            "count": 1
          },
          {
            "date": "2024-01-02",
            "count": 1
          },
          {
            "date": "2024-02-22",
            "count": 1
          },
          {
            "date": "2024-02-27",
            "count": 1
          },
          {
            "date": "2024-03-04",
            "count": 2
          },
          {
            "date": "2024-03-13",
            "count": 2
          },
          {
            "date": "2024-03-14",
            "count": 2
          },
          {
            "date": "2024-04-01",
            "count": 1
          },
          {
            "date": "2024-04-10",
            "count": 1
          },
          {
            "date": "2024-05-06",
            "count": 1
          },
          {
            "date": "2024-05-14",
            "count": 2
          },
          {
            "date": "2024-05-19",
            "count": 1
          },
          {
            "date": "2024-06-22",
            "count": 1
          },
          {
            "date": "2024-06-24",
            "count": 1
          },
          {
            "date": "2024-07-08",
            "count": 1
          },
          {
            "date": "2024-07-14",
            "count": 1
          },
          {
            "date": "2024-08-05",
            "count": 1
          },
          {
            "date": "2024-08-06",
            "count": 2
          },
          {
            "date": "2024-08-11",
            "count": 1
          },
          {
            "date": "2024-08-15",
            "count": 1
          },
          {
            "date": "2024-09-03",
            "count": 1
          },
          {
            "date": "2024-09-28",
            "count": 1
          },
          {
            "date": "2024-09-30",
            "count": 1
          },
          {
            "date": "2024-10-07",
            "count": 1
          },
          {
            "date": "2024-11-23",
            "count": 1
          },
          {
            "date": "2024-12-14",
            "count": 1
          },
          {
            "date": "2024-12-27",
            "count": 1
          },
          {
            "date": "2025-01-09",
            "count": 1
          },
          {
            "date": "2025-01-18",
            "count": 1
          },
          {
            "date": "2025-02-22",
            "count": 1
          },
          {
            "date": "2025-02-24",
            "count": 1
          },
          {
            "date": "2025-03-11",
            "count": 1
          },
          {
            "date": "2025-03-14",
            "count": 1
          },
          {
            "date": "2025-03-28",
            "count": 1
          },
          {
            "date": "2025-04-04",
            "count": 1
          },
          {
            "date": "2025-04-18",
            "count": 1
          },
          {
            "date": "2025-05-09",
            "count": 1
          },
          {
            "date": "2025-05-20",
            "count": 1
          },
          {
            "date": "2025-05-21",
            "count": 3
          },
          {
            "date": "2025-05-23",
            "count": 1
          },
          {
            "date": "2025-05-30",
            "count": 1
          },
          {
            "date": "2025-05-31",
            "count": 1
          },
          {
            "date": "2025-06-01",
            "count": 1
          },
          {
            "date": "2025-06-06",
            "count": 1
          },
          {
            "date": "2025-06-24",
            "count": 1
          },
          {
            "date": "2025-06-28",
            "count": 1
          },
          {
            "date": "2025-07-01",
            "count": 1
          },
          {
            "date": "2025-07-26",
            "count": 1
          },
          {
            "date": "2025-09-03",
            "count": 1
          },
          {
            "date": "2025-09-13",
            "count": 1
          },
          {
            "date": "2025-09-15",
            "count": 1
          },
          {
            "date": "2025-09-18",
            "count": 1
          },
          {
            "date": "2025-10-04",
            "count": 1
          },
          {
            "date": "2025-10-07",
            "count": 1
          },
          {
            "date": "2025-10-12",
            "count": 1
          },
          {
            "date": "2025-10-14",
            "count": 1
          },
          {
            "date": "2025-11-02",
            "count": 1
          },
          {
            "date": "2025-11-03",
            "count": 1
          },
          {
            "date": "2025-11-14",
            "count": 1
          },
          {
            "date": "2025-11-16",
            "count": 1
          },
          {
            "date": "2025-11-25",
            "count": 1
          },
          {
            "date": "2025-12-24",
            "count": 1
          },
          {
            "date": "2026-02-22",
            "count": 1
          },
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-04-06",
            "count": 1
          },
          {
            "date": "2026-05-02",
            "count": 1
          },
          {
            "date": "2026-05-28",
            "count": 1
          },
          {
            "date": "2026-06-04",
            "count": 1
          },
          {
            "date": "2026-07-11",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 286,
        "total_stars": 286
      },
      "open_issues_and_prs": 24
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "sample",
        "samples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "ArmPlatformPkg/Scripts/Makefile",
        "BaseTools/GNUmakefile",
        "BaseTools/Makefile",
        "BaseTools/Source/C/BrotliCompress/GNUmakefile",
        "BaseTools/Source/C/BrotliCompress/Makefile",
        "BaseTools/Source/C/Common/GNUmakefile",
        "BaseTools/Source/C/Common/Makefile",
        "BaseTools/Source/C/DevicePath/GNUmakefile",
        "BaseTools/Source/C/DevicePath/Makefile",
        "BaseTools/Source/C/EfiRom/GNUmakefile",
        "BaseTools/Source/C/EfiRom/Makefile",
        "BaseTools/Source/C/GNUmakefile",
        "BaseTools/Source/C/GenCrc32/GNUmakefile",
        "BaseTools/Source/C/GenCrc32/Makefile",
        "BaseTools/Source/C/GenFfs/GNUmakefile",
        "BaseTools/Source/C/GenFfs/Makefile",
        "BaseTools/Source/C/GenFv/GNUmakefile",
        "BaseTools/Source/C/GenFv/Makefile",
        "BaseTools/Source/C/GenFw/GNUmakefile",
        "BaseTools/Source/C/GenFw/Makefile",
        "BaseTools/Source/C/GenSec/GNUmakefile",
        "BaseTools/Source/C/GenSec/Makefile",
        "BaseTools/Source/C/GenStm/GNUmakefile",
        "BaseTools/Source/C/GenStm/Makefile",
        "BaseTools/Source/C/LzmaCompress/GNUmakefile",
        "BaseTools/Source/C/LzmaCompress/Makefile",
        "BaseTools/Source/C/Makefile",
        "BaseTools/Source/C/PyEfiCompressor/Makefile",
        "BaseTools/Source/C/TianoCompress/GNUmakefile",
        "BaseTools/Source/C/TianoCompress/Makefile",
        "BaseTools/Source/C/VfrCompile/GNUmakefile",
        "BaseTools/Source/C/VfrCompile/Makefile",
        "BaseTools/Source/C/VfrCompile/Pccts/Makefile",
        "BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile",
        "BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile",
        "BaseTools/Source/C/VfrCompile/Pccts/support/genmk/makefile",
        "BaseTools/Source/C/VfrCompile/Pccts/support/rexpr/makefile",
        "BaseTools/Source/C/VolInfo/GNUmakefile",
        "BaseTools/Source/C/VolInfo/Makefile",
        "BaseTools/Source/Python/GNUmakefile",
        "BaseTools/Source/Python/Makefile",
        "BaseTools/Tests/GNUmakefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": true,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 698119,
      "source_files_sampled": 5118,
      "oversized_source_files": 235,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 5,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 4,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "antlr4-python3-runtime",
            "direct": false,
            "version": "4.13.2",
            "ecosystem": "pypi"
          },
          {
            "name": "edk2-pytool-extensions",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "edk2-pytool-extensions",
            "direct": false,
            "version": "0.12.*",
            "ecosystem": "pypi"
          },
          {
            "name": "edk2-pytool-library",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "edk2-pytool-library",
            "direct": false,
            "version": "0.10.*",
            "ecosystem": "pypi"
          },
          {
            "name": "lcov-cobertura",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pygount",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.7.10",
            "ecosystem": "pypi"
          },
          {
            "name": "toml",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 9,
        "direct_count": 0,
        "indirect_count": 9
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 10,
        "merged_prs": 1434,
        "open_issues": 14,
        "closed_ratio": 0.894,
        "closed_issues": 118,
        "closed_unmerged_prs": 277
      },
      "bus_factor": 13,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "niruiyu",
          "commits": 1004,
          "avatar_url": "https://avatars.githubusercontent.com/u/8294960?v=4"
        },
        {
          "type": "User",
          "login": "lzeng14",
          "commits": 798,
          "avatar_url": "https://avatars.githubusercontent.com/u/11768286?v=4"
        },
        {
          "type": "User",
          "login": "mdkinney",
          "commits": 782,
          "avatar_url": "https://avatars.githubusercontent.com/u/12265078?v=4"
        },
        {
          "type": "User",
          "login": "lgao4",
          "commits": 696,
          "avatar_url": "https://avatars.githubusercontent.com/u/10111266?v=4"
        },
        {
          "type": "User",
          "login": "jljusten",
          "commits": 654,
          "avatar_url": "https://avatars.githubusercontent.com/u/65927?v=4"
        },
        {
          "type": "User",
          "login": "hwu25",
          "commits": 589,
          "avatar_url": "https://avatars.githubusercontent.com/u/9983480?v=4"
        },
        {
          "type": "User",
          "login": "jljusten2",
          "commits": 522,
          "avatar_url": "https://avatars.githubusercontent.com/u/73260671?v=4"
        },
        {
          "type": "User",
          "login": "ydong10",
          "commits": 508,
          "avatar_url": "https://avatars.githubusercontent.com/u/12068401?v=4"
        },
        {
          "type": "User",
          "login": "dandanbi",
          "commits": 457,
          "avatar_url": "https://avatars.githubusercontent.com/u/12407378?v=4"
        },
        {
          "type": "User",
          "login": "makubacki",
          "commits": 452,
          "avatar_url": "https://avatars.githubusercontent.com/u/21320094?v=4"
        }
      ],
      "contributors_sampled": 98,
      "top_contributor_share": 0.067
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "auto-approve.yml",
        "auto-merge.yml",
        "clangpdb-ci.yml",
        "codeql.yml",
        "file-paths.yml",
        "issue-assignment.yml",
        "label-issues.yml",
        "label-sync.yml",
        "mu-pr-validation-pending.yml",
        "mu-pr-validation-post.yml",
        "mu-pr-validation.yml",
        "pull-request-formatting-validator.yml",
        "regex-pull-requests.yml",
        "release-basetools.yml",
        "release-draft.yml",
        "scheduled-maintenance.yml",
        "stale.yml",
        "triage-issues.yml",
        "update-basetools.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 7,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 8,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "10 out of 10 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 18 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 9,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "18de13ad691dbe878db7d62b1139db7a65d4dbb6",
        "ran_at": "2026-07-22T03:43:59Z",
        "aggregate_score": 6.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T03:09:39Z",
      "oldest_open_prs": [
        {
          "number": 1743,
          "created_at": "2026-04-04T16:12:33Z",
          "last_comment_at": "2026-04-04T16:27:41Z",
          "last_comment_author": "os-d"
        },
        {
          "number": 1799,
          "created_at": "2026-05-15T23:38:56Z",
          "last_comment_at": "2026-07-20T23:51:33Z",
          "last_comment_author": "mu-automation"
        },
        {
          "number": 1809,
          "created_at": "2026-05-28T21:35:26Z",
          "last_comment_at": "2026-07-10T16:45:27Z",
          "last_comment_author": "Javagedes"
        },
        {
          "number": 1819,
          "created_at": "2026-06-10T21:18:28Z",
          "last_comment_at": "2026-06-10T21:47:57Z",
          "last_comment_author": "codecov-commenter"
        },
        {
          "number": 1842,
          "created_at": "2026-07-03T15:15:07Z",
          "last_comment_at": "2026-07-09T15:31:20Z",
          "last_comment_author": "codecov-commenter"
        },
        {
          "number": 1843,
          "created_at": "2026-07-06T23:41:57Z",
          "last_comment_at": "2026-07-06T23:56:20Z",
          "last_comment_author": "apop5"
        },
        {
          "number": 1846,
          "created_at": "2026-07-10T23:47:15Z",
          "last_comment_at": "2026-07-10T23:47:39Z",
          "last_comment_author": "mu-automation"
        },
        {
          "number": 1854,
          "created_at": "2026-07-17T05:11:59Z",
          "last_comment_at": "2026-07-22T02:53:25Z",
          "last_comment_author": "v-boscochen"
        },
        {
          "number": 1855,
          "created_at": "2026-07-21T17:15:09Z",
          "last_comment_at": "2026-07-21T17:50:27Z",
          "last_comment_author": "cfernald"
        },
        {
          "number": 1856,
          "created_at": "2026-07-21T20:43:13Z",
          "last_comment_at": "2026-07-21T22:52:07Z",
          "last_comment_author": "makubacki"
        }
      ],
      "last_merged_pr_at": "2026-07-21T18:33:32Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 489,
          "created_at": "2023-07-13T21:12:31Z",
          "last_comment_at": "2023-07-25T21:37:35Z",
          "last_comment_author": "makubacki"
        },
        {
          "number": 559,
          "created_at": "2023-09-11T19:48:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 560,
          "created_at": "2023-09-11T19:51:16Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 666,
          "created_at": "2024-01-05T20:24:20Z",
          "last_comment_at": "2024-02-19T23:35:37Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1082,
          "created_at": "2024-07-30T23:48:36Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1090,
          "created_at": "2024-08-06T19:12:36Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1341,
          "created_at": "2025-04-24T07:23:31Z",
          "last_comment_at": "2025-07-11T23:37:25Z",
          "last_comment_author": "mu-automation"
        },
        {
          "number": 1462,
          "created_at": "2025-08-06T01:20:34Z",
          "last_comment_at": "2025-09-22T13:42:25Z",
          "last_comment_author": "makubacki"
        },
        {
          "number": 1483,
          "created_at": "2025-08-21T22:25:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1637,
          "created_at": "2026-02-11T21:11:18Z",
          "last_comment_at": "2026-03-29T23:45:47Z",
          "last_comment_author": "mu-automation"
        },
        {
          "number": 1730,
          "created_at": "2026-03-31T18:02:29Z",
          "last_comment_at": "2026-06-30T23:53:45Z",
          "last_comment_author": "mu-automation"
        },
        {
          "number": 1731,
          "created_at": "2026-03-31T18:09:42Z",
          "last_comment_at": "2026-06-30T23:53:44Z",
          "last_comment_author": "mu-automation"
        },
        {
          "number": 1818,
          "created_at": "2026-06-09T00:45:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1826,
          "created_at": "2026-06-18T21:03:41Z",
          "last_comment_at": "2026-06-18T21:09:19Z",
          "last_comment_author": "makubacki"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/microsoft/mu_basecore",
    "host": "github.com",
    "name": "mu_basecore",
    "owner": "microsoft"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 84,
      "inputs": {
        "security": 74,
        "vitality": 95,
        "community": 75,
        "governance": 90,
        "engineering": 80
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 95,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "commits_last_year": 730,
              "human_commit_share": 0.88,
              "days_since_last_push": 0,
              "active_weeks_last_year": 51
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "51/52 weeks with commits",
                "points": 35.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 51
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "730 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 730
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v2025110002.0.12",
              "releases_from_tags": false,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 3.6
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~3.6 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 3.6
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 75,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "forks": 177,
              "stars": 286,
              "watchers": 19,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "286 stars",
                "points": 39.8,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 286
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "177 forks",
                "points": 18.7,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 177
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "19 watchers",
                "points": 7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "excellent",
        "name": "Sustainability & Governance",
        "value": 90,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "excellent",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "bus_factor": 13,
              "contributors_sampled": 98,
              "top_contributor_share": 0.067
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "13 contributor(s) cover half of all commits",
                "points": 54,
                "status": "met",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 13
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 7% of commits",
                "points": 21,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 7
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "98 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 98
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 18 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 89,
            "inputs": {
              "merged_prs": 1434,
              "open_issues": 14,
              "closed_issues": 118,
              "issue_closed_ratio": 0.894,
              "closed_unmerged_prs": 277
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "89% of issues closed",
                "points": 41.8,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 89
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "1434/1711 decided PRs merged",
                "points": 32.1,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1434,
                      "decided": 1711
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "followers": 125580,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "microsoft",
              "public_repos": 8215,
              "account_age_days": 4606
            },
            "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": "125,580 followers of microsoft",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 125580,
                      "login": "microsoft"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "8215 public repos, account ~12 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 8215
                    }
                  },
                  {
                    "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": 80,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "19 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "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": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "10 out of 10 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "firmware",
                "uefi",
                "projectmu",
                "uefi-development"
              ],
              "has_wiki": false,
              "homepage": "https://microsoft.github.io/mu/",
              "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://microsoft.github.io/mu/",
                "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": "4 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "good",
        "name": "Security",
        "value": 74,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 68,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 6.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "10 out of 10 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 18 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 5 resolved dependencies against OSV; 4 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 5
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 4
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 5,
              "unassessed_packages": 4,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 5,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 7
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 60,
        "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": 0.955,
              "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": "84 of 88 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 84,
                      "sampled": 88
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 69,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [
                "ArmPlatformPkg/Scripts/Makefile",
                "BaseTools/GNUmakefile",
                "BaseTools/Makefile",
                "BaseTools/Source/C/BrotliCompress/GNUmakefile",
                "BaseTools/Source/C/BrotliCompress/Makefile",
                "BaseTools/Source/C/Common/GNUmakefile",
                "BaseTools/Source/C/Common/Makefile",
                "BaseTools/Source/C/DevicePath/GNUmakefile",
                "BaseTools/Source/C/DevicePath/Makefile",
                "BaseTools/Source/C/EfiRom/GNUmakefile",
                "BaseTools/Source/C/EfiRom/Makefile",
                "BaseTools/Source/C/GNUmakefile",
                "BaseTools/Source/C/GenCrc32/GNUmakefile",
                "BaseTools/Source/C/GenCrc32/Makefile",
                "BaseTools/Source/C/GenFfs/GNUmakefile",
                "BaseTools/Source/C/GenFfs/Makefile",
                "BaseTools/Source/C/GenFv/GNUmakefile",
                "BaseTools/Source/C/GenFv/Makefile",
                "BaseTools/Source/C/GenFw/GNUmakefile",
                "BaseTools/Source/C/GenFw/Makefile",
                "BaseTools/Source/C/GenSec/GNUmakefile",
                "BaseTools/Source/C/GenSec/Makefile",
                "BaseTools/Source/C/GenStm/GNUmakefile",
                "BaseTools/Source/C/GenStm/Makefile",
                "BaseTools/Source/C/LzmaCompress/GNUmakefile",
                "BaseTools/Source/C/LzmaCompress/Makefile",
                "BaseTools/Source/C/Makefile",
                "BaseTools/Source/C/PyEfiCompressor/Makefile",
                "BaseTools/Source/C/TianoCompress/GNUmakefile",
                "BaseTools/Source/C/TianoCompress/Makefile",
                "BaseTools/Source/C/VfrCompile/GNUmakefile",
                "BaseTools/Source/C/VfrCompile/Makefile",
                "BaseTools/Source/C/VfrCompile/Pccts/Makefile",
                "BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile",
                "BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile",
                "BaseTools/Source/C/VfrCompile/Pccts/support/genmk/makefile",
                "BaseTools/Source/C/VfrCompile/Pccts/support/rexpr/makefile",
                "BaseTools/Source/C/VolInfo/GNUmakefile",
                "BaseTools/Source/C/VolInfo/Makefile",
                "BaseTools/Source/Python/GNUmakefile",
                "BaseTools/Source/Python/Makefile",
                "BaseTools/Tests/GNUmakefile"
              ],
              "has_devcontainer": true,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.04
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "ArmPlatformPkg/Scripts/Makefile, BaseTools/GNUmakefile, BaseTools/Makefile, BaseTools/Source/C/BrotliCompress/GNUmakefile, BaseTools/Source/C/BrotliCompress/Makefile, BaseTools/Source/C/Common/GNUmakefile, BaseTools/Source/C/Common/Makefile, BaseTools/Source/C/DevicePath/GNUmakefile, BaseTools/Source/C/DevicePath/Makefile, BaseTools/Source/C/EfiRom/GNUmakefile, BaseTools/Source/C/EfiRom/Makefile, BaseTools/Source/C/GNUmakefile, BaseTools/Source/C/GenCrc32/GNUmakefile, BaseTools/Source/C/GenCrc32/Makefile, BaseTools/Source/C/GenFfs/GNUmakefile, BaseTools/Source/C/GenFfs/Makefile, BaseTools/Source/C/GenFv/GNUmakefile, BaseTools/Source/C/GenFv/Makefile, BaseTools/Source/C/GenFw/GNUmakefile, BaseTools/Source/C/GenFw/Makefile, BaseTools/Source/C/GenSec/GNUmakefile, BaseTools/Source/C/GenSec/Makefile, BaseTools/Source/C/GenStm/GNUmakefile, BaseTools/Source/C/GenStm/Makefile, BaseTools/Source/C/LzmaCompress/GNUmakefile, BaseTools/Source/C/LzmaCompress/Makefile, BaseTools/Source/C/Makefile, BaseTools/Source/C/PyEfiCompressor/Makefile, BaseTools/Source/C/TianoCompress/GNUmakefile, BaseTools/Source/C/TianoCompress/Makefile, BaseTools/Source/C/VfrCompile/GNUmakefile, BaseTools/Source/C/VfrCompile/Makefile, BaseTools/Source/C/VfrCompile/Pccts/Makefile, BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile, BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile, BaseTools/Source/C/VfrCompile/Pccts/support/genmk/makefile, BaseTools/Source/C/VfrCompile/Pccts/support/rexpr/makefile, BaseTools/Source/C/VolInfo/GNUmakefile, BaseTools/Source/C/VolInfo/Makefile, BaseTools/Source/Python/GNUmakefile, BaseTools/Source/Python/Makefile, BaseTools/Tests/GNUmakefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "ArmPlatformPkg/Scripts/Makefile, BaseTools/GNUmakefile, BaseTools/Makefile, BaseTools/Source/C/BrotliCompress/GNUmakefile, BaseTools/Source/C/BrotliCompress/Makefile, BaseTools/Source/C/Common/GNUmakefile, BaseTools/Source/C/Common/Makefile, BaseTools/Source/C/DevicePath/GNUmakefile, BaseTools/Source/C/DevicePath/Makefile, BaseTools/Source/C/EfiRom/GNUmakefile, BaseTools/Source/C/EfiRom/Makefile, BaseTools/Source/C/GNUmakefile, BaseTools/Source/C/GenCrc32/GNUmakefile, BaseTools/Source/C/GenCrc32/Makefile, BaseTools/Source/C/GenFfs/GNUmakefile, BaseTools/Source/C/GenFfs/Makefile, BaseTools/Source/C/GenFv/GNUmakefile, BaseTools/Source/C/GenFv/Makefile, BaseTools/Source/C/GenFw/GNUmakefile, BaseTools/Source/C/GenFw/Makefile, BaseTools/Source/C/GenSec/GNUmakefile, BaseTools/Source/C/GenSec/Makefile, BaseTools/Source/C/GenStm/GNUmakefile, BaseTools/Source/C/GenStm/Makefile, BaseTools/Source/C/LzmaCompress/GNUmakefile, BaseTools/Source/C/LzmaCompress/Makefile, BaseTools/Source/C/Makefile, BaseTools/Source/C/PyEfiCompressor/Makefile, BaseTools/Source/C/TianoCompress/GNUmakefile, BaseTools/Source/C/TianoCompress/Makefile, BaseTools/Source/C/VfrCompile/GNUmakefile, BaseTools/Source/C/VfrCompile/Makefile, BaseTools/Source/C/VfrCompile/Pccts/Makefile, BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile, BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile, BaseTools/Source/C/VfrCompile/Pccts/support/genmk/makefile, BaseTools/Source/C/VfrCompile/Pccts/support/rexpr/makefile, BaseTools/Source/C/VolInfo/GNUmakefile, BaseTools/Source/C/VolInfo/Makefile, BaseTools/Source/Python/GNUmakefile, BaseTools/Source/Python/Makefile, BaseTools/Tests/GNUmakefile"
                    }
                  }
                ],
                "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": "devcontainer",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "devcontainer"
                    }
                  }
                ],
                "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": "4 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 4,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "primary_language": "C",
              "largest_source_bytes": 698119,
              "source_files_sampled": 5118,
              "oversized_source_files": 235
            },
            "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": "235/5118 source files over 60KB",
                "points": 52.5,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 5118,
                      "oversized": 235
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "sample",
                "samples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "sample, samples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "sample, samples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [],
  "report_type": "repository",
  "generated_at": "2026-07-22T03:44:39.119406Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/m/microsoft/mu_basecore.svg",
  "full_name": "microsoft/mu_basecore",
  "license_state": "custom",
  "license_spdx": null
}

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

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

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