chore: Re-apply the repo-ci-baseline Template for the release-post fixes - #255
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LiSLjmGJYMzJUH9kM6FyaF
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
Review effort: Lite
Findings: None
What changed in this PR
Re-applies the repo-ci-baseline template changes to fix Markdown sanitization edge-cases in release post generation so PR descriptions render consistently without unintended escaping or structure changes.
Changes:
- Improves Markdown block and inline parsing to better match CommonMark behavior (fences, indented code joining, link label/destination handling).
- Adds handling to preserve angle-bracket link destinations by converting them to equivalent bare destinations with percent-encoding.
- Expands the unit test suite to cover the previously failing sanitization cases and new linear-time parsing shapes.
| File | Description |
|---|---|
| .github/scripts/release_post.py | Updates the sanitizer/block scanner to correctly handle backtick fences, indented code joining inside containers, link label parsing, and <destination> normalization. |
| .github/scripts/tests/test_release_post.py | Adds/adjusts tests for the new sanitizer behaviors (angle destinations, quoted indented code, fence-vs-span ambiguity, excerpt logic, and linear-time guarantees). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #255 +/- ##
=======================================
Coverage 85.42% 85.42%
=======================================
Files 117 117
Lines 2717 2717
Branches 387 387
=======================================
Hits 2321 2321
Misses 318 318
Partials 78 78 🚀 New features to boost your workflow:
|
Test Results Summary880 tests 874 ✅ 1m 48s ⏱️ Results for commit d58ca6a. |
Automated release blog posts for #255, opened by the release workflow. It holds every Release whose post isn't on main yet, rebuilt from main on each run. The [skip-release] title marker keeps its merge from starting another release. Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Requested by Matthew · project thread
Why
Before:
.github/scripts/release_post.pycould change what a PR description says in its release post. Some examples:Text ](x "")came out with<inside its backticks.```List<T>```became an emptyListfence.[x](<docs/a.md>)became a broken<link.>line, became two fences.<T> is ...lost its release-card excerpt.Copilot found these on the pnpm re-Apply PRs.
After: release posts keep that text as written. The link-scheme and HTML checks are unchanged.
What changed
apply.shoutput from the repo-ci-baseline Template after mpaulosky/dotfiles#70 (chore: apply repo-ci-baseline Template). It changes only.github/scripts/release_post.pyand.github/scripts/tests/test_release_post.py.Verification
scripts/gate.shpassed lint, the Release build, Api.Tests.Integration and Api.Tests.Unit, then stopped at AppHost.Tests.E2E, which needs the Auth0 secrets CI has ("Auth0 configuration is missing" locally). The remaining projects passed when run on their own: Architecture.Tests, Shared.Tests.Unit, Web.Tests.Unit and Web.Tests.Bunit..github/scripts/testspassed (469 tests).🤖 Generated with Claude Code
https://claude.ai/code/session_01LiSLjmGJYMzJUH9kM6FyaF
Generated by Claude Code