fix(labeler): give each C-* label a single automation owner - #61
fix(labeler): give each C-* label a single automation owner#61WomB0ComB0 wants to merge 2 commits into
Conversation
CodeRabbit follow-up: C-Documentation, C-Testing, and C-Chore were applied by BOTH the path labeler (.github/labeler.yml) and the conventional-title labeler. Because the path labeler runs actions/labeler with sync-labels:true, a later `synchronize` event removes any label defined in labeler.yml whose globs no longer match — clobbering a title-applied C-* label. Resolve the two-owner conflict by scoping each family to one owner: - .github/labeler.yml: drop the C-Documentation / C-Testing / C-Chore path rules. The path labeler now owns only area/scope labels (A-*, pkg:*), which it applies exclusively, so sync-labels:true can never strip a change-type label another workflow set. - .github/workflows/conventional-title-labeler.yml: the title labeler is now the sole owner of the change-type C-* labels, so its convergence set covers all seven (feat/fix/perf/docs/refactor/test/chore) and it can remove the stale one on a retitle without racing the path labeler. labels.yml still defines all C-* labels (used by the title labeler and release.yml categories). YAML parses clean under js-yaml; no literal tabs.
|
Warning Review limit reached
Next review available in: 34 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
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 |
Summary
Fast-follow to #60. That PR squash-merged before this refinement could be pushed to its branch, so it lands here.
CodeRabbit flagged a two-owner conflict on the shared change-type labels:
C-Documentation,C-Testing, andC-Chorewere applied by both the path labeler (.github/labeler.yml) and the conventional-title labeler. Because the path labeler runsactions/labelerwithsync-labels: true, a latersynchronizeevent removes any label defined inlabeler.ymlwhose globs no longer match the PR's files — clobbering a title-appliedC-*label (actions/labelerdoes not distinguish who applied a configured label).Fix — one automation owner per label family
.github/labeler.yml— drop theC-Documentation/C-Testing/C-Chorepath rules. The path labeler now owns only area/scope labels (A-*,pkg:*), which it applies exclusively, sosync-labels: truecan never strip a change-type label another workflow set. Change-type classification is driven by the conventional title, which is the authoritative signal for the release-note categories in.github/release.yml..github/workflows/conventional-title-labeler.yml— the title labeler is now the sole owner of the change-typeC-*labels, so its convergence set covers all seven types (feat/fix/perf/docs/refactor/test/chore). On a retitle it removes the stale change-type label and adds the current one, with no path labeler racing it..github/labels.ymlis unchanged and still defines everyC-*label (used by the title labeler and byrelease.ymlcategories).Test plan
.github/labeler.ymland.github/workflows/conventional-title-labeler.ymlparse cleanly (js-yaml); no literal tabs.labeler.yml(nowA-*/pkg:*only) and byrelease.ymlis defined inlabels.yml.feat:->fix:and confirm only the currentC-*remains, and that adocs:-titled PR keepsC-Documentationacrosssynchronizeevents.