| name | inventory-repositories |
| description | Use when the user asks to list, discover, inventory, or extract the repositories for an OpenShift release payload, an OLM operator catalog product, or a managed service (e.g. OCM, Insights, Hive, ACS, Backplane, GCP-HCP). Produces CSV and Markdown repository inventories plus an owners.csv mapping each repo to its owning team and individual maintainers. |
Repository Inventory Skill
This skill discovers every source code repository that belongs to a given target — an OpenShift release payload, an OLM operator bundle, or a managed service — and produces structured CSV/Markdown inventory files plus an ownership mapping.
It supersedes the list-payload-repositories skill by covering all three target types and adding automatic ownership resolution.
Target types
The skill handles three distinct target types. Determine which applies from the user's request, then follow the corresponding sub-skill procedure linked below.
| Target type | Trigger examples | Sub-skill |
|---|
| OpenShift release payload | "OCP 4.21", "OpenShift payload", "release 4.20" | openshift-payload |
| OLM operator bundle | "RHACM operator", "compliance-operator", "MCE 2.16" | operator-bundle |
| Managed service | "OCM service repos", "Insights", "backplane", "GCP-HCP" | service-inventory |
If the user's request is ambiguous, ask which target type they mean.
If the user asks to inventory "everything" or "all services", iterate through all known services in the app-interface data/services/ directory tree.
Output directory
All output is placed under the hybrid-platforms-inputs/ repository in the workspace:
hybrid-platforms-inputs/
├── openshift/
│ ├── openshift-<ver>-payload-repos.csv
│ ├── openshift-<ver>-payload-analysis.md
│ └── owners.csv
├── operator-catalog/
│ └── <operator-name>/
│ ├── <version>/
│ │ ├── <operator>-<ver>-payload-repos.csv
│ │ └── <operator>-<ver>-payload-analysis.md
│ └── owners.csv
└── services/
└── <service-name>/
├── <service>-repos.csv
├── <service>-repos.md
└── owners.csv
Ownership resolution
After producing the repository inventory, the skill MUST generate or update an owners.csv file that maps every repository to its owning team and 1–2 individual maintainers.
Ownership data sources (in priority order)
-
hybrid-platforms/org repo — Clone or use a local copy of git@gitlab.cee.redhat.com:hybrid-platforms/org.git. Parse all YAML files under config/structures/ for team definitions with repos: lists. Each team entry includes a name, roles (with manager type), and repos list. This is the highest-fidelity source.
-
app-interface serviceOwners — For managed services, parse serviceOwners from app.yml files in the app-interface data/services/ directory. Provides team name and contact email.
-
OWNERS files in repositories — Fetch the OWNERS file from each GitHub repository (via https://raw.githubusercontent.com/<org>/<repo>/HEAD/OWNERS). Parse the YAML approvers: list. Use the first 1–2 approvers as individual owners.
-
GitHub top contributors — As a fallback, query the GitHub contributors API (https://api.github.com/repos/<org>/<repo>/contributors?per_page=5) and take the top 1–2 non-bot contributors. Filter out known bots: dependabot[bot], renovate[bot], openshift-merge-robot, openshift-ci-robot, openshift-bot, web-flow, github-actions[bot], mergify[bot], red-hat-konflux[bot].
-
GitHub org-level mapping — For repos where no per-repo data is available, map by GitHub organization:
| Organization | Team |
|---|
openshift | OpenShift |
openshift-online | OpenShift Online / OCM |
openshift-assisted | Assisted Installer |
openshift-pipelines | OpenShift Pipelines |
stolostron | Stolostron / ACM |
RedHatInsights | Red Hat Insights |
red-hat-data-services | Red Hat Data Services |
redhat-appstudio | Konflux / Red Hat App Studio |
konflux-ci | Konflux CI |
quay | Quay.io |
stackrox | StackRox / ACS |
konveyor | Konveyor / MTA |
kubev2v | Migration Toolkit for Virtualization |
migtools | Migration Toolkit |
project-koku | Cost Management (Koku) |
project-kessel | Project Kessel |
rhobs | RHOBS / Observability |
trustification | Trustification / Trusted Content |
enterprise-contract | Enterprise Contract |
medik8s | MedIK8s / Node Health |
mt-sre | Managed Tenants SRE |
osbuild | Image Builder / OSBuild |
app-sre | App SRE |
openshift-eng | OpenShift Engineering |
openshift-knative | OpenShift Serverless |
submariner-io | Submariner |
redhat-community-ai-tools | Red Hat Community AI Tools |
redhat-developer | Red Hat Developer |
openshift-kni | OpenShift KNI / Telco |
viaq | Logging / ViaQ |
red-hat-storage | Red Hat Storage / ODF |
road-core | ROAD Core |
3scale | 3scale |
open-cluster-management-io | Open Cluster Management |
netobserv | Network Observability |
opendatahub-io | Open Data Hub / RHOAI |
openshift-service-mesh | OpenShift Service Mesh |
kuadrant | Kuadrant |
observatorium | Observatorium |
redhat-openshift-builds | OpenShift Builds |
complianceascode | Compliance as Code |
openshift-power-monitoring | Power Monitoring |
redhat-cne | Cloud Native Events |
rh-ecosystem-edge | RH Ecosystem Edge |
lightspeed-core | Lightspeed Core |
os-observability | OS Observability |
openshift-metal3 | Metal3 / Bare Metal |
openshift-hyperfleet | HyperFleet |
redhat-openshift-ecosystem | OpenShift Ecosystem |
rhdhorchestrator | RHDH Orchestrator |
maistra | Maistra / Service Mesh |
openstack-k8s-operators | OpenStack K8s Operators |
flightctl | Flight Control |
instructlab | InstructLab |
rhecosystemappeng | RH Ecosystem App Eng |
-
Manager fallback — If an entry has a team manager from the org repo but no OWNERS file or contributor data, use the manager's ID as the individual owner.
owners.csv format
The owners.csv schema varies by target type:
OpenShift payload:
Repository,URL,Owner Team,Manager,Individual Owners,Ownership Source,Payload Versions
Operator catalog:
Repository,URL,Owner Team,Manager,Individual Owners,Ownership Source,Operator Versions
Services:
Repository,URL,Host,Owner Team,Manager,Individual Owners,Ownership Source,App/Sub-Service
Placement
openshift/owners.csv — one file covering all repos across all OpenShift versions
operator-catalog/<operator>/owners.csv — one file per operator, covering all versions
services/<service>/owners.csv — one file per service
Deduplication
When the same repository appears across multiple versions or sub-services:
- Repository CSV — list the repo once per version where it appears (separate CSV files per version)
- owners.csv — list the repo once, with all versions/sub-services in the final column (joined with
; )
- Cross-product — if a repo appears in both an OpenShift payload and an operator catalog, it appears in both directories. This is intentional — the ownership may differ by context.
Post-generation checklist
After generating all files, verify:
- Every repository in the CSV appears in the corresponding
owners.csv
- No
owners.csv entry has an empty Owner Team column
- The
Individual Owners column is populated for all GitHub repos (GitLab repos may be blank if inaccessible)
- CSV files have the correct column headers matching the schemas above
- Markdown reports have the metadata table, category sections, and linked repository names
- Commit the changes with a descriptive message and push to the
hybrid-platforms-inputs remote