refactor: use Renovate's copier manager for template updates - #118
Conversation
|
Warning Review limit reached
Next review available in: 23 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
37fab8a to
fcee502
Compare
Replace the bespoke copier-update.yml workflow (from #110) with Renovate's built-in copier manager, which the template already depends on for every other update. Renovate's App token can push .github/workflows/* (a plain GITHUB_TOKEN cannot), so no per-repo COPIER_UPDATE_TOKEN is needed, and template-update PRs flow through the same dashboard/labels/review as all other updates. Two supporting changes make the hosted Renovate App able to run copier update: - Remove `_tasks: git init` from copier.yml. Any task marks the template "unsafe" and forces `copier --trust`, which the hosted Mend Renovate App disables (allowScripts is self-hosted-only) — so a task-bearing template breaks the copier manager. The template now generates without --trust; the scaffold docs tell the user to run `git init`. - Keep the template's own release-please as the tag source: the copier manager is tag-based (git-tags datasource), not HEAD-based. Rewrote ADR-015 for this decision (bespoke workflow, fohte's action, and HEAD-tracking recorded as considered-and-rejected). Updated CLAUDE.md, README, and the generated CONTRIBUTING.md "Template updates" note (incl. the renovate#31600 conflict-marker caveat). Verified: template renders without --trust; docs pass markdownlint.
fcee502 to
2f7cf01
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 37fab8ac17
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Summary
Replaces the bespoke
copier-update.ymlworkflow from #110 with Renovate's built-incopiermanager — the template already depends on Renovate for every other update, so this unifies template updates into the same mechanism instead of shipping a custom workflow + a per-repo update token to every generated project.Rationale and rejected alternatives are in ADR-015.
Why Renovate over the bespoke workflow
.github/workflows/*— a plainGITHUB_TOKENcannot, which forced the old workflow to require aCOPIER_UPDATE_TOKENPAT for the common case.Supporting changes (make the hosted App able to run
copier update)_tasks: git initfromcopier.yml. Any task marks the template "unsafe" → forcescopier --trust, which the hosted Mend Renovate App disables (allowScriptsis self-hosted-only). The template now renders without--trust; scaffold docs tell the user togit init.git-tagsdatasource), not HEAD-based.Docs
fohte/copier-update-action, and HEAD-tracking recorded as considered-and-rejected).CLAUDE.md,README.md(+ agit initscaffold step), and the generatedCONTRIBUTING.md"Template updates" note — including the renovate#31600 caveat that Renovate can land copier PRs with unresolved conflict markers, so they need review.Verification
--trust(proves no unsafe features) — exit 0copier-update.ymlshipped; no auto-git initCONTRIBUTING.mdrenders items 8/9/10 correctly (minimal + web variants)Note
The template's release-please stays; the open
release 1.0.0PR (#117) is the first tag Renovate will key off. (Merge as-is for v1.0.0, or add arelease-asoverride for a0.xstart.)