ci(prose-body): repin to the release that has it - #89
Conversation
Both prose-body workflows have failed on every run since they landed, six in a row, because v0.4.0 does not contain the reusable workflows they call. They exist on the default branch, which is where I read them and where the README documents them -- using v0.4.0 in its own examples -- but the tag ships neither. v0.5.0 is the first release that carries them. Verified at the tag rather than inferred from it being newest: both files are present, neither declares a required input, unwrap-pr-body-check still accepts pull_request_target, and neither contains actions/checkout, which is the property that makes pull_request_target safe here. Nothing caught this. A reusable workflow that cannot be resolved fails the run before any job starts, and a run with no jobs contributes no check, so the failures never appeared on a pull request -- not even the one that added them, which went through review convergence. Both files now carry that reasoning. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #89 +/- ##
==========================================
+ Coverage 51.52% 51.57% +0.04%
==========================================
Files 31 31
Lines 2092 2092
==========================================
+ Hits 1078 1079 +1
+ Misses 1014 1013 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can reply 'qodo' on any finding to push back, ask questions, or dig deeper |
PR Summary by QodoRepin prose-body workflows to available v0.5.0 definitions
AI Description
Diagram
High-Level Assessment
Files changed (2)
|
Co-authored-by: Michael I Chen <michael.chen@aicadium.ai> Signed-off-by: Michael I Chen <michael.chen@aicadium.ai>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #89 +/- ##
==========================================
+ Coverage 51.52% 51.57% +0.04%
==========================================
Files 31 31
Lines 2092 2092
==========================================
+ Hits 1078 1079 +1
+ Misses 1014 1013 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Both prose-body workflows have failed on every run since they landed in #85 — six consecutive failures — because
v0.4.0does not contain the reusable workflows they call.What went wrong
I read
unwrap-pr-body-check.ymlandunwrap-pr-body.ymlfrom the default branch (gh api contents/...with no?ref=), then pinned@v0.4.0because that was the newest release, and never checked the files were in it. They are not:unwrap-pr-body-check.ymlv0.4.0(then-latest release)v0.3.0mainThe upstream README makes that easy to walk into: its PR-body section uses
@v0.4.0in every example, but thev0.4.0README does not mention those workflows at all — 0 occurrences there against 3 onmain. They were unreleased, documented as released.Why nothing caught it
A reusable workflow that cannot be resolved fails the run before any job starts. A run with no jobs contributes no check run, so the failures never appeared on any pull request — including #85, the one that added them, which went through full review convergence with two bot reviewers. They were visible only in the Actions tab.
That is the part worth recording, and both files now carry it:
jobs=0is the signature, and "the workflow stopped failing" is not the same evidence as "the workflow ran".The fix
v0.5.0is the first release carrying them. Verified at the tag rather than inferred from it being newest:v0.5.0;unwrap-pr-body-check.ymlstill acceptspull_request_target, whichprose-body.ymlrelies on for fork coverage;unwrap-pr-body.ymlstill requirespull_request_target, whichprose-body-write.ymluses;actions/checkout— the property that makes handingpull_request_targeta writable token safe here. That was verified againstmainwhen the trigger was chosen; it has now been re-verified at the ref that actually runs.Test plan
actionlintclean,yamllintclean,make checkgreen.The real check is post-merge and is deliberately not "no longer red":
prose-body.ymltriggers onpull_request_targetforsynchronizeandedited, so the next push to an open PR should produce a run reachingjobs≥1. A run that merely stops failing while still reportingjobs=0would mean the pin is still unresolvable.prose-body-write.ymltakes effect only frommain, sincepull_request_targetreads the workflow from the default branch — so it cannot be exercised by this PR.Not included
The
.pre-commit-config.yamlhook pin (markdown-prose-hooks-py, currentlyv0.4.0) is left alone. Thev0.5.0mirror tag exists, but pre-commit.ci autoupdate maintains that pin on its own schedule and bumping it here would collide with its next PR. That hook has been working throughout — it is a separate mechanism from the reusable workflows.🤖 Generated with Claude Code