Heuristic:Kubeflow Kubeflow Issue Routing To Sub Repos
| Knowledge Sources | |
|---|---|
| Domains | Contributing, Issue_Management, Governance |
| Last Updated | 2026-02-13 00:00 GMT |
Overview
Route all issues to specific sub-project repositories instead of the umbrella kubeflow/kubeflow repo by disabling blank issues and providing contact links.
Description
The kubeflow/kubeflow repository is an umbrella repository that does not contain application code. It houses documentation (README, ROADMAP, CHANGELOG), GitHub automation config, and the contributor guide redirect. Because all actual development happens in sub-project repositories (kubeflow/pipelines, kubeflow/trainer, kubeflow/katib, kserve/kserve, etc.), issues filed in the umbrella repo would be misrouted and slow to triage.
The solution is to set blank_issues_enabled: false in the issue template config and provide contact_links that direct users to the correct sub-project repository for their issue.
Usage
Use this heuristic when setting up GitHub issue management for umbrella or meta-repositories in a multi-repo project structure. It prevents issue fragmentation and ensures that the team with ownership over the relevant code is the first to see the issue.
The Insight (Rule of Thumb)
- Action: Set
blank_issues_enabled: falsein.github/ISSUE_TEMPLATE/config.ymland definecontact_linksfor each sub-project. - Value: Issues are directed to the correct repository, reducing triage overhead and improving response time.
- Trade-off: Users cannot file issues directly in the umbrella repo. If a user is unsure which sub-project is relevant, they must navigate the contact links or ask in Slack.
- Coverage: The config covers 13 destinations: documentation, Slack, community, KServe, Katib, Model Registry, MPI Operator, Notebooks, Pipelines, SDK, Spark Operator, Trainer, Dashboard/Profile Controller, and Manifests.
Reasoning
From .github/ISSUE_TEMPLATE/config.yml:L1-2:
blank_issues_enabled: false
contact_links:
This configuration serves multiple purposes:
Correct ownership: Each Kubeflow Working Group owns a specific repository. Routing issues to the correct repo ensures the relevant WG sees the issue immediately.
Faster resolution: Issues filed in the wrong repository require manual transfer, which adds latency. Direct routing eliminates this step.
Reduced noise: The umbrella repo maintainers do not need to triage issues that belong to other teams.
The 13 contact links in the config map directly to the Kubeflow project table in README.md, ensuring every listed sub-project has a corresponding issue destination:
- name: Issues - Kubeflow Trainer
url: https://github.com/kubeflow/trainer/issues
about: Please use the `kubeflow/trainer` repository
- name: Issues - KServe
url: https://github.com/kserve/kserve/issues
about: Please use the `kserve/kserve` repository