Initial commit
This commit is contained in:
100
skills/list-regressions/README.md
Normal file
100
skills/list-regressions/README.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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:
|
||||
|
||||
```json
|
||||
{
|
||||
"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`:
|
||||
|
||||
```python
|
||||
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](./SKILL.md) - Detailed implementation guide for AI agents
|
||||
Reference in New Issue
Block a user