ci: label pull requests by type and close stale needs-info issues - #113
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
lidge-jun
force-pushed
the
codex/pr-lifecycle-hygiene
branch
from
September 9, 2026 15:34
262b383 to
e4825ce
Compare
Two low-cost lifecycle automations ported from opencodex:
- pr-labeler.yml + .github/scripts/pr-labeler.{cjs,test.cjs}: sync a
type label (enhancement/bug/documentation/chore) from the
conventional-commit PR title, falling back to commit messages for
titles that do not classify. A human label change is a sticky
override the bot never reverts. Trusted default-branch script under
pull_request_target; creates missing managed labels itself.
- stale-needs-info.yml: scheduled actions/stale over needs-info issues
only (PRs excluded), 14-day warn, 7-day close as not_planned, any
update resets the clock. Schedule-only trigger; the stale label is
auto-created.
Both workflows activate on promotion to the default branch (main):
pull_request_target and schedule load from main, so landing on dev
alone changes no live behavior.
Suite: 2773 tests, 0 fail (24 new labeler tests wired into npm test);
inventory and README badges republished; gate OK; actionlint clean.
lidge-jun
force-pushed
the
codex/pr-lifecycle-hygiene
branch
from
September 9, 2026 15:40
e4825ce to
3fe44dc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two low-cost lifecycle automations ported from opencodex, per dev-devops repo-bootstrap/agent-intake direction for an agent-PR-heavy repository.
PR Labeler (
pr-labeler.yml+.github/scripts/pr-labeler.{cjs,test.cjs})enhancement/bug/documentation/chore) from the conventional-commit PR title, falling back to the PR's commit messages when the title does not classify (stack 3/5: ...).pull_request_targetwith the script checked out from the trusted default branch,persist-credentials: false, SHA-pinned actions (checkout v7, github-script v9 — the pins this repo already uses).choredoes not exist yet here).npm test.Stale needs-info (
stale-needs-info.yml)actions/stale(pinned v10.4.0) overneeds-infoissues only: 14-day warn, 7-day close as not_planned, any update resets the clock. PRs are excluded entirely. Schedule-only trigger; thestalelabel is auto-created.Activation caveat
Both workflows load from the default branch (
main):pull_request_targetandscheduleignoredev. Merging this PR intodevchanges no live behavior until promotion — the PR is the review surface, not the activation.Merge-order note
Independent of #111 (branch cleanup) and #112 (release hardening) by file, but #111 also touches the
package.jsontest line and the README test-count badges. Whichever of #111/this PR lands second needs a one-line rebase: re-add its test path and re-runinventory.mjs --write --tests <remeausured>. Flagged here so it does not read as drift.Verification
node --test .github/scripts/pr-labeler.test.cjs— 24/24 pass.CODEXCLAW_SKIP_REPOMAP_SMOKE=1 npm test): 2773 tests, 0 fail; badges/inventory republished to 2773.gate.mjsOK;actionlintclean on both workflows.