Skip to content

fix(ci): auto-label new issues by area and assign owners#535

Open
yuanchen8911 wants to merge 1 commit intomainfrom
fix/issue-area-auto-labeling
Open

fix(ci): auto-label new issues by area and assign owners#535
yuanchen8911 wants to merge 1 commit intomainfrom
fix/issue-area-auto-labeling

Conversation

@yuanchen8911
Copy link
Copy Markdown
Contributor

@yuanchen8911 yuanchen8911 commented Apr 10, 2026

Summary

Automatically infer and apply area/* labels for newly opened issues, assign the configured area owners, and keep manual triage for ambiguous component selections. Also harden assignee normalization when reading .settings.yaml.

Motivation / Context

On main, the triage workflow adds needs-triage when an issue is opened, but area labels and assignees are only applied after a maintainer later adds an area/* label. That leaves straightforward, template-driven issues sitting in manual triage longer than necessary.

This change automates the common case by inferring the area from issue metadata and applying the configured owner immediately, while still preserving manual triage for cross-cutting or unknown issues.

Fixes: N/A
Related: N/A

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • Build/CI/tooling

Component(s) Affected

  • Other: .github/workflows/triage.yaml

Implementation Notes

Inference chain (stops at the first match):

  1. Existing area/* label already on the issue
  2. Component dropdown from the issue template
  3. Existing documentation label
  4. Conventional commit scope in the title (for example, fix(bundler): ...)
  5. Title keyword matching
  6. Body keyword matching

Ambiguous component handling: Template dropdown values such as Multiple components, New component, and Other / Unknown intentionally stop inference and keep needs-triage for manual review.

Assignee normalization: Assignee values loaded from .settings.yaml are trimmed, unquoted, split on commas, filtered for empty entries, and deduplicated before calling addAssignees.

Testing

Verified by opening issues from the current templates and checking the resulting labels/assignees:

  • Templated single-area issues received the expected area/* label and configured assignee(s)
  • Ambiguous component selections stayed in needs-triage
  • Existing documentation labels mapped to area/docs
  • Duplicate or comma-separated assignee values are normalized before assignment

Also verified workflow syntax via CI (Lint Workflows) and full PR checks.

Risk Assessment

  • Low — CI-only workflow change affecting issue triage automation

Rollout notes: N/A

Checklist

  • Tests pass locally (make test with -race)
  • Linter passes (make lint)
  • I did not skip/disable tests to make CI green
  • I added/updated tests for new functionality
  • I updated docs if user-facing behavior changed
  • Changes follow existing patterns in the codebase
  • Commits are cryptographically signed (git commit -S)

@yuanchen8911 yuanchen8911 requested a review from a team as a code owner April 10, 2026 17:27
@github-actions github-actions bot added size/M and removed bug labels Apr 10, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 10, 2026

Coverage Report ✅

Metric Value
Coverage 74.5%
Threshold 70%
Status Pass
Coverage Badge
![Coverage](https://img.shields.io/badge/coverage-74.5%25-green)

No Go source files changed in this PR.

ayuskauskas
ayuskauskas previously approved these changes Apr 10, 2026
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch from b03249b to f5abe80 Compare April 10, 2026 17:56
@github-actions github-actions bot added size/L and removed size/M labels Apr 10, 2026
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch from 6f86dfe to 0fe5f05 Compare April 10, 2026 22:29
@yuanchen8911 yuanchen8911 added the run-gpu-tests Trigger GPU CI tests on PR label Apr 11, 2026
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch from 0fe5f05 to b466470 Compare April 11, 2026 01:27
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch from b466470 to 95bbc52 Compare April 11, 2026 03:25
@mchmarny mchmarny removed the bug label Apr 11, 2026
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch from 95bbc52 to 1c802d8 Compare April 11, 2026 14:49
@yuanchen8911 yuanchen8911 requested a review from a team as a code owner April 11, 2026 14:49
@yuanchen8911 yuanchen8911 removed the run-gpu-tests Trigger GPU CI tests on PR label Apr 11, 2026
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch from 1c802d8 to 3ad94d0 Compare April 11, 2026 14:53
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch 2 times, most recently from a75eed1 to dfba318 Compare April 11, 2026 15:08
@yuanchen8911 yuanchen8911 changed the title fix(ci): infer area labels for new issues fix(ci): infer area labels and auto-assign for new issues Apr 11, 2026
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch 3 times, most recently from c8645ff to 8963c23 Compare April 11, 2026 15:25
@yuanchen8911 yuanchen8911 changed the title fix(ci): infer area labels and auto-assign for new issues fix(ci): auto-label new issues by area and assign owners Apr 11, 2026
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch from 8963c23 to 769fb20 Compare April 11, 2026 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants