Skip to content

docfx.yaml: feed back coverage-trend + SHA-pinning + checkout@v7 (downstream → canonical) - #425

Merged
Chris-Wolfgang merged 4 commits into
mainfrom
feedback/docfx-coverage-trend-sha-pin
Jun 27, 2026
Merged

docfx.yaml: feed back coverage-trend + SHA-pinning + checkout@v7 (downstream → canonical)#425
Chris-Wolfgang merged 4 commits into
mainfrom
feedback/docfx-coverage-trend-sha-pin

Conversation

@Chris-Wolfgang

Copy link
Copy Markdown
Owner

Why

A fleet docfx drift-scan found downstream repos' docfx.yaml were ahead of repo-template canonical, not behind. The canonical here was the stale one. This promotes the most advanced downstream version (String-Extensions, 685 lines) so future syncs propagate the improvements up across the fleet instead of reverting them.

What canonical was missing (now added)

Improvement Detail
Coverage trend (T1, #65) ReportGenerator now renders a historical line chart: prior coverage/history/* snapshots are restored from gh-pages before generating, and re-published, so the trend accumulates across releases instead of resetting each deploy. Best-effort (continue-on-error).
SHA-pinned actions (S2 hardening) actions/checkout and actions/setup-dotnet pinned to commit SHA with a # v7 / # v5 comment, preventing tag-hijack supply-chain attacks.
actions/checkout@v7 (via the SHA pin) — canonical was on @v6.

All other content is identical to the current canonical (overlay-canonical-docs-assets, inline-HTML root redirect, etc.). The file is repo-agnostic (keys off $env:GITHUB_REPOSITORY), verified byte-identical to String-Extensions' working docfx.yaml.

Fleet effect

After this merges, the ~9 repos currently at 663-line docfx.yaml (DbContextBuilder, ETL-*, IEquatable, etc.) will read as "behind canonical" — correctly — and pick up the coverage-trend + SHA-pinning on their next template sync. Convergence is upward.

Not in scope

Protected file → admin-bypass merge

Touches .github/workflows/docfx.yaml.

… coverage-trend

main moved ahead via the github-actions Dependabot group bump
(checkout@v6→v7, setup-dotnet kept @v5, floating tags). The original
feed-back branch also SHA-pinned those actions, which conflicts with
the floating-tag convention Dependabot just reaffirmed on main.

Resolution: take main's docfx.yaml verbatim (floating @v7/@v5) and
splice in ONLY the uncontested improvement — the coverage-trend block
(T1 #65: restore prior coverage/history snapshots from gh-pages, pass
-historydir so ReportGenerator renders the historical chart, re-deploy
the accumulated history). Dropped the SHA-pinning change; whether to
SHA-pin actions fleet-wide is a separate S2-hardening decision, not
something this docs-feature PR should force.
@Chris-Wolfgang
Chris-Wolfgang merged commit c917f31 into main Jun 27, 2026
4 checks passed
@Chris-Wolfgang
Chris-Wolfgang deleted the feedback/docfx-coverage-trend-sha-pin branch June 27, 2026 19:34
This was referenced Jun 30, 2026
Chris-Wolfgang added a commit to Chris-Wolfgang/DbContextBuilder that referenced this pull request Jun 30, 2026
## Summary

Syncs `.github/workflows/docfx.yaml` to the current canonical
repo-template version. This is a generic workflow (repo name
auto-derived from the GitHub context — no per-repo placeholders), so it
is a straight overwrite.

Brings the recent canonical fixes:
- **first-deploy guard** — don't fail the first docs deploy when
gh-pages serves a 200 placeholder / non-JSON
(Chris-Wolfgang/repo-template#421)
- coverage-trend into the docs site, SHA-pinned third-party actions,
`actions/checkout@v7` (Chris-Wolfgang/repo-template#425)
- plus the full current docs tooling (versions.json preservation, dev/
keep-list, version-picker overlay).

Protected file — needs a maintainer admin-bypass merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant