Skip to content

chore: Update CODEOWNERS#2791

Open
flashinfer-bot wants to merge 1 commit intomainfrom
auto-update-codeowners
Open

chore: Update CODEOWNERS#2791
flashinfer-bot wants to merge 1 commit intomainfrom
auto-update-codeowners

Conversation

@flashinfer-bot
Copy link
Copy Markdown
Collaborator

@flashinfer-bot flashinfer-bot commented Mar 16, 2026

Summary

This PR updates the CODEOWNERS file based on git commit history analysis from the last 180 days.

Changes

  • Updated .github/CODEOWNERS with current code ownership based on:
    • Commit frequency
    • File coverage
    • Commit recency
    • Manual overrides from scripts/codeowner_overrides.json

How to Review

  1. Review the changes to .github/CODEOWNERS
  2. Verify that the assigned owners are appropriate for each module
  3. Make manual adjustments if needed before merging

Notes

  • This is an automated PR generated weekly
  • Minimum commits threshold: 1
  • Analysis period: 180 days
  • Directory depth: 3 levels
  • Top N owners per module: 5

🤖 This PR was automatically generated by the update-codeowners workflow

Summary by CodeRabbit

  • Chores
    • Restructured code ownership configuration with automated generation and team-based ownership assignments for improved code review management.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request automates the weekly update of the .github/CODEOWNERS file to ensure that code ownership accurately reflects current contributions and responsibilities across various modules. The changes are derived from an analysis of recent commit history, considering factors like commit frequency, file coverage, and recency, with manual overrides applied. This process aims to streamline the review workflow by assigning the most relevant individuals or teams to code changes.

Highlights

  • Automated CODEOWNERS Update: The .github/CODEOWNERS file has been automatically updated based on an analysis of the last 180 days of commit history.
  • Ownership Adjustments: Ownership for several paths, including benchmarks/, flashinfer/, flashinfer/jit/, and tests/attention/, has been adjusted to reflect current contributions.
  • New Path Ownership: New ownership entries were added for flashinfer/norm/, flashinfer/norm/kernels/, and tests/autotuner/.
  • Analysis Criteria: The updates consider commit frequency, file coverage, commit recency, and manual overrides, with a minimum commit threshold of 1 and a maximum of 5 owners per module.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .github/CODEOWNERS
    • Updated owners for benchmarks/ and benchmarks/routines/ paths, including the addition of @jiahanc and reordering of existing owners.
    • Modified owners for the flashinfer/ path, replacing @kahyunnam with @aleozlx.
    • Adjusted owners for flashinfer/jit/, flashinfer/jit/attention/, and flashinfer/jit/gemm/ paths, including the addition of @aleozlx and reordering of existing owners.
    • Added new ownership entries for flashinfer/norm/ and flashinfer/norm/kernels/ with @yzh119 as the owner.
    • Updated owners for the tests/attention/ path, replacing @Anerudhan with @jimmyzho.
    • Added a new ownership entry for tests/autotuner/ with @bkryu as the owner.
Activity
  • This pull request was automatically generated by the update-codeowners workflow.
  • The update process runs weekly, analyzing commit history from the last 180 days.
  • The analysis considers a minimum commits threshold of 1, a directory depth of 3 levels, and up to 5 top owners per module.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 16, 2026

📝 Walkthrough

Walkthrough

Replaced .github/CODEOWNERS manual header and grouped owner rules with a generated header and many directory-level/team ownership mappings; added file-level overrides for several GDN/flashinfer files and registered scripts/codeowner_overrides.json as an explicit override owner entry.

Changes

Cohort / File(s) Summary
Primary CODEOWNERS
\.github/CODEOWNERS
Replaced manual header with an automated/generated header (analysis window, min-commit threshold, overrides reference). Removed prior catch-all and manual category blocks; added many directory-level ownership patterns across benchmarks/, ci/, csrc/, flashinfer/ (subtrees), include/, scripts/, tests/, etc., mapping to org/team aliases and selected individuals; added a final "File-level overrides" block reassigning ownership for specific GDN and flashinfer files.
Overrides config
scripts/codeowner_overrides.json
Added/registered explicit ownership entry and referenced this file as the source of manual overrides applied by the generated CODEOWNERS header.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • aleozlx
  • yzh119
  • kahyunnam

Poem

🐰 I hopped through owners, mapped each tree,
Rewrote the header, set teams free,
Overrides tucked in, tidy and neat,
I guard the paths with tiny feet,
A nibble, a nudge — the code's complete.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'chore: Update CODEOWNERS' is directly related to the main change—updating the CODEOWNERS file—and clearly summarizes the primary purpose of the pull request.
Description check ✅ Passed The PR description includes a summary of changes, notes on parameters and methodology, and review guidance, covering the essential information about the automated CODEOWNERS update process.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch auto-update-codeowners

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request automatically updates the .github/CODEOWNERS file based on recent contribution history. The changes appear to be in line with the stated goal of reflecting current ownership. I have found one minor redundancy where a subdirectory is assigned the same owner as its parent directory, which could be simplified. I've added a specific comment with a suggestion to address this for better maintainability.

Comment on lines +39 to +40
flashinfer/norm/ @yzh119
flashinfer/norm/kernels/ @yzh119
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

This seems to be a redundant entry generated by the automation script. The flashinfer/norm/kernels/ path is already covered by the flashinfer/norm/ entry, as they share the same owner. According to CODEOWNERS syntax, ownership is inherited by subdirectories.

To keep the CODEOWNERS file concise, this redundant line can be removed. It might be worth updating the generation script to handle such cases.

flashinfer/norm/ @yzh119

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (3)
.github/CODEOWNERS (3)

36-37: Consider using team aliases for JIT attention/GEMM ownership to reduce churn.

Line 36 and Line 37 list only individuals for flashinfer/jit/attention/ and flashinfer/jit/gemm/, while nearby attention/GEMM paths already use @flashinfer-ai/attention-owners / @flashinfer-ai/gemm-owners. Aligning these would make ownership updates more stable.

Suggested CODEOWNERS adjustment
-flashinfer/jit/attention/ `@jimmyzho` `@yzh119` `@cyx-6`
-flashinfer/jit/gemm/ `@yzh119` `@jimmyzho` `@aleozlx` `@nv-yunzheq` `@jiahanc`
+flashinfer/jit/attention/ `@flashinfer-ai/attention-owners` `@jimmyzho` `@yzh119`
+flashinfer/jit/gemm/ `@flashinfer-ai/gemm-owners` `@yzh119` `@jimmyzho`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/CODEOWNERS around lines 36 - 37, Replace the individual GitHub
usernames on the CODEOWNERS entries for the paths "flashinfer/jit/attention/"
and "flashinfer/jit/gemm/" with the existing team aliases used elsewhere: use
"@flashinfer-ai/attention-owners" for flashinfer/jit/attention/ and
"@flashinfer-ai/gemm-owners" for flashinfer/jit/gemm/; update the two lines
(currently listing `@jimmyzho` `@yzh119` `@cyx-6` and `@yzh119` `@jimmyzho` `@aleozlx`
`@nv-yunzheq` `@jiahanc`) to those team handles, preserving the path format and
spacing to match adjacent CODEOWNERS entries.

54-54: Single-owner path may become a review bottleneck.

Line 54 assigns tests/autotuner/ to only @bkryu. Consider adding one backup owner/team for continuity during PTO/oncall load.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/CODEOWNERS at line 54, The CODEOWNERS entry for the path
`tests/autotuner/` currently lists only `@bkryu` which creates a single-owner
bottleneck; update that entry to include a backup owner or team (for example add
an org team like `@your-org/autotuner` or an alternate user such as
`@another-dev`) so the line containing `tests/autotuner/ `@bkryu`` becomes
`tests/autotuner/ `@bkryu` `@your-org/autotuner`` (or similar) to ensure continuity
during PTO/oncall load.

39-40: Norm directory ownership is narrower than related norm surfaces.

Line 39 and Line 40 assign only @yzh119, but flashinfer/norm.py (Line 73) is explicitly owned by @flashinfer-ai/misc-op-owners @kahyunnam``. This split may miss expected reviewers for kernel-side norm changes.

