feat: Gangway override flags, commission-release workflow, PR #25 follow-ups#38
Conversation
…dex, chart version, playwright version Add --catalog-index-image (both repos), --chart-version (RHDH-only), and --playwright-version (overlay-only) flags to trigger_nightly_job.py. Restructure argument groups into shared, RHDH-only, and overlay-only with per-repo validation that rejects unsupported flags. Update SKILL.md with new options, RC/GA verification examples, and updated flag reference. Jira: https://redhat.atlassian.net/browse/RHIDP-14348 Assisted-by: OpenCode
…h config Add references/release-branch-config.md with shared definitions (file paths, branch protection template, release-vs-main differences) used by both commission and decommission workflows. Add workflows/commission-release.md for bootstrapping CI configuration when a new RHDH release branch is created. Refactor workflows/decommission-release.md to reference the shared config and use 'make update' for generated job cleanup instead of manual file deletion. Update SKILL.md description and routing table. Assisted-by: OpenCode
Replace .replace(' ', '+') with urllib.parse.quote_plus() for proper
URL encoding of product names in the fallback _fetch_api function.
Guard api_data.get('data', [{}])[0] against empty data arrays to
prevent IndexError when the API returns no results.
Addresses non-blocking review items from PR redhat-developer#25.
Assisted-by: OpenCode
Validate that --reference matches X.Y format before splitting, matching
the existing validation in generate_test_entry.py. Previously, a
malformed --reference value would crash at split('.').
Addresses non-blocking review item from PR redhat-developer#25.
Assisted-by: OpenCode
Document that prow skill scripts use ruamel.yaml via PEP 723 inline script metadata for round-trip YAML fidelity. The dependency is managed by uv run --script with no user-facing install step. Addresses non-blocking review item from PR redhat-developer#25. Assisted-by: OpenCode
Add Platform Lifecycle and CI / Prow sections covering the three skills added via PRs redhat-developer#25 and redhat-developer#26 that were missing from the README. Assisted-by: OpenCode
- Bump version 0.3.1 → 0.3.2 (pyproject.toml, plugin.json, marketplace.json)
- Add Slack alert setup section to release-branch-config.md (channel
creation, incoming webhook, Vault secret configuration)
- Add Slack setup step to commission-release.md workflow
- Standardize placeholder casing to {version} in release-branch-config.md
- Clarify releases.latest.release field description
- Extract _first_versions() helper in analyze_coverage.py to DRY up
the repeated api_data.get('data', [])[0] pattern
- Clarify decommission-release.md: generated jobs removed by make update
- Decommission workflow now runs make update — the previous 'Do NOT run
make update' guidance was incorrect; make update correctly removes
generated job files for deleted configs, matching commission behavior
Assisted-by: OpenCode
e7f9e30 to
1d868ea
Compare
|
@durandom This PR is ready for a review |
durandom
left a comment
There was a problem hiding this comment.
Review
What does this PR do?
Multi-part PR with three main areas: (1) New Gangway override flags (--catalog-index-image, --chart-version, --playwright-version) in the nightly trigger with clean per-repo validation; (2) Commission-release workflow for the prow skill as the counterpart to the existing decommission workflow; (3) Bug fixes in analyze_coverage.py (URL encoding, IndexError guard, phase detection). Plus docs updates (README, ADR 0002 ruamel.yaml exception).
Feedback
Version conflict with PR #39: Both PRs bump from 0.3.1 — #38 to 0.3.2, #39 to 0.4.0. Please coordinate merge order.
Bundled PR: Touches 3 skills (prow, prow-trigger-nightly, lifecycle indirectly) + ADR + README. The parts are thematically connected (follow-ups from #25), but if one piece is problematic it blocks everything. Not a blocker, just a note.
No tests for bug fixes: The three fixes in analyze_coverage.py (_first_versions(), URL encoding, phase detection) are all correct, but have no test coverage. The phase detection fix in particular (end is None instead of end_raw not in (..., None)) is subtle enough that a regression test would be valuable.
Commission workflow well structured: Extracting the shared release-branch-config.md avoids duplication between commission and decommission. The approach of "read the latest existing release branch and copy its structure" instead of hardcoding is robust against future changes.
Decommission fix is correct: The old instruction "Do NOT run make update" was wrong — make update automatically cleans up generated jobs for deleted configs. The manual deletion step was redundant. Good catch.
Positives
- Argparse grouping (shared / rhdh-only / overlay-only) makes flag ownership immediately clear
--playwright-versionis explicitly rejected for RHDH jobs with a helpful error message- RC/GA verification examples in SKILL.md are practical and lower the entry barrier
- URL encoding via
urllib.parse.quote_plusinstead of manual string manipulation - ADR 0002 exception for ruamel.yaml is cleanly documented (PEP 723, auto-install via
uv run --script)
🤖 Generated with Claude Code
Changes
--catalog-index-image,--chart-version(RHDH-only),--playwright-version(overlay-only) flags with per-repo validationrelease-branch-config.mdreference; refactor decommission to use shared ref +make updateanalyze_coverage.pyURL encoding and IndexError guard--referenceX.Y format validation togenerate_cluster_pool.pyJira: https://redhat.atlassian.net/browse/RHIDP-14348
Related PRs:
This PR is also addressing feedback from #25