rig/.github/labeler.yml
dan-claude-bot 7109bb39d8 feat: label automation — the state reconciler, path-scoped labeler, and CONTRIBUTING
The machinery LABELS.md promised. labels.yml runs the reconciler on a
15-minute cron plus PR events (pull_request_target — every PR here is from a
fork, where pull_request gets a read-only token; no PR code is ever checked
out). The script derives each open PR's state:* from GitHub's own facts and
converges labels statelessly; stale is judged from real activity (commits,
comments, reviews), never label churn, so the sweep cannot un-stale its own
mark. actions/labeler applies scope:* from changed paths. CONTRIBUTING.md is
the guideline: the PR loop, and who sets which labels. Rehearsed with
DRY_RUN=1 against the live repo; shellcheck-clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 18:31:53 +00:00

23 lines
875 B
YAML

# path → scope:* map for actions/labeler — the PR half of LABELS.md's scope
# story (issues are hand-scoped at triage; paths only exist on PRs). Additive
# only: sync-labels stays off in labels.yml, so a hand-applied scope survives.
"scope:bootstrap":
- changed-files:
- any-glob-to-any-file: ["commands/bootstrap.sh"]
"scope:users":
- changed-files:
- any-glob-to-any-file:
["commands/users-*.sh", "commands/lib/users-config.sh"]
"scope:runner":
- changed-files:
- any-glob-to-any-file:
["commands/runner-*.sh", "commands/lib/runner-config.sh"]
"scope:coolify":
- changed-files:
- any-glob-to-any-file: ["commands/coolify-*.sh"]
"scope:db":
- changed-files:
- any-glob-to-any-file: ["commands/db.sh", "test/db-integration.sh"]
"scope:installer":
- changed-files:
- any-glob-to-any-file: ["install.sh"]