v7.11.0
- Breaking:
labels.content-rulesandlabels.file-rulesare now tables mapping each label to its patterns, like"📚 docs" = ["docs/**"]. The array-of-tables form and itsactions/labelerv5 matcher schema are gone; an un-migrated config is ignored with a warning. - Breaking: the
file-labellerandcontent-labellerjobs merged into a singleapply-labelsjob. Update any required check orneeds:edge naming them. - Breaking:
repomatic initandrepomatic workflow linttake--upstream-repofor the upstream toolkit;--reponow means theowner/nameslug everywhere, including onsync-labels. - New
pr-synccommand replacingpeter-evans/create-pull-requestin every job: opens, refreshes or retires an automation PR from one--templateflag. Its PR closes even when the job'sif:gate skips the rest of the step. - New
lock-threadscommand replacingdessant/lock-threadsin the autolock job. It skips threads carrying the🤖 cilabel, so an issue repomatic maintains is no longer locked out of reopening when its condition recurs. - New
apply-labelscommand replacingactions/labelerandgithub/issue-labelerin the labeller job. A rule's entry overrides the bundled default for that label, and an empty list disables it. - The debug job's context dump no longer runs
crazy-max/ghaction-dump-context, and no longer installscgroup-toolsandcpuidto read them. It now reports the kernel, disk, CPU and memory of every runner using only what the image already ships. - A bare content pattern is now a keyword, matched case-insensitively on word boundaries, so
"🐛 bug" = ["bug", "error"]works as written; the/…/flagsform passes a regex through. Keyword lists used to be AND-joined and never fired. repomatic init labelsno longer writes.github/labeller-content-based.yamlor.github/labeller-file-based.yaml: the default rules live in the package, andrepomatic initnow prunes an unmodified committed copy automatically. Move customizations to[tool.repomatic.labels]; a hand-edited copy is left for review instead of deleted.- The
sponsor-labelcommand now applies the💖 sponsorlabel the registry defines, instead of a plural variant that exists in no repository and failed every labelling attempt. pr-syncnow clears a conversation lock standing in the way of retiring a stale automation PR, instead of dying on the refused close comment.sync-labelsnow hands labelmaker the canonical token (REPOMATIC_PAT, thenGH_TOKEN, thenGITHUB_TOKEN), so an environment carrying only the PAT syncs authenticated.- Every re-lock (
sync-dep-sources,audit --fix) now passes the project's own[tool.uv] exclude-newerexplicitly, so CI's ambientUV_EXCLUDE_NEWERcan no longer retime the lock. lint-reponow runs the branch-ruleset and immutable-releases checks it already defined but never invoked.apply-labelsno longer applies💖 sponsorfrom the words "funding" or "sponsor", or from a pull request touching.github/funding.yml: onlysponsor-labelsets it, from actual sponsorship.- Every
ghcall now runs the registry-pinned, checksum-verified binary, falling back to$PATHwith a warning when it cannot be installed. - Test jobs running an unreleased Python are now titled
py3.15-dev, so acontinue-on-errorcell states why it is allowed to fail.
Full changelog: v7.10.0...v7.11.0