Files
2025-11-30 08:45:43 +08:00
..
2025-11-30 08:45:43 +08:00
2025-11-30 08:45:43 +08:00
2025-11-30 08:45:43 +08:00

List Regressions Skill

Python script for fetching component health regression data for OpenShift releases.

Overview

This skill provides a Python script that queries a component health API to retrieve regression information for specific OpenShift releases. The data can be filtered by component names.

Usage

# List all regressions for a release
python3 list_regressions.py --release 4.17

# Filter by specific components
python3 list_regressions.py --release 4.21 --components Monitoring etcd

# Filter by single component
python3 list_regressions.py --release 4.21 --components "kube-apiserver"

# Filter to development window (GA'd release - both start and end)
python3 list_regressions.py --release 4.17 --start 2024-05-17 --end 2024-10-01

# Filter to development window (in-development release - start only, no GA yet)
python3 list_regressions.py --release 4.21 --start 2025-09-02

Arguments

  • --release (required): OpenShift release version (e.g., "4.17", "4.16")
  • --components (optional): Space-separated list of component names to filter by (case-insensitive)
  • --start (optional): Start date in YYYY-MM-DD format. Excludes regressions closed before this date.
  • --end (optional): End date in YYYY-MM-DD format. Excludes regressions opened after this date.

Output

The script outputs JSON data with the following structure to stdout:

{
  "summary": {...},
  "components": {
    "ComponentName": {
      "summary": {...},
      "open": [...],
      "closed": [...]
    }
  }
}

Diagnostic messages are written to stderr.

Note:

  • Regressions are grouped by component name (sorted alphabetically)
  • Each component maps to an object containing:
    • summary: Per-component statistics (total, open, closed, triaged counts, average time to triage)
    • open: Array of open regression objects
    • closed: Array of closed regression objects
  • Time fields are automatically simplified:
    • closed: Shows timestamp string if closed (e.g., "2025-09-27T12:04:24.966914Z"), otherwise null
    • last_failure: Shows timestamp string if valid (e.g., "2025-09-25T14:41:17Z"), otherwise null
  • Unnecessary fields removed for response size optimization:
    • links: Removed from each regression
    • test_id: Removed from each regression
  • Optional date filtering to focus on development window:
    • Use --start and --end to filter regressions to a specific time period
    • Typical use: Filter to development window using release dates
      • --start: Always applied (development_start date)
      • --end: Only for GA'd releases (GA date)
    • For GA'd releases: Both start and end filtering applied
    • For in-development releases: Only start filtering applied (no end date yet)
  • Triaged counts: Number of regressions with non-empty triages list (triaged to JIRA bugs)
  • Average time to triage: Average hours from regression opened to earliest triage timestamp (null if no triaged regressions)
  • Maximum time to triage: Maximum hours from regression opened to earliest triage timestamp (null if no triaged regressions)
  • Average open duration: Average hours that open regressions have been open (from opened to current time, only for open regressions)
  • Maximum open duration: Maximum hours that open regressions have been open (from opened to current time, only for open regressions)
  • Average time to close: Average hours from regression opened to closed timestamp (null if no valid data, only for closed regressions)
  • Maximum time to close: Maximum hours from regression opened to closed timestamp (null if no valid data, only for closed regressions)
  • Average time triaged to closed: Average hours from first triage to closed timestamp (null if no valid data, only for triaged closed regressions)
  • Maximum time triaged to closed: Maximum hours from first triage to closed timestamp (null if no valid data, only for triaged closed regressions)

Configuration

Before using, update the API endpoint in list_regressions.py:

base_url = f"https://your-actual-api.example.com/api/v1/regressions"

Requirements

  • Python 3.6 or later
  • Network access to the component health API
  • No external Python dependencies (uses standard library only)

See Also

  • SKILL.md - Detailed implementation guide for AI agents