Suggested CODEOWNERS adjustment
-flashinfer/norm/ `@yzh119`
-flashinfer/norm/kernels/ `@yzh119`
+flashinfer/norm/ `@flashinfer-ai/misc-op-owners` `@kahyunnam` `@yzh119`
+flashinfer/norm/kernels/ `@flashinfer-ai/misc-op-owners` `@kahyunnam` `@yzh119`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/CODEOWNERS around lines 39 - 40, The CODEOWNERS entries for
"flashinfer/norm/" and "flashinfer/norm/kernels/" only list `@yzh119` while
flashinfer/norm.py is owned by `@flashinfer-ai/misc-op-owners` and `@kahyunnam`;
update the CODEOWNERS so kernel-side changes also notify the file owners by
adding `@flashinfer-ai/misc-op-owners` and `@kahyunnam` to the directory rules (or
add a new overlapping rule for flashinfer/norm/*) so that `@yzh119`,
`@flashinfer-ai/misc-op-owners`, and `@kahyunnam` are included for relevant norm
changes.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.github/CODEOWNERS:
- Around line 36-37: Replace the individual GitHub usernames on the CODEOWNERS
entries for the paths "flashinfer/jit/attention/" and "flashinfer/jit/gemm/"
with the existing team aliases used elsewhere: use
"@flashinfer-ai/attention-owners" for flashinfer/jit/attention/ and
"@flashinfer-ai/gemm-owners" for flashinfer/jit/gemm/; update the two lines
(currently listing `@jimmyzho` `@yzh119` `@cyx-6` and `@yzh119` `@jimmyzho` `@aleozlx`
`@nv-yunzheq` `@jiahanc`) to those team handles, preserving the path format and
spacing to match adjacent CODEOWNERS entries.
- Line 54: The CODEOWNERS entry for the path `tests/autotuner/` currently lists
only `@bkryu` which creates a single-owner bottleneck; update that entry to
include a backup owner or team (for example add an org team like
`@your-org/autotuner` or an alternate user such as `@another-dev`) so the line
containing `tests/autotuner/ `@bkryu`` becomes `tests/autotuner/ `@bkryu`
`@your-org/autotuner`` (or similar) to ensure continuity during PTO/oncall load.
- Around line 39-40: The CODEOWNERS entries for "flashinfer/norm/" and
"flashinfer/norm/kernels/" only list `@yzh119` while flashinfer/norm.py is owned
by `@flashinfer-ai/misc-op-owners` and `@kahyunnam`; update the CODEOWNERS so
kernel-side changes also notify the file owners by adding
`@flashinfer-ai/misc-op-owners` and `@kahyunnam` to the directory rules (or add a
new overlapping rule for flashinfer/norm/*) so that `@yzh119`,
`@flashinfer-ai/misc-op-owners`, and `@kahyunnam` are included for relevant norm
changes.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1892f00b-0061-4f56-b9d9-0172fdea0044

📥 Commits

Reviewing files that changed from the base of the PR and between b418bc3 and 67422d7.

📒 Files selected for processing (1)
  • .github/CODEOWNERS

Auto-generated CODEOWNERS update based on commit activity over the last 180 days.
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/CODEOWNERS:
- Line 77: Replace the incorrect team reference `@ci-users` in the CODEOWNERS
entry that points to `scripts/codeowner_overrides.json` with the
organization-qualified team `@flashinfer-ai/ci-users`; locate the line
containing `scripts/codeowner_overrides.json `@ci-users`` and update it to use
`@flashinfer-ai/ci-users` so it matches the `@org/team-name` format used
elsewhere (e.g., `@flashinfer-ai/attention-owners`,
`@flashinfer-ai/moe-owners`).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fc8affe6-87e4-491e-94f5-aa5fdae15d8c

📥 Commits

Reviewing files that changed from the base of the PR and between 4df9935 and bcc7c8b.

📒 Files selected for processing (1)
  • .github/CODEOWNERS

flashinfer/gdn_prefill.py @flashinfer-ai/misc-op-owners @kahyunnam
flashinfer/jit/gdn.py @flashinfer-ai/misc-op-owners @kahyunnam
flashinfer/norm.py @flashinfer-ai/misc-op-owners @kahyunnam
scripts/codeowner_overrides.json @ci-users
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify if `@ci-users` is a valid GitHub user or team

# Check if ci-users is a valid GitHub user
echo "Checking if ci-users is a valid GitHub user..."
gh api /users/ci-users 2>&1 || echo "User ci-users not found"

# Check if there's a team called ci-users in the flashinfer-ai org
echo -e "\nChecking for teams in flashinfer-ai org matching 'ci'..."
gh api /orgs/flashinfer-ai/teams --jq '.[].slug' | grep -i ci || echo "No ci-related teams found"

# List all teams to see what's available
echo -e "\nAll teams in flashinfer-ai org:"
gh api /orgs/flashinfer-ai/teams --jq '.[].slug'

Repository: flashinfer-ai/flashinfer

Length of output: 590


Change @ci-users to @flashinfer-ai/ci-users to match the team naming convention used throughout the file.

Line 77 has @ci-users, which breaks the @org/team-name format used consistently elsewhere in this file (e.g., @flashinfer-ai/attention-owners, @flashinfer-ai/moe-owners). This should be @flashinfer-ai/ci-users to be a valid GitHub team reference.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/CODEOWNERS at line 77, Replace the incorrect team reference
`@ci-users` in the CODEOWNERS entry that points to
`scripts/codeowner_overrides.json` with the organization-qualified team
`@flashinfer-ai/ci-users`; locate the line containing
`scripts/codeowner_overrides.json `@ci-users`` and update it to use
`@flashinfer-ai/ci-users` so it matches the `@org/team-name` format used
elsewhere (e.g., `@flashinfer-ai/attention-owners`,
`@flashinfer-ai/moe-owners`).

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.

1 participant