Skip to content

fix(hygiene): sweep clears stale needs-triage + io-triage skips bot-authored issues - #21

Merged
yakimoto merged 1 commit into
mainfrom
fix/hygiene-sweep-unlabel-and-io-bot-skip
Jul 24, 2026
Merged

fix(hygiene): sweep clears stale needs-triage + io-triage skips bot-authored issues#21
yakimoto merged 1 commit into
mainfrom
fix/hygiene-sweep-unlabel-and-io-bot-skip

Conversation

@yakimoto

@yakimoto yakimoto commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Two follow-ups closing out the ticket-hygiene initiative.

1. Sweep clears stale needs-triage (ticket-hygiene.yml)

The daily sweep only ever added needs-triage; it never removed it. After the 100% backfill, items that became fully fielded kept the stale label, so the Triage-health insight chart overcounted. The sweep now also fetches each board item's labels and, when an item is fully fielded (Area and Priority set) but still carries needs-triage, strips the label. Reported in the run summary as cleared the stale label from N now-fully-fielded item(s).

2. io-triage skips bot-authored issues + drops dead PAT (issue-ops-triage.yml) — closes #17

  • Renovate's Dependency Dashboard issue edits fired issue-ops-triage and errored at 0s. Job now guarded with github.event.issue.user.type != 'Bot'.
  • Removed the dead gh_pat: ${{ secrets.ISSUE_OPS_PAT }} input — ISSUE_OPS_PAT is absent org/repo-wide, IO_USE_APP=true uses the App token, and the reusable io-triage.yml marks gh_pat required: false with an apptoken || gh_pat || github.token cascade (verified at the pinned SHA).

Safety

  • Untrusted data (author login, label names) only flows through jq equality checks / a fixed bash case allow-list — never interpolated into a query or shell command.
  • updateProjectV2ItemFieldValue / label edits use parameterized -F variables and the SHA-pinned App token.
  • Validated: YAML parses, jq filter compiles against a fixture, actionlint clean (only pre-existing intentional SC2016 info on GraphQL single-quoted query strings).

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Note

Low Risk
Workflow-only changes to label hygiene and triage guards; no application runtime or auth logic beyond existing GitHub App tokens.

Overview
Issue-ops triage no longer runs on bot-authored issues (github.event.issue.user.type != 'Bot'), avoiding failures when Renovate’s Dependency Dashboard fires edited events (#17). The unused gh_pat / ISSUE_OPS_PAT secret input was removed in favor of the existing App-token path in the reusable workflow.

The daily ticket-hygiene sweep now loads issue labels and treats fully fielded board items that still have needs-triage as candidates for cleanup. For those items it removes the stale label (instead of only ever adding it), and the step summary reports how many were cleared so Triage-health metrics stop overcounting.

Reviewed by Cursor Bugbot for commit 0c15182. Configure here.


Summary by cubic

Improves ticket hygiene automation: the daily sweep now clears stale needs-triage labels once items are fully fielded, and issue-ops-triage skips bot-authored issues to avoid noisy failures. Also removes the unused gh_pat input in favor of the App token.

Written for commit 0c15182. Summary will update on new commits.

Review in cubic

…uthored issues

ticket-hygiene sweep now removes the needs-triage label from items that have
become fully fielded (Area+Priority set) since the label was applied — it only
ever added it before, so the Triage-health chart overcounted. Fetches issue
labels in the board query and strips the stale label on a fully-fielded item.

issue-ops-triage skips bot-authored issues (Renovate Dependency Dashboard edits
errored triage at 0s, #17) and drops the dead ISSUE_OPS_PAT secret input (absent
org/repo-wide; App token is the live path, reusable workflow marks gh_pat optional).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jul 24, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 0c15182

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@cursor

cursor Bot commented Jul 24, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_beaa9d14-6396-445d-8cde-452d5c92eef0)

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 23 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c39d25ab-8a2b-4b89-a1de-38492b9aebba

📥 Commits

Reviewing files that changed from the base of the PR and between f30f8a4 and 0c15182.

📒 Files selected for processing (2)
  • .github/workflows/issue-ops-triage.yml
  • .github/workflows/ticket-hygiene.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/hygiene-sweep-unlabel-and-io-bot-skip
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch fix/hygiene-sweep-unlabel-and-io-bot-skip

Comment @coderabbitai help to get the list of available commands.

@yakimoto
yakimoto merged commit f7d69b7 into main Jul 24, 2026
11 checks passed
@yakimoto
yakimoto deleted the fix/hygiene-sweep-unlabel-and-io-bot-skip branch July 24, 2026 03:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] io-triage fails on Renovate Dependency Dashboard edits (+ dead ISSUE_OPS_PAT input)

1 participant