[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-red-hat-developer-prow-trigger-nightly":3,"mdc-l2sw4n-key":34,"related-org-red-hat-developer-prow-trigger-nightly":2017,"related-repo-red-hat-developer-prow-trigger-nightly":2189},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"prow-trigger-nightly","trigger RHDH nightly ProwJobs","Trigger RHDH nightly ProwJobs on demand via the OpenShift CI Gangway REST API. Supports both rhdh and rhdh-plugin-export-overlays repos. Use when the user wants to trigger, run, kick off, or start a nightly CI job, run an on-demand E2E nightly test, list available nightly jobs, or trigger an overlay nightly. Also use when the user mentions Gangway, \"nightly job\", \"periodic-ci\", RC verification, testing a custom image, running CI against a fork, or checking available image tags on quay.io.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"red-hat-developer","Red Hat Developer","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fred-hat-developer.png","redhat-developer",[13,17,20],{"name":14,"slug":15,"type":16},"Automation","automation","tag",{"name":18,"slug":19,"type":16},"CI\u002FCD","ci-cd",{"name":21,"slug":22,"type":16},"OpenShift","openshift",15,"https:\u002F\u002Fgithub.com\u002Fredhat-developer\u002Frhdh-skill","2026-07-16T06:03:24.412866",null,28,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Claude Code skill for RHDH plugin lifecycle management","https:\u002F\u002Fgithub.com\u002Fredhat-developer\u002Frhdh-skill\u002Ftree\u002FHEAD\u002Fskills\u002Fprow-trigger-nightly","---\nname: prow-trigger-nightly\ndescription: >-\n  Trigger RHDH nightly ProwJobs on demand via the OpenShift CI Gangway REST API.\n  Supports both rhdh and rhdh-plugin-export-overlays repos. Use when the user\n  wants to trigger, run, kick off, or start a nightly CI job, run an on-demand\n  E2E nightly test, list available nightly jobs, or trigger an overlay nightly.\n  Also use when the user mentions Gangway, \"nightly job\", \"periodic-ci\",\n  RC verification, testing a custom image, running CI against a fork, or\n  checking available image tags on quay.io.\n---\n# Trigger Nightly ProwJobs\n\nTrigger RHDH nightly ProwJobs via the OpenShift CI Gangway REST API.\n\nSupports two repositories:\n\n- **rhdh** — the main RHDH application (`periodic-ci-redhat-developer-rhdh-*-nightly`)\n- **rhdh-plugin-export-overlays** — plugin export overlays (`periodic-ci-redhat-developer-rhdh-plugin-export-overlays-*-nightly`)\n\n## Script Location\n\nAll commands below use paths relative to this skill's directory:\n`skills\u002Fprow-trigger-nightly\u002Fscripts\u002Ftrigger_nightly_job.py`\n\n## Prerequisites\n\n- Python 3.9+\n- `oc` CLI installed (for authentication to OpenShift CI)\n\n## Flow\n\n1. Fetch available jobs and let the user pick one\n2. Ask about image override and additional options (fork, alerts)\n3. Show the command, confirm, execute, report results\n\n## Step 1: Fetch Jobs and Select\n\nList configured nightly jobs:\n\n```bash\nuv run scripts\u002Ftrigger_nightly_job.py --list\n```\n\nPresent the jobs in a table with columns: short name and which branches have it. Derive the short name from the job name part after the branch segment (e.g. `e2e-ocp-helm-nightly` -> \"OCP Helm\"):\n\n| Repo | Job | main | release-1.9 | release-1.8 |\n|------|-----|------|-------------|-------------|\n| rhdh | OCP Helm | x | x | x |\n| rhdh | AKS Helm | x | x | |\n| overlays | OCP Helm | x | | |\n\nThen ask the user to describe which job and branch they want in natural language.\n\n### Natural Language Mapping\n\nMap the user's description to the matching full job name from the fetched list. If no branch is mentioned, default to `main`:\n\n**RHDH repo jobs:**\n\n- \"ocp helm\" \u002F \"openshift helm\" -> `e2e-ocp-helm-nightly` (not upgrade, not versioned)\n- \"operator\" \u002F \"ocp operator\" -> `e2e-ocp-operator-nightly` (not auth-providers)\n- \"helm upgrade\" \u002F \"upgrade test\" -> `e2e-ocp-helm-upgrade-nightly`\n- \"auth providers\" \u002F \"authentication\" -> `e2e-ocp-operator-auth-providers-nightly`\n- \"4.17\", \"4.19\", \"4.20\", \"4.21\" -> `e2e-ocp-v4-{VERSION}-helm-nightly`\n- \"aks helm\" \u002F \"azure helm\" -> `e2e-aks-helm-nightly`\n- \"aks operator\" \u002F \"azure operator\" -> `e2e-aks-operator-nightly`\n- \"eks helm\" \u002F \"aws helm\" -> `e2e-eks-helm-nightly`\n- \"eks operator\" \u002F \"aws operator\" -> `e2e-eks-operator-nightly`\n- \"gke helm\" \u002F \"google helm\" -> `e2e-gke-helm-nightly`\n- \"gke operator\" \u002F \"google operator\" -> `e2e-gke-operator-nightly`\n- \"osd\" \u002F \"osd gcp\" -> `e2e-osd-gcp-helm-nightly` or `e2e-osd-gcp-operator-nightly`\n- Branch: \"1.9\", \"release 1.9\", \"1.8 branch\" -> match from that branch\n- Multiple: \"all AKS jobs\", \"all Operator jobs on main\" -> offer to trigger them in sequence\n\n**Overlay repo jobs:**\n\n- \"overlay nightly\" \u002F \"overlay helm\" \u002F \"overlays nightly\" -> `periodic-ci-redhat-developer-rhdh-plugin-export-overlays-main-e2e-ocp-helm-nightly`\n\n### Shared Cluster Constraint (GKE \u002F OSD-GCP only)\n\nGKE and OSD-GCP each share a single cluster — never run two jobs on the same platform simultaneously. Before triggering, warn the user.\n\n## Step 2: Options\n\n### Overlay repo jobs\n\nOverlay jobs support fork overrides (`--org`, `--repo`, `--branch`), catalog index override (`--catalog-index-image`), and Playwright version override (`--playwright-version`).\n\nImage overrides (`--image-registry`, `--image-repo`, `--tag`), `--chart-version`, and `--send-alerts` are NOT supported — the script will error if these are passed for an overlay job.\n\nIf the user doesn't need any overrides, skip this step and go directly to Step 3.\n\n### RHDH repo jobs\n\nPresent all options together. The user picks by number — multiple selections allowed (e.g. \"2, 5\"):\n\n**Image override:**\n\n1. **Default image** — no image flags, use whatever the job is configured with\n2. **Custom tag only** — override just the tag, keep default registry and repo\n3. **Custom repo + tag** — override image repository and tag, keep default registry (`quay.io`)\n4. **Fully custom image** — override registry, repo, and tag\n\n**Catalog & chart override:**\n5. **Catalog index image** — override the plugin catalog index image (`--catalog-index-image`)\n6. **Chart version** — override the Helm chart version (`--chart-version`)\n\n**Additional options:**\n7. **Fork override** — run against a fork instead of `redhat-developer\u002Frhdh`\n8. **Send Slack alerts** — notify via `--send-alerts`\n\nConstraint: `--image-repo` requires `--tag`, but `--tag` works on its own. `--playwright-version` is overlay-only and will error for RHDH jobs.\n\n### Follow-up based on selections\n\n**If 2 or 3 selected (quay.io registry)** — fetch available tags and present as numbered options. For `release-*` branches, derive `--tag-filter` by stripping the `release-` prefix. For `main`, omit `--tag-filter` to show all available versions:\n\n```bash\n# For release-1.10 branch:\nuv run scripts\u002Ftrigger_nightly_job.py --list-tags --tag-filter 1.10\n\n# For main branch (show all versions):\nuv run scripts\u002Ftrigger_nightly_job.py --list-tags\n```\n\nUse `--image-repo \u003CREPO>` to query a different image repository (default: `rhdh\u002Frhdh-hub-rhel9`). Present the numbered results with a final option to enter a custom tag (e.g. `next`, `latest`). For option 3, also ask for the image repository.\n\n**If 4 selected (non-quay registry)** — ask for all three values (tag fetching not available):\n\n- Registry (e.g. `brew.registry.redhat.io`)\n- Image repo (e.g. `rhdh\u002Frhdh-hub-rhel9`)\n- Tag (e.g. `1.9`)\n\n**If 5 selected** — ask for catalog index image (e.g. `quay.io\u002Frhdh\u002Fplugin-catalog-index:1.9-60` for RC, `registry.access.redhat.com\u002Frhdh\u002Fplugin-catalog-index:1.9.4` for GA).\n\n**If 6 selected** — ask for chart version (e.g. `1.9-227-CI`).\n\n**If 7 selected** — ask for:\n\n- GitHub org (`--org`): e.g. `my-github-user`\n- Repo name (`--repo`): e.g. `rhdh`\n- Branch (`--branch`): e.g. `my-feature-branch`\n\n## Step 3: Confirm and Execute\n\nShow the full command and present final options:\n\n```bash\nuv run scripts\u002Ftrigger_nightly_job.py \\\n  --job \u003CFULL_JOB_NAME> \\\n  [--image-registry \u003CREGISTRY>] \\\n  [--image-repo \u003CREPO>] \\\n  [--tag \u003CTAG>] \\\n  [--catalog-index-image \u003CIMAGE>] \\\n  [--chart-version \u003CVERSION>] \\\n  [--playwright-version \u003CVERSION>] \\\n  [--org \u003CORG>] \\\n  [--repo \u003CREPO>] \\\n  [--branch \u003CBRANCH>] \\\n  [--send-alerts] \\\n  [--dry-run]\n```\n\n1. **Execute** — run the command as shown\n2. **Change something** — go back and modify parameters\n\nAfter execution, show the API response. If a job URL or ID is returned, display it prominently. On error, help diagnose (common issues: expired token, invalid job name).\n\n### RC Verification Example\n\n```bash\nuv run scripts\u002Ftrigger_nightly_job.py \\\n  --job periodic-ci-redhat-developer-rhdh-main-e2e-ocp-helm-nightly \\\n  --image-repo rhdh\u002Frhdh-hub-rhel9 --tag 1.9-227 \\\n  --catalog-index-image quay.io\u002Frhdh\u002Fplugin-catalog-index:1.9 \\\n  --chart-version 1.9-227-CI\n```\n\n### GA Verification Example\n\n```bash\nuv run scripts\u002Ftrigger_nightly_job.py \\\n  --job periodic-ci-redhat-developer-rhdh-main-e2e-ocp-helm-nightly \\\n  --image-registry registry.redhat.io --image-repo rhdh\u002Frhdh-hub-rhel9 --tag 1.9.4 \\\n  --catalog-index-image registry.access.redhat.com\u002Frhdh\u002Fplugin-catalog-index:1.9.4\n```\n\n## Reference\n\n- Script flags: `-j\u002F--job`, `-l\u002F--list`, `-T\u002F--list-tags`, `--tag-filter`, `-I\u002F--image-registry`, `-q\u002F--image-repo`, `-t\u002F--tag`, `--catalog-index-image`, `--chart-version`, `--playwright-version`, `-o\u002F--org`, `-r\u002F--repo`, `-b\u002F--branch`, `-S\u002F--send-alerts`, `-n\u002F--dry-run`, `--json`\n- Dedicated kubeconfig at `~\u002F.config\u002Fopenshift-ci\u002Fkubeconfig` — won't interfere with your current cluster context\n- If auth is needed, the script opens a browser for SSO login\n- RHDH jobs list: \u003Chttps:\u002F\u002Fprow.ci.openshift.org\u002Fconfigured-jobs\u002Fredhat-developer\u002Frhdh>\n- Overlay jobs list: \u003Chttps:\u002F\u002Fprow.ci.openshift.org\u002Fconfigured-jobs\u002Fredhat-developer\u002Frhdh-plugin-export-overlays>\n- Image tags: \u003Chttps:\u002F\u002Fquay.io\u002Frepository\u002Frhdh\u002Frhdh-hub-rhel9?tab=tags>\n\n## Related Skills\n\n- **`overlay`**: Manage the rhdh-plugin-export-overlays repository\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,54,59,101,108,119,125,144,150,169,175,180,219,232,345,350,357,369,377,533,541,555,561,566,572,578,622,665,670,676,681,689,739,776,813,846,852,900,988,1024,1034,1072,1098,1115,1125,1179,1185,1190,1587,1610,1615,1621,1720,1726,1814,1820,1988,1994,2011],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"trigger-nightly-prowjobs",[45],{"type":46,"value":47},"text","Trigger Nightly ProwJobs",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52],{"type":46,"value":53},"Trigger RHDH nightly ProwJobs via the OpenShift CI Gangway REST API.",{"type":40,"tag":49,"props":55,"children":56},{},[57],{"type":46,"value":58},"Supports two repositories:",{"type":40,"tag":60,"props":61,"children":62},"ul",{},[63,84],{"type":40,"tag":64,"props":65,"children":66},"li",{},[67,73,75,82],{"type":40,"tag":68,"props":69,"children":70},"strong",{},[71],{"type":46,"value":72},"rhdh",{"type":46,"value":74}," — the main RHDH application (",{"type":40,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":46,"value":81},"periodic-ci-redhat-developer-rhdh-*-nightly",{"type":46,"value":83},")",{"type":40,"tag":64,"props":85,"children":86},{},[87,92,94,100],{"type":40,"tag":68,"props":88,"children":89},{},[90],{"type":46,"value":91},"rhdh-plugin-export-overlays",{"type":46,"value":93}," — plugin export overlays (",{"type":40,"tag":76,"props":95,"children":97},{"className":96},[],[98],{"type":46,"value":99},"periodic-ci-redhat-developer-rhdh-plugin-export-overlays-*-nightly",{"type":46,"value":83},{"type":40,"tag":102,"props":103,"children":105},"h2",{"id":104},"script-location",[106],{"type":46,"value":107},"Script Location",{"type":40,"tag":49,"props":109,"children":110},{},[111,113],{"type":46,"value":112},"All commands below use paths relative to this skill's directory:\n",{"type":40,"tag":76,"props":114,"children":116},{"className":115},[],[117],{"type":46,"value":118},"skills\u002Fprow-trigger-nightly\u002Fscripts\u002Ftrigger_nightly_job.py",{"type":40,"tag":102,"props":120,"children":122},{"id":121},"prerequisites",[123],{"type":46,"value":124},"Prerequisites",{"type":40,"tag":60,"props":126,"children":127},{},[128,133],{"type":40,"tag":64,"props":129,"children":130},{},[131],{"type":46,"value":132},"Python 3.9+",{"type":40,"tag":64,"props":134,"children":135},{},[136,142],{"type":40,"tag":76,"props":137,"children":139},{"className":138},[],[140],{"type":46,"value":141},"oc",{"type":46,"value":143}," CLI installed (for authentication to OpenShift CI)",{"type":40,"tag":102,"props":145,"children":147},{"id":146},"flow",[148],{"type":46,"value":149},"Flow",{"type":40,"tag":151,"props":152,"children":153},"ol",{},[154,159,164],{"type":40,"tag":64,"props":155,"children":156},{},[157],{"type":46,"value":158},"Fetch available jobs and let the user pick one",{"type":40,"tag":64,"props":160,"children":161},{},[162],{"type":46,"value":163},"Ask about image override and additional options (fork, alerts)",{"type":40,"tag":64,"props":165,"children":166},{},[167],{"type":46,"value":168},"Show the command, confirm, execute, report results",{"type":40,"tag":102,"props":170,"children":172},{"id":171},"step-1-fetch-jobs-and-select",[173],{"type":46,"value":174},"Step 1: Fetch Jobs and Select",{"type":40,"tag":49,"props":176,"children":177},{},[178],{"type":46,"value":179},"List configured nightly jobs:",{"type":40,"tag":181,"props":182,"children":187},"pre",{"className":183,"code":184,"language":185,"meta":186,"style":186},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","uv run scripts\u002Ftrigger_nightly_job.py --list\n","bash","",[188],{"type":40,"tag":76,"props":189,"children":190},{"__ignoreMap":186},[191],{"type":40,"tag":192,"props":193,"children":196},"span",{"class":194,"line":195},"line",1,[197,203,209,214],{"type":40,"tag":192,"props":198,"children":200},{"style":199},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[201],{"type":46,"value":202},"uv",{"type":40,"tag":192,"props":204,"children":206},{"style":205},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[207],{"type":46,"value":208}," run",{"type":40,"tag":192,"props":210,"children":211},{"style":205},[212],{"type":46,"value":213}," scripts\u002Ftrigger_nightly_job.py",{"type":40,"tag":192,"props":215,"children":216},{"style":205},[217],{"type":46,"value":218}," --list\n",{"type":40,"tag":49,"props":220,"children":221},{},[222,224,230],{"type":46,"value":223},"Present the jobs in a table with columns: short name and which branches have it. Derive the short name from the job name part after the branch segment (e.g. ",{"type":40,"tag":76,"props":225,"children":227},{"className":226},[],[228],{"type":46,"value":229},"e2e-ocp-helm-nightly",{"type":46,"value":231}," -> \"OCP Helm\"):",{"type":40,"tag":233,"props":234,"children":235},"table",{},[236,270],{"type":40,"tag":237,"props":238,"children":239},"thead",{},[240],{"type":40,"tag":241,"props":242,"children":243},"tr",{},[244,250,255,260,265],{"type":40,"tag":245,"props":246,"children":247},"th",{},[248],{"type":46,"value":249},"Repo",{"type":40,"tag":245,"props":251,"children":252},{},[253],{"type":46,"value":254},"Job",{"type":40,"tag":245,"props":256,"children":257},{},[258],{"type":46,"value":259},"main",{"type":40,"tag":245,"props":261,"children":262},{},[263],{"type":46,"value":264},"release-1.9",{"type":40,"tag":245,"props":266,"children":267},{},[268],{"type":46,"value":269},"release-1.8",{"type":40,"tag":271,"props":272,"children":273},"tbody",{},[274,300,323],{"type":40,"tag":241,"props":275,"children":276},{},[277,282,287,292,296],{"type":40,"tag":278,"props":279,"children":280},"td",{},[281],{"type":46,"value":72},{"type":40,"tag":278,"props":283,"children":284},{},[285],{"type":46,"value":286},"OCP Helm",{"type":40,"tag":278,"props":288,"children":289},{},[290],{"type":46,"value":291},"x",{"type":40,"tag":278,"props":293,"children":294},{},[295],{"type":46,"value":291},{"type":40,"tag":278,"props":297,"children":298},{},[299],{"type":46,"value":291},{"type":40,"tag":241,"props":301,"children":302},{},[303,307,312,316,320],{"type":40,"tag":278,"props":304,"children":305},{},[306],{"type":46,"value":72},{"type":40,"tag":278,"props":308,"children":309},{},[310],{"type":46,"value":311},"AKS Helm",{"type":40,"tag":278,"props":313,"children":314},{},[315],{"type":46,"value":291},{"type":40,"tag":278,"props":317,"children":318},{},[319],{"type":46,"value":291},{"type":40,"tag":278,"props":321,"children":322},{},[],{"type":40,"tag":241,"props":324,"children":325},{},[326,331,335,339,342],{"type":40,"tag":278,"props":327,"children":328},{},[329],{"type":46,"value":330},"overlays",{"type":40,"tag":278,"props":332,"children":333},{},[334],{"type":46,"value":286},{"type":40,"tag":278,"props":336,"children":337},{},[338],{"type":46,"value":291},{"type":40,"tag":278,"props":340,"children":341},{},[],{"type":40,"tag":278,"props":343,"children":344},{},[],{"type":40,"tag":49,"props":346,"children":347},{},[348],{"type":46,"value":349},"Then ask the user to describe which job and branch they want in natural language.",{"type":40,"tag":351,"props":352,"children":354},"h3",{"id":353},"natural-language-mapping",[355],{"type":46,"value":356},"Natural Language Mapping",{"type":40,"tag":49,"props":358,"children":359},{},[360,362,367],{"type":46,"value":361},"Map the user's description to the matching full job name from the fetched list. If no branch is mentioned, default to ",{"type":40,"tag":76,"props":363,"children":365},{"className":364},[],[366],{"type":46,"value":259},{"type":46,"value":368},":",{"type":40,"tag":49,"props":370,"children":371},{},[372],{"type":40,"tag":68,"props":373,"children":374},{},[375],{"type":46,"value":376},"RHDH repo jobs:",{"type":40,"tag":60,"props":378,"children":379},{},[380,392,405,416,427,438,449,460,471,482,493,504,523,528],{"type":40,"tag":64,"props":381,"children":382},{},[383,385,390],{"type":46,"value":384},"\"ocp helm\" \u002F \"openshift helm\" -> ",{"type":40,"tag":76,"props":386,"children":388},{"className":387},[],[389],{"type":46,"value":229},{"type":46,"value":391}," (not upgrade, not versioned)",{"type":40,"tag":64,"props":393,"children":394},{},[395,397,403],{"type":46,"value":396},"\"operator\" \u002F \"ocp operator\" -> ",{"type":40,"tag":76,"props":398,"children":400},{"className":399},[],[401],{"type":46,"value":402},"e2e-ocp-operator-nightly",{"type":46,"value":404}," (not auth-providers)",{"type":40,"tag":64,"props":406,"children":407},{},[408,410],{"type":46,"value":409},"\"helm upgrade\" \u002F \"upgrade test\" -> ",{"type":40,"tag":76,"props":411,"children":413},{"className":412},[],[414],{"type":46,"value":415},"e2e-ocp-helm-upgrade-nightly",{"type":40,"tag":64,"props":417,"children":418},{},[419,421],{"type":46,"value":420},"\"auth providers\" \u002F \"authentication\" -> ",{"type":40,"tag":76,"props":422,"children":424},{"className":423},[],[425],{"type":46,"value":426},"e2e-ocp-operator-auth-providers-nightly",{"type":40,"tag":64,"props":428,"children":429},{},[430,432],{"type":46,"value":431},"\"4.17\", \"4.19\", \"4.20\", \"4.21\" -> ",{"type":40,"tag":76,"props":433,"children":435},{"className":434},[],[436],{"type":46,"value":437},"e2e-ocp-v4-{VERSION}-helm-nightly",{"type":40,"tag":64,"props":439,"children":440},{},[441,443],{"type":46,"value":442},"\"aks helm\" \u002F \"azure helm\" -> ",{"type":40,"tag":76,"props":444,"children":446},{"className":445},[],[447],{"type":46,"value":448},"e2e-aks-helm-nightly",{"type":40,"tag":64,"props":450,"children":451},{},[452,454],{"type":46,"value":453},"\"aks operator\" \u002F \"azure operator\" -> ",{"type":40,"tag":76,"props":455,"children":457},{"className":456},[],[458],{"type":46,"value":459},"e2e-aks-operator-nightly",{"type":40,"tag":64,"props":461,"children":462},{},[463,465],{"type":46,"value":464},"\"eks helm\" \u002F \"aws helm\" -> ",{"type":40,"tag":76,"props":466,"children":468},{"className":467},[],[469],{"type":46,"value":470},"e2e-eks-helm-nightly",{"type":40,"tag":64,"props":472,"children":473},{},[474,476],{"type":46,"value":475},"\"eks operator\" \u002F \"aws operator\" -> ",{"type":40,"tag":76,"props":477,"children":479},{"className":478},[],[480],{"type":46,"value":481},"e2e-eks-operator-nightly",{"type":40,"tag":64,"props":483,"children":484},{},[485,487],{"type":46,"value":486},"\"gke helm\" \u002F \"google helm\" -> ",{"type":40,"tag":76,"props":488,"children":490},{"className":489},[],[491],{"type":46,"value":492},"e2e-gke-helm-nightly",{"type":40,"tag":64,"props":494,"children":495},{},[496,498],{"type":46,"value":497},"\"gke operator\" \u002F \"google operator\" -> ",{"type":40,"tag":76,"props":499,"children":501},{"className":500},[],[502],{"type":46,"value":503},"e2e-gke-operator-nightly",{"type":40,"tag":64,"props":505,"children":506},{},[507,509,515,517],{"type":46,"value":508},"\"osd\" \u002F \"osd gcp\" -> ",{"type":40,"tag":76,"props":510,"children":512},{"className":511},[],[513],{"type":46,"value":514},"e2e-osd-gcp-helm-nightly",{"type":46,"value":516}," or ",{"type":40,"tag":76,"props":518,"children":520},{"className":519},[],[521],{"type":46,"value":522},"e2e-osd-gcp-operator-nightly",{"type":40,"tag":64,"props":524,"children":525},{},[526],{"type":46,"value":527},"Branch: \"1.9\", \"release 1.9\", \"1.8 branch\" -> match from that branch",{"type":40,"tag":64,"props":529,"children":530},{},[531],{"type":46,"value":532},"Multiple: \"all AKS jobs\", \"all Operator jobs on main\" -> offer to trigger them in sequence",{"type":40,"tag":49,"props":534,"children":535},{},[536],{"type":40,"tag":68,"props":537,"children":538},{},[539],{"type":46,"value":540},"Overlay repo jobs:",{"type":40,"tag":60,"props":542,"children":543},{},[544],{"type":40,"tag":64,"props":545,"children":546},{},[547,549],{"type":46,"value":548},"\"overlay nightly\" \u002F \"overlay helm\" \u002F \"overlays nightly\" -> ",{"type":40,"tag":76,"props":550,"children":552},{"className":551},[],[553],{"type":46,"value":554},"periodic-ci-redhat-developer-rhdh-plugin-export-overlays-main-e2e-ocp-helm-nightly",{"type":40,"tag":351,"props":556,"children":558},{"id":557},"shared-cluster-constraint-gke-osd-gcp-only",[559],{"type":46,"value":560},"Shared Cluster Constraint (GKE \u002F OSD-GCP only)",{"type":40,"tag":49,"props":562,"children":563},{},[564],{"type":46,"value":565},"GKE and OSD-GCP each share a single cluster — never run two jobs on the same platform simultaneously. Before triggering, warn the user.",{"type":40,"tag":102,"props":567,"children":569},{"id":568},"step-2-options",[570],{"type":46,"value":571},"Step 2: Options",{"type":40,"tag":351,"props":573,"children":575},{"id":574},"overlay-repo-jobs",[576],{"type":46,"value":577},"Overlay repo jobs",{"type":40,"tag":49,"props":579,"children":580},{},[581,583,589,591,597,598,604,606,612,614,620],{"type":46,"value":582},"Overlay jobs support fork overrides (",{"type":40,"tag":76,"props":584,"children":586},{"className":585},[],[587],{"type":46,"value":588},"--org",{"type":46,"value":590},", ",{"type":40,"tag":76,"props":592,"children":594},{"className":593},[],[595],{"type":46,"value":596},"--repo",{"type":46,"value":590},{"type":40,"tag":76,"props":599,"children":601},{"className":600},[],[602],{"type":46,"value":603},"--branch",{"type":46,"value":605},"), catalog index override (",{"type":40,"tag":76,"props":607,"children":609},{"className":608},[],[610],{"type":46,"value":611},"--catalog-index-image",{"type":46,"value":613},"), and Playwright version override (",{"type":40,"tag":76,"props":615,"children":617},{"className":616},[],[618],{"type":46,"value":619},"--playwright-version",{"type":46,"value":621},").",{"type":40,"tag":49,"props":623,"children":624},{},[625,627,633,634,640,641,647,649,655,657,663],{"type":46,"value":626},"Image overrides (",{"type":40,"tag":76,"props":628,"children":630},{"className":629},[],[631],{"type":46,"value":632},"--image-registry",{"type":46,"value":590},{"type":40,"tag":76,"props":635,"children":637},{"className":636},[],[638],{"type":46,"value":639},"--image-repo",{"type":46,"value":590},{"type":40,"tag":76,"props":642,"children":644},{"className":643},[],[645],{"type":46,"value":646},"--tag",{"type":46,"value":648},"), ",{"type":40,"tag":76,"props":650,"children":652},{"className":651},[],[653],{"type":46,"value":654},"--chart-version",{"type":46,"value":656},", and ",{"type":40,"tag":76,"props":658,"children":660},{"className":659},[],[661],{"type":46,"value":662},"--send-alerts",{"type":46,"value":664}," are NOT supported — the script will error if these are passed for an overlay job.",{"type":40,"tag":49,"props":666,"children":667},{},[668],{"type":46,"value":669},"If the user doesn't need any overrides, skip this step and go directly to Step 3.",{"type":40,"tag":351,"props":671,"children":673},{"id":672},"rhdh-repo-jobs",[674],{"type":46,"value":675},"RHDH repo jobs",{"type":40,"tag":49,"props":677,"children":678},{},[679],{"type":46,"value":680},"Present all options together. The user picks by number — multiple selections allowed (e.g. \"2, 5\"):",{"type":40,"tag":49,"props":682,"children":683},{},[684],{"type":40,"tag":68,"props":685,"children":686},{},[687],{"type":46,"value":688},"Image override:",{"type":40,"tag":151,"props":690,"children":691},{},[692,702,712,729],{"type":40,"tag":64,"props":693,"children":694},{},[695,700],{"type":40,"tag":68,"props":696,"children":697},{},[698],{"type":46,"value":699},"Default image",{"type":46,"value":701}," — no image flags, use whatever the job is configured with",{"type":40,"tag":64,"props":703,"children":704},{},[705,710],{"type":40,"tag":68,"props":706,"children":707},{},[708],{"type":46,"value":709},"Custom tag only",{"type":46,"value":711}," — override just the tag, keep default registry and repo",{"type":40,"tag":64,"props":713,"children":714},{},[715,720,722,728],{"type":40,"tag":68,"props":716,"children":717},{},[718],{"type":46,"value":719},"Custom repo + tag",{"type":46,"value":721}," — override image repository and tag, keep default registry (",{"type":40,"tag":76,"props":723,"children":725},{"className":724},[],[726],{"type":46,"value":727},"quay.io",{"type":46,"value":83},{"type":40,"tag":64,"props":730,"children":731},{},[732,737],{"type":40,"tag":68,"props":733,"children":734},{},[735],{"type":46,"value":736},"Fully custom image",{"type":46,"value":738}," — override registry, repo, and tag",{"type":40,"tag":49,"props":740,"children":741},{},[742,747,749,754,756,761,763,768,770,775],{"type":40,"tag":68,"props":743,"children":744},{},[745],{"type":46,"value":746},"Catalog & chart override:",{"type":46,"value":748},"\n5. ",{"type":40,"tag":68,"props":750,"children":751},{},[752],{"type":46,"value":753},"Catalog index image",{"type":46,"value":755}," — override the plugin catalog index image (",{"type":40,"tag":76,"props":757,"children":759},{"className":758},[],[760],{"type":46,"value":611},{"type":46,"value":762},")\n6. ",{"type":40,"tag":68,"props":764,"children":765},{},[766],{"type":46,"value":767},"Chart version",{"type":46,"value":769}," — override the Helm chart version (",{"type":40,"tag":76,"props":771,"children":773},{"className":772},[],[774],{"type":46,"value":654},{"type":46,"value":83},{"type":40,"tag":49,"props":777,"children":778},{},[779,784,786,791,793,799,801,806,808],{"type":40,"tag":68,"props":780,"children":781},{},[782],{"type":46,"value":783},"Additional options:",{"type":46,"value":785},"\n7. ",{"type":40,"tag":68,"props":787,"children":788},{},[789],{"type":46,"value":790},"Fork override",{"type":46,"value":792}," — run against a fork instead of ",{"type":40,"tag":76,"props":794,"children":796},{"className":795},[],[797],{"type":46,"value":798},"redhat-developer\u002Frhdh",{"type":46,"value":800},"\n8. ",{"type":40,"tag":68,"props":802,"children":803},{},[804],{"type":46,"value":805},"Send Slack alerts",{"type":46,"value":807}," — notify via ",{"type":40,"tag":76,"props":809,"children":811},{"className":810},[],[812],{"type":46,"value":662},{"type":40,"tag":49,"props":814,"children":815},{},[816,818,823,825,830,832,837,839,844],{"type":46,"value":817},"Constraint: ",{"type":40,"tag":76,"props":819,"children":821},{"className":820},[],[822],{"type":46,"value":639},{"type":46,"value":824}," requires ",{"type":40,"tag":76,"props":826,"children":828},{"className":827},[],[829],{"type":46,"value":646},{"type":46,"value":831},", but ",{"type":40,"tag":76,"props":833,"children":835},{"className":834},[],[836],{"type":46,"value":646},{"type":46,"value":838}," works on its own. ",{"type":40,"tag":76,"props":840,"children":842},{"className":841},[],[843],{"type":46,"value":619},{"type":46,"value":845}," is overlay-only and will error for RHDH jobs.",{"type":40,"tag":351,"props":847,"children":849},{"id":848},"follow-up-based-on-selections",[850],{"type":46,"value":851},"Follow-up based on selections",{"type":40,"tag":49,"props":853,"children":854},{},[855,860,862,868,870,876,878,884,886,891,893,898],{"type":40,"tag":68,"props":856,"children":857},{},[858],{"type":46,"value":859},"If 2 or 3 selected (quay.io registry)",{"type":46,"value":861}," — fetch available tags and present as numbered options. For ",{"type":40,"tag":76,"props":863,"children":865},{"className":864},[],[866],{"type":46,"value":867},"release-*",{"type":46,"value":869}," branches, derive ",{"type":40,"tag":76,"props":871,"children":873},{"className":872},[],[874],{"type":46,"value":875},"--tag-filter",{"type":46,"value":877}," by stripping the ",{"type":40,"tag":76,"props":879,"children":881},{"className":880},[],[882],{"type":46,"value":883},"release-",{"type":46,"value":885}," prefix. For ",{"type":40,"tag":76,"props":887,"children":889},{"className":888},[],[890],{"type":46,"value":259},{"type":46,"value":892},", omit ",{"type":40,"tag":76,"props":894,"children":896},{"className":895},[],[897],{"type":46,"value":875},{"type":46,"value":899}," to show all available versions:",{"type":40,"tag":181,"props":901,"children":903},{"className":183,"code":902,"language":185,"meta":186,"style":186},"# For release-1.10 branch:\nuv run scripts\u002Ftrigger_nightly_job.py --list-tags --tag-filter 1.10\n\n# For main branch (show all versions):\nuv run scripts\u002Ftrigger_nightly_job.py --list-tags\n",[904],{"type":40,"tag":76,"props":905,"children":906},{"__ignoreMap":186},[907,916,948,958,967],{"type":40,"tag":192,"props":908,"children":909},{"class":194,"line":195},[910],{"type":40,"tag":192,"props":911,"children":913},{"style":912},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[914],{"type":46,"value":915},"# For release-1.10 branch:\n",{"type":40,"tag":192,"props":917,"children":919},{"class":194,"line":918},2,[920,924,928,932,937,942],{"type":40,"tag":192,"props":921,"children":922},{"style":199},[923],{"type":46,"value":202},{"type":40,"tag":192,"props":925,"children":926},{"style":205},[927],{"type":46,"value":208},{"type":40,"tag":192,"props":929,"children":930},{"style":205},[931],{"type":46,"value":213},{"type":40,"tag":192,"props":933,"children":934},{"style":205},[935],{"type":46,"value":936}," --list-tags",{"type":40,"tag":192,"props":938,"children":939},{"style":205},[940],{"type":46,"value":941}," --tag-filter",{"type":40,"tag":192,"props":943,"children":945},{"style":944},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[946],{"type":46,"value":947}," 1.10\n",{"type":40,"tag":192,"props":949,"children":951},{"class":194,"line":950},3,[952],{"type":40,"tag":192,"props":953,"children":955},{"emptyLinePlaceholder":954},true,[956],{"type":46,"value":957},"\n",{"type":40,"tag":192,"props":959,"children":961},{"class":194,"line":960},4,[962],{"type":40,"tag":192,"props":963,"children":964},{"style":912},[965],{"type":46,"value":966},"# For main branch (show all versions):\n",{"type":40,"tag":192,"props":968,"children":970},{"class":194,"line":969},5,[971,975,979,983],{"type":40,"tag":192,"props":972,"children":973},{"style":199},[974],{"type":46,"value":202},{"type":40,"tag":192,"props":976,"children":977},{"style":205},[978],{"type":46,"value":208},{"type":40,"tag":192,"props":980,"children":981},{"style":205},[982],{"type":46,"value":213},{"type":40,"tag":192,"props":984,"children":985},{"style":205},[986],{"type":46,"value":987}," --list-tags\n",{"type":40,"tag":49,"props":989,"children":990},{},[991,993,999,1001,1007,1009,1015,1016,1022],{"type":46,"value":992},"Use ",{"type":40,"tag":76,"props":994,"children":996},{"className":995},[],[997],{"type":46,"value":998},"--image-repo \u003CREPO>",{"type":46,"value":1000}," to query a different image repository (default: ",{"type":40,"tag":76,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":46,"value":1006},"rhdh\u002Frhdh-hub-rhel9",{"type":46,"value":1008},"). Present the numbered results with a final option to enter a custom tag (e.g. ",{"type":40,"tag":76,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":46,"value":1014},"next",{"type":46,"value":590},{"type":40,"tag":76,"props":1017,"children":1019},{"className":1018},[],[1020],{"type":46,"value":1021},"latest",{"type":46,"value":1023},"). For option 3, also ask for the image repository.",{"type":40,"tag":49,"props":1025,"children":1026},{},[1027,1032],{"type":40,"tag":68,"props":1028,"children":1029},{},[1030],{"type":46,"value":1031},"If 4 selected (non-quay registry)",{"type":46,"value":1033}," — ask for all three values (tag fetching not available):",{"type":40,"tag":60,"props":1035,"children":1036},{},[1037,1049,1060],{"type":40,"tag":64,"props":1038,"children":1039},{},[1040,1042,1048],{"type":46,"value":1041},"Registry (e.g. ",{"type":40,"tag":76,"props":1043,"children":1045},{"className":1044},[],[1046],{"type":46,"value":1047},"brew.registry.redhat.io",{"type":46,"value":83},{"type":40,"tag":64,"props":1050,"children":1051},{},[1052,1054,1059],{"type":46,"value":1053},"Image repo (e.g. ",{"type":40,"tag":76,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":46,"value":1006},{"type":46,"value":83},{"type":40,"tag":64,"props":1061,"children":1062},{},[1063,1065,1071],{"type":46,"value":1064},"Tag (e.g. ",{"type":40,"tag":76,"props":1066,"children":1068},{"className":1067},[],[1069],{"type":46,"value":1070},"1.9",{"type":46,"value":83},{"type":40,"tag":49,"props":1073,"children":1074},{},[1075,1080,1082,1088,1090,1096],{"type":40,"tag":68,"props":1076,"children":1077},{},[1078],{"type":46,"value":1079},"If 5 selected",{"type":46,"value":1081}," — ask for catalog index image (e.g. ",{"type":40,"tag":76,"props":1083,"children":1085},{"className":1084},[],[1086],{"type":46,"value":1087},"quay.io\u002Frhdh\u002Fplugin-catalog-index:1.9-60",{"type":46,"value":1089}," for RC, ",{"type":40,"tag":76,"props":1091,"children":1093},{"className":1092},[],[1094],{"type":46,"value":1095},"registry.access.redhat.com\u002Frhdh\u002Fplugin-catalog-index:1.9.4",{"type":46,"value":1097}," for GA).",{"type":40,"tag":49,"props":1099,"children":1100},{},[1101,1106,1108,1114],{"type":40,"tag":68,"props":1102,"children":1103},{},[1104],{"type":46,"value":1105},"If 6 selected",{"type":46,"value":1107}," — ask for chart version (e.g. ",{"type":40,"tag":76,"props":1109,"children":1111},{"className":1110},[],[1112],{"type":46,"value":1113},"1.9-227-CI",{"type":46,"value":621},{"type":40,"tag":49,"props":1116,"children":1117},{},[1118,1123],{"type":40,"tag":68,"props":1119,"children":1120},{},[1121],{"type":46,"value":1122},"If 7 selected",{"type":46,"value":1124}," — ask for:",{"type":40,"tag":60,"props":1126,"children":1127},{},[1128,1146,1162],{"type":40,"tag":64,"props":1129,"children":1130},{},[1131,1133,1138,1140],{"type":46,"value":1132},"GitHub org (",{"type":40,"tag":76,"props":1134,"children":1136},{"className":1135},[],[1137],{"type":46,"value":588},{"type":46,"value":1139},"): e.g. ",{"type":40,"tag":76,"props":1141,"children":1143},{"className":1142},[],[1144],{"type":46,"value":1145},"my-github-user",{"type":40,"tag":64,"props":1147,"children":1148},{},[1149,1151,1156,1157],{"type":46,"value":1150},"Repo name (",{"type":40,"tag":76,"props":1152,"children":1154},{"className":1153},[],[1155],{"type":46,"value":596},{"type":46,"value":1139},{"type":40,"tag":76,"props":1158,"children":1160},{"className":1159},[],[1161],{"type":46,"value":72},{"type":40,"tag":64,"props":1163,"children":1164},{},[1165,1167,1172,1173],{"type":46,"value":1166},"Branch (",{"type":40,"tag":76,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":46,"value":603},{"type":46,"value":1139},{"type":40,"tag":76,"props":1174,"children":1176},{"className":1175},[],[1177],{"type":46,"value":1178},"my-feature-branch",{"type":40,"tag":102,"props":1180,"children":1182},{"id":1181},"step-3-confirm-and-execute",[1183],{"type":46,"value":1184},"Step 3: Confirm and Execute",{"type":40,"tag":49,"props":1186,"children":1187},{},[1188],{"type":46,"value":1189},"Show the full command and present final options:",{"type":40,"tag":181,"props":1191,"children":1193},{"className":183,"code":1192,"language":185,"meta":186,"style":186},"uv run scripts\u002Ftrigger_nightly_job.py \\\n  --job \u003CFULL_JOB_NAME> \\\n  [--image-registry \u003CREGISTRY>] \\\n  [--image-repo \u003CREPO>] \\\n  [--tag \u003CTAG>] \\\n  [--catalog-index-image \u003CIMAGE>] \\\n  [--chart-version \u003CVERSION>] \\\n  [--playwright-version \u003CVERSION>] \\\n  [--org \u003CORG>] \\\n  [--repo \u003CREPO>] \\\n  [--branch \u003CBRANCH>] \\\n  [--send-alerts] \\\n  [--dry-run]\n",[1194],{"type":40,"tag":76,"props":1195,"children":1196},{"__ignoreMap":186},[1197,1218,1251,1287,1321,1355,1389,1424,1457,1491,1524,1559,1568],{"type":40,"tag":192,"props":1198,"children":1199},{"class":194,"line":195},[1200,1204,1208,1212],{"type":40,"tag":192,"props":1201,"children":1202},{"style":199},[1203],{"type":46,"value":202},{"type":40,"tag":192,"props":1205,"children":1206},{"style":205},[1207],{"type":46,"value":208},{"type":40,"tag":192,"props":1209,"children":1210},{"style":205},[1211],{"type":46,"value":213},{"type":40,"tag":192,"props":1213,"children":1215},{"style":1214},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1216],{"type":46,"value":1217}," \\\n",{"type":40,"tag":192,"props":1219,"children":1220},{"class":194,"line":918},[1221,1226,1232,1237,1242,1247],{"type":40,"tag":192,"props":1222,"children":1223},{"style":205},[1224],{"type":46,"value":1225},"  --job",{"type":40,"tag":192,"props":1227,"children":1229},{"style":1228},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1230],{"type":46,"value":1231}," \u003C",{"type":40,"tag":192,"props":1233,"children":1234},{"style":205},[1235],{"type":46,"value":1236},"FULL_JOB_NAM",{"type":40,"tag":192,"props":1238,"children":1239},{"style":1214},[1240],{"type":46,"value":1241},"E",{"type":40,"tag":192,"props":1243,"children":1244},{"style":1228},[1245],{"type":46,"value":1246},">",{"type":40,"tag":192,"props":1248,"children":1249},{"style":1214},[1250],{"type":46,"value":1217},{"type":40,"tag":192,"props":1252,"children":1253},{"class":194,"line":950},[1254,1259,1264,1269,1274,1278,1283],{"type":40,"tag":192,"props":1255,"children":1256},{"style":1214},[1257],{"type":46,"value":1258},"  [--image-registry ",{"type":40,"tag":192,"props":1260,"children":1261},{"style":1228},[1262],{"type":46,"value":1263},"\u003C",{"type":40,"tag":192,"props":1265,"children":1266},{"style":205},[1267],{"type":46,"value":1268},"REGISTR",{"type":40,"tag":192,"props":1270,"children":1271},{"style":1214},[1272],{"type":46,"value":1273},"Y",{"type":40,"tag":192,"props":1275,"children":1276},{"style":1228},[1277],{"type":46,"value":1246},{"type":40,"tag":192,"props":1279,"children":1280},{"style":205},[1281],{"type":46,"value":1282},"]",{"type":40,"tag":192,"props":1284,"children":1285},{"style":1214},[1286],{"type":46,"value":1217},{"type":40,"tag":192,"props":1288,"children":1289},{"class":194,"line":960},[1290,1295,1299,1304,1309,1313,1317],{"type":40,"tag":192,"props":1291,"children":1292},{"style":1214},[1293],{"type":46,"value":1294},"  [--image-repo ",{"type":40,"tag":192,"props":1296,"children":1297},{"style":1228},[1298],{"type":46,"value":1263},{"type":40,"tag":192,"props":1300,"children":1301},{"style":205},[1302],{"type":46,"value":1303},"REP",{"type":40,"tag":192,"props":1305,"children":1306},{"style":1214},[1307],{"type":46,"value":1308},"O",{"type":40,"tag":192,"props":1310,"children":1311},{"style":1228},[1312],{"type":46,"value":1246},{"type":40,"tag":192,"props":1314,"children":1315},{"style":205},[1316],{"type":46,"value":1282},{"type":40,"tag":192,"props":1318,"children":1319},{"style":1214},[1320],{"type":46,"value":1217},{"type":40,"tag":192,"props":1322,"children":1323},{"class":194,"line":969},[1324,1329,1333,1338,1343,1347,1351],{"type":40,"tag":192,"props":1325,"children":1326},{"style":1214},[1327],{"type":46,"value":1328},"  [--tag ",{"type":40,"tag":192,"props":1330,"children":1331},{"style":1228},[1332],{"type":46,"value":1263},{"type":40,"tag":192,"props":1334,"children":1335},{"style":205},[1336],{"type":46,"value":1337},"TA",{"type":40,"tag":192,"props":1339,"children":1340},{"style":1214},[1341],{"type":46,"value":1342},"G",{"type":40,"tag":192,"props":1344,"children":1345},{"style":1228},[1346],{"type":46,"value":1246},{"type":40,"tag":192,"props":1348,"children":1349},{"style":205},[1350],{"type":46,"value":1282},{"type":40,"tag":192,"props":1352,"children":1353},{"style":1214},[1354],{"type":46,"value":1217},{"type":40,"tag":192,"props":1356,"children":1358},{"class":194,"line":1357},6,[1359,1364,1368,1373,1377,1381,1385],{"type":40,"tag":192,"props":1360,"children":1361},{"style":1214},[1362],{"type":46,"value":1363},"  [--catalog-index-image ",{"type":40,"tag":192,"props":1365,"children":1366},{"style":1228},[1367],{"type":46,"value":1263},{"type":40,"tag":192,"props":1369,"children":1370},{"style":205},[1371],{"type":46,"value":1372},"IMAG",{"type":40,"tag":192,"props":1374,"children":1375},{"style":1214},[1376],{"type":46,"value":1241},{"type":40,"tag":192,"props":1378,"children":1379},{"style":1228},[1380],{"type":46,"value":1246},{"type":40,"tag":192,"props":1382,"children":1383},{"style":205},[1384],{"type":46,"value":1282},{"type":40,"tag":192,"props":1386,"children":1387},{"style":1214},[1388],{"type":46,"value":1217},{"type":40,"tag":192,"props":1390,"children":1392},{"class":194,"line":1391},7,[1393,1398,1402,1407,1412,1416,1420],{"type":40,"tag":192,"props":1394,"children":1395},{"style":1214},[1396],{"type":46,"value":1397},"  [--chart-version ",{"type":40,"tag":192,"props":1399,"children":1400},{"style":1228},[1401],{"type":46,"value":1263},{"type":40,"tag":192,"props":1403,"children":1404},{"style":205},[1405],{"type":46,"value":1406},"VERSIO",{"type":40,"tag":192,"props":1408,"children":1409},{"style":1214},[1410],{"type":46,"value":1411},"N",{"type":40,"tag":192,"props":1413,"children":1414},{"style":1228},[1415],{"type":46,"value":1246},{"type":40,"tag":192,"props":1417,"children":1418},{"style":205},[1419],{"type":46,"value":1282},{"type":40,"tag":192,"props":1421,"children":1422},{"style":1214},[1423],{"type":46,"value":1217},{"type":40,"tag":192,"props":1425,"children":1427},{"class":194,"line":1426},8,[1428,1433,1437,1441,1445,1449,1453],{"type":40,"tag":192,"props":1429,"children":1430},{"style":1214},[1431],{"type":46,"value":1432},"  [--playwright-version ",{"type":40,"tag":192,"props":1434,"children":1435},{"style":1228},[1436],{"type":46,"value":1263},{"type":40,"tag":192,"props":1438,"children":1439},{"style":205},[1440],{"type":46,"value":1406},{"type":40,"tag":192,"props":1442,"children":1443},{"style":1214},[1444],{"type":46,"value":1411},{"type":40,"tag":192,"props":1446,"children":1447},{"style":1228},[1448],{"type":46,"value":1246},{"type":40,"tag":192,"props":1450,"children":1451},{"style":205},[1452],{"type":46,"value":1282},{"type":40,"tag":192,"props":1454,"children":1455},{"style":1214},[1456],{"type":46,"value":1217},{"type":40,"tag":192,"props":1458,"children":1460},{"class":194,"line":1459},9,[1461,1466,1470,1475,1479,1483,1487],{"type":40,"tag":192,"props":1462,"children":1463},{"style":1214},[1464],{"type":46,"value":1465},"  [--org ",{"type":40,"tag":192,"props":1467,"children":1468},{"style":1228},[1469],{"type":46,"value":1263},{"type":40,"tag":192,"props":1471,"children":1472},{"style":205},[1473],{"type":46,"value":1474},"OR",{"type":40,"tag":192,"props":1476,"children":1477},{"style":1214},[1478],{"type":46,"value":1342},{"type":40,"tag":192,"props":1480,"children":1481},{"style":1228},[1482],{"type":46,"value":1246},{"type":40,"tag":192,"props":1484,"children":1485},{"style":205},[1486],{"type":46,"value":1282},{"type":40,"tag":192,"props":1488,"children":1489},{"style":1214},[1490],{"type":46,"value":1217},{"type":40,"tag":192,"props":1492,"children":1494},{"class":194,"line":1493},10,[1495,1500,1504,1508,1512,1516,1520],{"type":40,"tag":192,"props":1496,"children":1497},{"style":1214},[1498],{"type":46,"value":1499},"  [--repo ",{"type":40,"tag":192,"props":1501,"children":1502},{"style":1228},[1503],{"type":46,"value":1263},{"type":40,"tag":192,"props":1505,"children":1506},{"style":205},[1507],{"type":46,"value":1303},{"type":40,"tag":192,"props":1509,"children":1510},{"style":1214},[1511],{"type":46,"value":1308},{"type":40,"tag":192,"props":1513,"children":1514},{"style":1228},[1515],{"type":46,"value":1246},{"type":40,"tag":192,"props":1517,"children":1518},{"style":205},[1519],{"type":46,"value":1282},{"type":40,"tag":192,"props":1521,"children":1522},{"style":1214},[1523],{"type":46,"value":1217},{"type":40,"tag":192,"props":1525,"children":1527},{"class":194,"line":1526},11,[1528,1533,1537,1542,1547,1551,1555],{"type":40,"tag":192,"props":1529,"children":1530},{"style":1214},[1531],{"type":46,"value":1532},"  [--branch ",{"type":40,"tag":192,"props":1534,"children":1535},{"style":1228},[1536],{"type":46,"value":1263},{"type":40,"tag":192,"props":1538,"children":1539},{"style":205},[1540],{"type":46,"value":1541},"BRANC",{"type":40,"tag":192,"props":1543,"children":1544},{"style":1214},[1545],{"type":46,"value":1546},"H",{"type":40,"tag":192,"props":1548,"children":1549},{"style":1228},[1550],{"type":46,"value":1246},{"type":40,"tag":192,"props":1552,"children":1553},{"style":205},[1554],{"type":46,"value":1282},{"type":40,"tag":192,"props":1556,"children":1557},{"style":1214},[1558],{"type":46,"value":1217},{"type":40,"tag":192,"props":1560,"children":1562},{"class":194,"line":1561},12,[1563],{"type":40,"tag":192,"props":1564,"children":1565},{"style":1214},[1566],{"type":46,"value":1567},"  [--send-alerts] \\\n",{"type":40,"tag":192,"props":1569,"children":1571},{"class":194,"line":1570},13,[1572,1577,1582],{"type":40,"tag":192,"props":1573,"children":1574},{"style":1228},[1575],{"type":46,"value":1576},"  [",{"type":40,"tag":192,"props":1578,"children":1579},{"style":1214},[1580],{"type":46,"value":1581},"--dry-run",{"type":40,"tag":192,"props":1583,"children":1584},{"style":1228},[1585],{"type":46,"value":1586},"]\n",{"type":40,"tag":151,"props":1588,"children":1589},{},[1590,1600],{"type":40,"tag":64,"props":1591,"children":1592},{},[1593,1598],{"type":40,"tag":68,"props":1594,"children":1595},{},[1596],{"type":46,"value":1597},"Execute",{"type":46,"value":1599}," — run the command as shown",{"type":40,"tag":64,"props":1601,"children":1602},{},[1603,1608],{"type":40,"tag":68,"props":1604,"children":1605},{},[1606],{"type":46,"value":1607},"Change something",{"type":46,"value":1609}," — go back and modify parameters",{"type":40,"tag":49,"props":1611,"children":1612},{},[1613],{"type":46,"value":1614},"After execution, show the API response. If a job URL or ID is returned, display it prominently. On error, help diagnose (common issues: expired token, invalid job name).",{"type":40,"tag":351,"props":1616,"children":1618},{"id":1617},"rc-verification-example",[1619],{"type":46,"value":1620},"RC Verification Example",{"type":40,"tag":181,"props":1622,"children":1624},{"className":183,"code":1623,"language":185,"meta":186,"style":186},"uv run scripts\u002Ftrigger_nightly_job.py \\\n  --job periodic-ci-redhat-developer-rhdh-main-e2e-ocp-helm-nightly \\\n  --image-repo rhdh\u002Frhdh-hub-rhel9 --tag 1.9-227 \\\n  --catalog-index-image quay.io\u002Frhdh\u002Fplugin-catalog-index:1.9 \\\n  --chart-version 1.9-227-CI\n",[1625],{"type":40,"tag":76,"props":1626,"children":1627},{"__ignoreMap":186},[1628,1647,1663,1690,1707],{"type":40,"tag":192,"props":1629,"children":1630},{"class":194,"line":195},[1631,1635,1639,1643],{"type":40,"tag":192,"props":1632,"children":1633},{"style":199},[1634],{"type":46,"value":202},{"type":40,"tag":192,"props":1636,"children":1637},{"style":205},[1638],{"type":46,"value":208},{"type":40,"tag":192,"props":1640,"children":1641},{"style":205},[1642],{"type":46,"value":213},{"type":40,"tag":192,"props":1644,"children":1645},{"style":1214},[1646],{"type":46,"value":1217},{"type":40,"tag":192,"props":1648,"children":1649},{"class":194,"line":918},[1650,1654,1659],{"type":40,"tag":192,"props":1651,"children":1652},{"style":205},[1653],{"type":46,"value":1225},{"type":40,"tag":192,"props":1655,"children":1656},{"style":205},[1657],{"type":46,"value":1658}," periodic-ci-redhat-developer-rhdh-main-e2e-ocp-helm-nightly",{"type":40,"tag":192,"props":1660,"children":1661},{"style":1214},[1662],{"type":46,"value":1217},{"type":40,"tag":192,"props":1664,"children":1665},{"class":194,"line":950},[1666,1671,1676,1681,1686],{"type":40,"tag":192,"props":1667,"children":1668},{"style":205},[1669],{"type":46,"value":1670},"  --image-repo",{"type":40,"tag":192,"props":1672,"children":1673},{"style":205},[1674],{"type":46,"value":1675}," rhdh\u002Frhdh-hub-rhel9",{"type":40,"tag":192,"props":1677,"children":1678},{"style":205},[1679],{"type":46,"value":1680}," --tag",{"type":40,"tag":192,"props":1682,"children":1683},{"style":205},[1684],{"type":46,"value":1685}," 1.9-227",{"type":40,"tag":192,"props":1687,"children":1688},{"style":1214},[1689],{"type":46,"value":1217},{"type":40,"tag":192,"props":1691,"children":1692},{"class":194,"line":960},[1693,1698,1703],{"type":40,"tag":192,"props":1694,"children":1695},{"style":205},[1696],{"type":46,"value":1697},"  --catalog-index-image",{"type":40,"tag":192,"props":1699,"children":1700},{"style":205},[1701],{"type":46,"value":1702}," quay.io\u002Frhdh\u002Fplugin-catalog-index:1.9",{"type":40,"tag":192,"props":1704,"children":1705},{"style":1214},[1706],{"type":46,"value":1217},{"type":40,"tag":192,"props":1708,"children":1709},{"class":194,"line":969},[1710,1715],{"type":40,"tag":192,"props":1711,"children":1712},{"style":205},[1713],{"type":46,"value":1714},"  --chart-version",{"type":40,"tag":192,"props":1716,"children":1717},{"style":205},[1718],{"type":46,"value":1719}," 1.9-227-CI\n",{"type":40,"tag":351,"props":1721,"children":1723},{"id":1722},"ga-verification-example",[1724],{"type":46,"value":1725},"GA Verification Example",{"type":40,"tag":181,"props":1727,"children":1729},{"className":183,"code":1728,"language":185,"meta":186,"style":186},"uv run scripts\u002Ftrigger_nightly_job.py \\\n  --job periodic-ci-redhat-developer-rhdh-main-e2e-ocp-helm-nightly \\\n  --image-registry registry.redhat.io --image-repo rhdh\u002Frhdh-hub-rhel9 --tag 1.9.4 \\\n  --catalog-index-image registry.access.redhat.com\u002Frhdh\u002Fplugin-catalog-index:1.9.4\n",[1730],{"type":40,"tag":76,"props":1731,"children":1732},{"__ignoreMap":186},[1733,1752,1767,1802],{"type":40,"tag":192,"props":1734,"children":1735},{"class":194,"line":195},[1736,1740,1744,1748],{"type":40,"tag":192,"props":1737,"children":1738},{"style":199},[1739],{"type":46,"value":202},{"type":40,"tag":192,"props":1741,"children":1742},{"style":205},[1743],{"type":46,"value":208},{"type":40,"tag":192,"props":1745,"children":1746},{"style":205},[1747],{"type":46,"value":213},{"type":40,"tag":192,"props":1749,"children":1750},{"style":1214},[1751],{"type":46,"value":1217},{"type":40,"tag":192,"props":1753,"children":1754},{"class":194,"line":918},[1755,1759,1763],{"type":40,"tag":192,"props":1756,"children":1757},{"style":205},[1758],{"type":46,"value":1225},{"type":40,"tag":192,"props":1760,"children":1761},{"style":205},[1762],{"type":46,"value":1658},{"type":40,"tag":192,"props":1764,"children":1765},{"style":1214},[1766],{"type":46,"value":1217},{"type":40,"tag":192,"props":1768,"children":1769},{"class":194,"line":950},[1770,1775,1780,1785,1789,1793,1798],{"type":40,"tag":192,"props":1771,"children":1772},{"style":205},[1773],{"type":46,"value":1774},"  --image-registry",{"type":40,"tag":192,"props":1776,"children":1777},{"style":205},[1778],{"type":46,"value":1779}," registry.redhat.io",{"type":40,"tag":192,"props":1781,"children":1782},{"style":205},[1783],{"type":46,"value":1784}," --image-repo",{"type":40,"tag":192,"props":1786,"children":1787},{"style":205},[1788],{"type":46,"value":1675},{"type":40,"tag":192,"props":1790,"children":1791},{"style":205},[1792],{"type":46,"value":1680},{"type":40,"tag":192,"props":1794,"children":1795},{"style":944},[1796],{"type":46,"value":1797}," 1.9.4",{"type":40,"tag":192,"props":1799,"children":1800},{"style":1214},[1801],{"type":46,"value":1217},{"type":40,"tag":192,"props":1803,"children":1804},{"class":194,"line":960},[1805,1809],{"type":40,"tag":192,"props":1806,"children":1807},{"style":205},[1808],{"type":46,"value":1697},{"type":40,"tag":192,"props":1810,"children":1811},{"style":205},[1812],{"type":46,"value":1813}," registry.access.redhat.com\u002Frhdh\u002Fplugin-catalog-index:1.9.4\n",{"type":40,"tag":102,"props":1815,"children":1817},{"id":1816},"reference",[1818],{"type":46,"value":1819},"Reference",{"type":40,"tag":60,"props":1821,"children":1822},{},[1823,1935,1948,1953,1966,1977],{"type":40,"tag":64,"props":1824,"children":1825},{},[1826,1828,1834,1835,1841,1842,1848,1849,1854,1855,1861,1862,1868,1869,1875,1876,1881,1882,1887,1888,1893,1894,1900,1901,1907,1908,1914,1915,1921,1922,1928,1929],{"type":46,"value":1827},"Script flags: ",{"type":40,"tag":76,"props":1829,"children":1831},{"className":1830},[],[1832],{"type":46,"value":1833},"-j\u002F--job",{"type":46,"value":590},{"type":40,"tag":76,"props":1836,"children":1838},{"className":1837},[],[1839],{"type":46,"value":1840},"-l\u002F--list",{"type":46,"value":590},{"type":40,"tag":76,"props":1843,"children":1845},{"className":1844},[],[1846],{"type":46,"value":1847},"-T\u002F--list-tags",{"type":46,"value":590},{"type":40,"tag":76,"props":1850,"children":1852},{"className":1851},[],[1853],{"type":46,"value":875},{"type":46,"value":590},{"type":40,"tag":76,"props":1856,"children":1858},{"className":1857},[],[1859],{"type":46,"value":1860},"-I\u002F--image-registry",{"type":46,"value":590},{"type":40,"tag":76,"props":1863,"children":1865},{"className":1864},[],[1866],{"type":46,"value":1867},"-q\u002F--image-repo",{"type":46,"value":590},{"type":40,"tag":76,"props":1870,"children":1872},{"className":1871},[],[1873],{"type":46,"value":1874},"-t\u002F--tag",{"type":46,"value":590},{"type":40,"tag":76,"props":1877,"children":1879},{"className":1878},[],[1880],{"type":46,"value":611},{"type":46,"value":590},{"type":40,"tag":76,"props":1883,"children":1885},{"className":1884},[],[1886],{"type":46,"value":654},{"type":46,"value":590},{"type":40,"tag":76,"props":1889,"children":1891},{"className":1890},[],[1892],{"type":46,"value":619},{"type":46,"value":590},{"type":40,"tag":76,"props":1895,"children":1897},{"className":1896},[],[1898],{"type":46,"value":1899},"-o\u002F--org",{"type":46,"value":590},{"type":40,"tag":76,"props":1902,"children":1904},{"className":1903},[],[1905],{"type":46,"value":1906},"-r\u002F--repo",{"type":46,"value":590},{"type":40,"tag":76,"props":1909,"children":1911},{"className":1910},[],[1912],{"type":46,"value":1913},"-b\u002F--branch",{"type":46,"value":590},{"type":40,"tag":76,"props":1916,"children":1918},{"className":1917},[],[1919],{"type":46,"value":1920},"-S\u002F--send-alerts",{"type":46,"value":590},{"type":40,"tag":76,"props":1923,"children":1925},{"className":1924},[],[1926],{"type":46,"value":1927},"-n\u002F--dry-run",{"type":46,"value":590},{"type":40,"tag":76,"props":1930,"children":1932},{"className":1931},[],[1933],{"type":46,"value":1934},"--json",{"type":40,"tag":64,"props":1936,"children":1937},{},[1938,1940,1946],{"type":46,"value":1939},"Dedicated kubeconfig at ",{"type":40,"tag":76,"props":1941,"children":1943},{"className":1942},[],[1944],{"type":46,"value":1945},"~\u002F.config\u002Fopenshift-ci\u002Fkubeconfig",{"type":46,"value":1947}," — won't interfere with your current cluster context",{"type":40,"tag":64,"props":1949,"children":1950},{},[1951],{"type":46,"value":1952},"If auth is needed, the script opens a browser for SSO login",{"type":40,"tag":64,"props":1954,"children":1955},{},[1956,1958],{"type":46,"value":1957},"RHDH jobs list: ",{"type":40,"tag":1959,"props":1960,"children":1964},"a",{"href":1961,"rel":1962},"https:\u002F\u002Fprow.ci.openshift.org\u002Fconfigured-jobs\u002Fredhat-developer\u002Frhdh",[1963],"nofollow",[1965],{"type":46,"value":1961},{"type":40,"tag":64,"props":1967,"children":1968},{},[1969,1971],{"type":46,"value":1970},"Overlay jobs list: ",{"type":40,"tag":1959,"props":1972,"children":1975},{"href":1973,"rel":1974},"https:\u002F\u002Fprow.ci.openshift.org\u002Fconfigured-jobs\u002Fredhat-developer\u002Frhdh-plugin-export-overlays",[1963],[1976],{"type":46,"value":1973},{"type":40,"tag":64,"props":1978,"children":1979},{},[1980,1982],{"type":46,"value":1981},"Image tags: ",{"type":40,"tag":1959,"props":1983,"children":1986},{"href":1984,"rel":1985},"https:\u002F\u002Fquay.io\u002Frepository\u002Frhdh\u002Frhdh-hub-rhel9?tab=tags",[1963],[1987],{"type":46,"value":1984},{"type":40,"tag":102,"props":1989,"children":1991},{"id":1990},"related-skills",[1992],{"type":46,"value":1993},"Related Skills",{"type":40,"tag":60,"props":1995,"children":1996},{},[1997],{"type":40,"tag":64,"props":1998,"children":1999},{},[2000,2009],{"type":40,"tag":68,"props":2001,"children":2002},{},[2003],{"type":40,"tag":76,"props":2004,"children":2006},{"className":2005},[],[2007],{"type":46,"value":2008},"overlay",{"type":46,"value":2010},": Manage the rhdh-plugin-export-overlays repository",{"type":40,"tag":2012,"props":2013,"children":2014},"style",{},[2015],{"type":46,"value":2016},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2018,"total":2188},[2019,2035,2049,2066,2082,2099,2110,2129,2141,2152,2164,2176],{"slug":2020,"name":2020,"fn":2021,"description":2022,"org":2023,"tags":2024,"stars":23,"repoUrl":24,"updatedAt":2034},"agent-ready","assess repository readiness for AI agents","Assesses a git repository's readiness for use by AI coding agents using the agentready CLI, then walks through and addresses each gap. RHDH-aware: detects RHDH repositories and uses rhdh-repos.md context to pre-fill AGENTS.md and skip inapplicable findings. Use when asked to \"assess agent readiness\", \"run agentready\", \"check how agent-ready this repo is\", \"make this repo agent-ready\", \"improve agent readiness score\", \"assess all RHDH repos\", \"batch agent readiness\", or \"onboard this repo for agents\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2025,2028,2031],{"name":2026,"slug":2027,"type":16},"Agents","agents",{"name":2029,"slug":2030,"type":16},"Code Analysis","code-analysis",{"name":2032,"slug":2033,"type":16},"Engineering","engineering","2026-07-16T06:03:24.758348",{"slug":2036,"name":2036,"fn":2037,"description":2038,"org":2039,"tags":2040,"stars":23,"repoUrl":24,"updatedAt":2048},"backstage-upgrade","upgrade Backstage dependencies","Upgrade @backstage\u002F* dependencies in a plugin or app to a target version. Use when asked to \"upgrade backstage\", \"bump backstage\", \"update @backstage\", \"align backstage deps\", \"backstage version bump\", \"upgrade dependencies\", \"backstage-cli versions:bump\", \"update to latest backstage\", \"fix version mismatch\", \"backstage version alignment\", \"upgrade before migration\", or any request to update Backstage package versions in a project.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2041,2042,2045],{"name":2032,"slug":2033,"type":16},{"name":2043,"slug":2044,"type":16},"Maintenance","maintenance",{"name":2046,"slug":2047,"type":16},"Migration","migration","2026-07-16T06:03:24.067361",{"slug":2050,"name":2050,"fn":2051,"description":2052,"org":2053,"tags":2054,"stars":23,"repoUrl":24,"updatedAt":2065},"base-images-and-rpms","update base images and lockfiles","Updates base images with updateBaseImages.sh and regenerates rpms.lock.yaml with rpm-lockfile-prototype in redhat-developer\u002Frhdh, rhdh-must-gather, and rhdh-operator. Use --analyze for read-only Containerfile\u002FDockerfile scan (current vs latest tags, UBI skew). Use for weekly upstream maintenance, UBI\u002FRHEL base image bumps, RPM lockfile refresh, base-images-and-rpms, main, release-*, or analyzing base images before updating.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2055,2056,2059,2062],{"name":14,"slug":15,"type":16},{"name":2057,"slug":2058,"type":16},"Configuration","configuration",{"name":2060,"slug":2061,"type":16},"Containers","containers",{"name":2063,"slug":2064,"type":16},"Deployment","deployment","2026-07-16T06:03:27.784453",{"slug":2067,"name":2067,"fn":2068,"description":2069,"org":2070,"tags":2071,"stars":23,"repoUrl":24,"updatedAt":2081},"bug-fix","diagnose and fix plugin bugs","Reproduce, diagnose, fix, and PR plugin bugs from Jira tickets or GitHub issues. Works with both rhdh-plugins and community-plugins. Supports UI bugs (Playwright e2e with before\u002Fafter recordings) and backend bugs (unit\u002Fintegration test verification). Triages issues for agent-readiness before attempting a fix. Accepts a Jira key (RHDHBUGS-1934), Jira URL (redhat.atlassian.net\u002Fbrowse\u002F...), GitHub issue URL (github.com\u002F...\u002Fissues\u002FN), or a request to \"fix this bug\", \"reproduce and fix\", \"\u002Fbug-fix\". By default, stops after the fix for user verification before PR creation. Supports --no-verify mode to skip the verification gate and auto-create the PR. Chains into raise-pr for the full PR lifecycle.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2072,2075,2078],{"name":2073,"slug":2074,"type":16},"Debugging","debugging",{"name":2076,"slug":2077,"type":16},"QA","qa",{"name":2079,"slug":2080,"type":16},"Testing","testing","2026-07-29T06:00:33.054762",{"slug":2083,"name":2083,"fn":2084,"description":2085,"org":2086,"tags":2087,"stars":23,"repoUrl":24,"updatedAt":2098},"compute-plugin-package-overlay-cve-list","generate CVE management reports","Builds an RHDH CVE Management CSV from GA plugin workspace changes in rhdh-plugin-export-overlays since a version tag (patches, source.json, plugins-list). One row per CVE × plugins-list package (multi-workspace CVEs expand). Use for \"CVE CSV\", \"workspace CVEs since tag\", \"collect overlay CVEs\", \"CVE management CSV\", orchestrator\u002Flightspeed CVE review, or plugin package overlay CVE list.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2088,2091,2092,2095],{"name":2089,"slug":2090,"type":16},"Compliance","compliance",{"name":2032,"slug":2033,"type":16},{"name":2093,"slug":2094,"type":16},"Reporting","reporting",{"name":2096,"slug":2097,"type":16},"Security","security","2026-08-01T05:41:57.852801",{"slug":2100,"name":2100,"fn":2101,"description":2102,"org":2103,"tags":2104,"stars":23,"repoUrl":24,"updatedAt":2109},"create-plugin","scaffold and package RHDH dynamic plugins","Full lifecycle for RHDH dynamic plugins — scaffold, implement, export, package, and configure. Use when asked to \"create RHDH plugin\", \"bootstrap dynamic plugin\", \"create backend plugin\", \"create frontend plugin\", \"export dynamic plugin\", \"package plugin as OCI\", \"generate frontend wiring\", \"create plugin container image\", \"configure mount points\", \"create dynamic route\", \"add entity card\", \"scaffold RHDH plugin\", \"publish plugin to registry\", \"create tgz archive\", or mentions creating, exporting, packaging, or wiring a Backstage plugin for Red Hat Developer Hub. Also use when asked to \"build a plugin from scratch\", \"dynamic plugin tutorial\", \"RHDH plugin from scratch\", or \"build Backstage plugin for RHDH\". Covers backend plugins (APIs, scaffolder actions, processors), frontend plugins (pages, cards, themes), export\u002Fpackaging (OCI, tgz, npm), and frontend wiring configuration (mount points, routes, entity tabs, themes).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2105,2106],{"name":2063,"slug":2064,"type":16},{"name":2107,"slug":2108,"type":16},"Plugin Development","plugin-development","2026-07-16T06:02:28.983498",{"slug":2111,"name":2111,"fn":2112,"description":2113,"org":2114,"tags":2115,"stars":23,"repoUrl":24,"updatedAt":2128},"cursor-mcp-auth","authenticate Atlassian MCP for Jira","Ensures Cursor Atlassian MCP (plugin-atlassian-atlassian → mcp.atlassian.com) is authenticated for redhat.atlassian.net via OAuth. Use for \"authenticate Jira\", \"Atlassian MCP\", \"jira auth failed\", \"mcp_auth Atlassian\", \"cursor MCP auth\", or when another skill needs working Jira access through Cursor MCP.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2116,2119,2122,2125],{"name":2117,"slug":2118,"type":16},"Auth","auth",{"name":2120,"slug":2121,"type":16},"Jira","jira",{"name":2123,"slug":2124,"type":16},"MCP","mcp",{"name":2126,"slug":2127,"type":16},"OAuth","oauth","2026-07-29T06:00:33.525179",{"slug":2130,"name":2130,"fn":2131,"description":2132,"org":2133,"tags":2134,"stars":23,"repoUrl":24,"updatedAt":2140},"konflux-release-data-rpa","update release tags in konflux-release-data","Bumps RHDH ReleasePlanAdmission tag versions in konflux-release-data for a stream release (e.g. 1.9.7), opens a GitLab merge request, and launches it in the browser. Use when updating RPA tags, konflux-release-data, ReleasePlanAdmission, rhdh-1-9-*.yaml, rhdh-plugin-catalog-1-9-*.yaml, or preparing an RHDH patch release.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2135,2136,2137],{"name":14,"slug":15,"type":16},{"name":2063,"slug":2064,"type":16},{"name":2138,"slug":2139,"type":16},"GitLab","gitlab","2026-07-16T06:00:19.516231",{"slug":2142,"name":2142,"fn":2143,"description":2144,"org":2145,"tags":2146,"stars":23,"repoUrl":24,"updatedAt":2151},"konflux-tekton-updates","update Konflux Tekton task digests","Bumps Konflux Tekton task digests with .tekton\u002FupdateDigests.sh --minor --no-push, applies konflux-ci\u002Fbuild-definitions MIGRATION.md pipeline fixes, and regenerates PipelineRuns. Use for rhdh-plugin-catalog, RHDH midstream (4-rhdh), Konflux task minor bumps, prefetch-dependencies-oci-ta, build-image-index, or updateDigests.sh.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2147,2148,2149,2150],{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"name":2063,"slug":2064,"type":16},{"name":2032,"slug":2033,"type":16},"2026-07-16T06:03:28.123118",{"slug":2153,"name":2153,"fn":2154,"description":2155,"org":2156,"tags":2157,"stars":23,"repoUrl":24,"updatedAt":2163},"lifecycle","check Red Hat product lifecycle status","Check version lifecycle and support status for platforms and integrations used by RHDH. Covers OCP, AKS, EKS, GKE, RHDH releases, RHBK, Quay, PostgreSQL, and any Red Hat product via the Product Life Cycles API. Use when asking about version support, EOL dates, GA dates, support phases, or planning version upgrades. Also use for \"is X still supported\", \"what versions should we test\", or \"when does X reach EOL\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2158,2159,2160],{"name":2089,"slug":2090,"type":16},{"name":2043,"slug":2044,"type":16},{"name":2161,"slug":2162,"type":16},"Operations","operations","2026-07-16T06:03:19.344038",{"slug":2165,"name":2165,"fn":2166,"description":2167,"org":2168,"tags":2169,"stars":23,"repoUrl":24,"updatedAt":2175},"nfs-migration","migrate plugins to New Frontend System","Migrate Backstage frontend plugins from the legacy system to the New Frontend System (NFS). Use when asked to \"migrate to NFS\", \"new frontend system\", \"convert plugin to NFS\", \"createFrontendPlugin\", \"PageBlueprint\", \"ApiBlueprint\", \"SubPageBlueprint\", \"alpha to GA\", \"legacy to NFS\", \"frontend migration\", \"extension blueprints\", \"migrate frontend plugin\", \"NFS support\", \"graduate alpha\", or mentions migrating a Backstage plugin to the new frontend system for RHDH.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2170,2171,2174],{"name":2032,"slug":2033,"type":16},{"name":2172,"slug":2173,"type":16},"Frontend","frontend",{"name":2046,"slug":2047,"type":16},"2026-07-16T06:03:27.078987",{"slug":2008,"name":2008,"fn":2177,"description":2178,"org":2179,"tags":2180,"stars":23,"repoUrl":24,"updatedAt":2187},"manage RHDH plugin export overlays","Manages the rhdh-plugin-export-overlays repository — onboards plugins to the Extensions Catalog, updates plugin versions, fixes overlay build failures, triages and analyzes PRs, triggers publishes, and manages plugin workspaces. Use when working with overlays, importing plugins, debugging CI, checking PRs, bumping versions, or mentions \"Extensions Catalog\", \"overlay build failed\", \"plugin registry\", \"overlay PR\", \"overlay doctor\", \"plugin import\", \"add plugin to catalog\", \"onboard plugin\", or \"plugin workspace\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2181,2182,2185,2186],{"name":14,"slug":15,"type":16},{"name":2183,"slug":2184,"type":16},"Code Review","code-review",{"name":2063,"slug":2064,"type":16},{"name":2032,"slug":2033,"type":16},"2026-07-16T06:03:20.380044",24,{"items":2190,"total":2188},[2191,2197,2203,2210,2216,2223,2228],{"slug":2020,"name":2020,"fn":2021,"description":2022,"org":2192,"tags":2193,"stars":23,"repoUrl":24,"updatedAt":2034},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2194,2195,2196],{"name":2026,"slug":2027,"type":16},{"name":2029,"slug":2030,"type":16},{"name":2032,"slug":2033,"type":16},{"slug":2036,"name":2036,"fn":2037,"description":2038,"org":2198,"tags":2199,"stars":23,"repoUrl":24,"updatedAt":2048},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2200,2201,2202],{"name":2032,"slug":2033,"type":16},{"name":2043,"slug":2044,"type":16},{"name":2046,"slug":2047,"type":16},{"slug":2050,"name":2050,"fn":2051,"description":2052,"org":2204,"tags":2205,"stars":23,"repoUrl":24,"updatedAt":2065},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2206,2207,2208,2209],{"name":14,"slug":15,"type":16},{"name":2057,"slug":2058,"type":16},{"name":2060,"slug":2061,"type":16},{"name":2063,"slug":2064,"type":16},{"slug":2067,"name":2067,"fn":2068,"description":2069,"org":2211,"tags":2212,"stars":23,"repoUrl":24,"updatedAt":2081},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2213,2214,2215],{"name":2073,"slug":2074,"type":16},{"name":2076,"slug":2077,"type":16},{"name":2079,"slug":2080,"type":16},{"slug":2083,"name":2083,"fn":2084,"description":2085,"org":2217,"tags":2218,"stars":23,"repoUrl":24,"updatedAt":2098},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2219,2220,2221,2222],{"name":2089,"slug":2090,"type":16},{"name":2032,"slug":2033,"type":16},{"name":2093,"slug":2094,"type":16},{"name":2096,"slug":2097,"type":16},{"slug":2100,"name":2100,"fn":2101,"description":2102,"org":2224,"tags":2225,"stars":23,"repoUrl":24,"updatedAt":2109},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2226,2227],{"name":2063,"slug":2064,"type":16},{"name":2107,"slug":2108,"type":16},{"slug":2111,"name":2111,"fn":2112,"description":2113,"org":2229,"tags":2230,"stars":23,"repoUrl":24,"updatedAt":2128},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2231,2232,2233,2234],{"name":2117,"slug":2118,"type":16},{"name":2120,"slug":2121,"type":16},{"name":2123,"slug":2124,"type":16},{"name":2126,"slug":2127,"type":16}]