Skip to content

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

Merged
mchmarny merged 4 commits into
mainfrom
fix/issue-area-auto-labeling
Apr 14, 2026
Merged

fix(ci): auto-label new issues by area and assign owners#535
mchmarny merged 4 commits into
mainfrom
fix/issue-area-auto-labeling

Conversation

@yuanchen8911

@yuanchen8911 yuanchen8911 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

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

github-actions Bot commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

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 4 times, most recently from 48ac1e0 to 49a8a2f Compare April 13, 2026 18:40
@yuanchen8911 yuanchen8911 requested a review from dims April 13, 2026 23:03
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch from 49a8a2f to 33eb7d8 Compare April 13, 2026 23:31

@mchmarny mchmarny left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 nit, otherwise LGTM

Comment thread .settings.yaml Outdated
@yuanchen8911 yuanchen8911 requested a review from mchmarny April 14, 2026 01:17
@yuanchen8911 yuanchen8911 force-pushed the fix/issue-area-auto-labeling branch from a009f5e to 9728240 Compare April 14, 2026 01:18
@mchmarny mchmarny merged commit e2586f0 into main Apr 14, 2026
20 of 23 checks passed
@mchmarny mchmarny deleted the fix/issue-area-auto-labeling branch April 14, 2026 08:27
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