You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(rhdh-release): use JQL Team[Team] filter with Cloud ID for team queries
Replace the slow parse_issues.py --enrich workflow for team-based filtering
with direct JQL filtering using "Team[Team]" = "{{CLOUD_ID}}". This reduces
team breakdown queries from minutes (per-issue API enrichment) to ~12 seconds
(one JQL count per team).
Changes:
- Add 3 new JQL templates: open_issues_by_team, feature_freeze_issues_by_team,
code_freeze_issues_by_team
- Add cloud_id placeholder support to jql.py render/render_with_url
- Rewrite cmd_team_breakdown, cmd_slack_feature_freeze_update, and
cmd_slack_code_freeze_update in release.py to use JQL team filter
- Update workflow docs and SKILL.md to reference Cloud ID approach
Co-authored-by: Cursor <cursoragent@cursor.com>
Always use `parse_issues.py --enrich` for team counts — never count manually. The Team custom field cannot be queried via JQL. Use `acli jira workitem search --json | python ~/.claude/skills/rhdh-jira/scripts/parse_issues.py --enrich` and filter by team in the output.
14
+
<principlename="use_cloud_id_for_team_queries">
15
+
Use `"Team[Team]" = "{{CLOUD_ID}}"` in JQL to filter by team. Cloud IDs are in the RHDH Team Mapping spreadsheet (column "Cloud ID"). Use the `open_issues_by_team`, `feature_freeze_issues_by_team`, or `code_freeze_issues_by_team` JQL templates. This is fast and does not require `parse_issues.py --enrich`.
-**Example:**`... AND fixVersion = "2.1.0" AND status != closed AND "Team[Team]" = "ec74d716-af36-4b3c-950f-f79213d08f71-4403"`
170
+
-**Notes:** Cloud ID is the Jira Cloud team identifier from the RHDH Team Mapping spreadsheet (column "Cloud ID"). This is the fastest way to filter by team — no enrichment needed.
171
+
172
+
## feature_freeze_issues_by_team
173
+
174
+
Find feature work outstanding at Feature Freeze filtered by team.
175
+
176
+
```jql
177
+
project IN (RHIDP, RHDHBugs, RHDHPLAN, RHDHSUPP) AND fixVersion = "{{RELEASE_VERSION}}" and resolution is EMPTY AND component not in (AI, Build, Certification, "Continuous Improvement", Documentation, Knowledge, Performance, Quality, Quickstart, Release, "RHDH Local", Security, Segment, Serviceability, Support, "Team Operations", "Test Framework", "Test Infrastructure", "Upstream & Community", UX) AND Type not in (Bug, Vulnerability, sub-task) AND status not in ("Dev Complete", "Release Pending", Done, Closed) AND (labels is EMPTY OR labels != stretch-goal) AND "Team[Team]" = "{{CLOUD_ID}}"
Copy file name to clipboardExpand all lines: skills/rhdh-release/workflows/issues-by-team.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,32 +27,32 @@ If the CLI succeeds, use its output directly. If it fails, follow the manual ste
27
27
gog sheets get 1vQXfvID72qwqvLb17eyGOvnZXrZG7NBzTGv6RP9wvyM Team --json --results-only
28
28
```
29
29
30
-
Filter to category "Engineering" and status "Active". This gives team names and `team_id` values.
30
+
Filter to category "Engineering" and status "Active". This gives team names and `cloud_id` values.
31
31
32
-
## Step 3 (fallback): Query issues and filter by team
32
+
## Step 3 (fallback): Query issues by team using Cloud ID
33
33
34
-
Fetch all open issues for the release, enriched with team data:
34
+
Use the `open_issues_by_team` JQL template with the team's Cloud ID:
35
35
36
36
```bash
37
-
acli jira workitem search --jql 'project IN (RHIDP, RHDHBugs, RHDHPLAN, RHDHSUPP) AND fixVersion = "{{RELEASE_VERSION}}" AND status != closed' --limit 200 --json | python ~/.claude/skills/rhdh-jira/scripts/parse_issues.py --enrich -s key,summary,status,team
37
+
acli jira workitem search --jql 'project IN (RHIDP, RHDHBugs, RHDHPLAN, RHDHSUPP) AND fixVersion = "{{RELEASE_VERSION}}" AND status != closed AND "Team[Team]" = "{{CLOUD_ID}}"' --count
38
38
```
39
39
40
-
To filter to a specific team by team ID:
40
+
To get full issue details for a team:
41
41
42
42
```bash
43
-
acli jira workitem search --jql 'project IN (RHIDP, RHDHBugs, RHDHPLAN, RHDHSUPP) AND fixVersion = "{{RELEASE_VERSION}}" AND status != closed' --limit 200 --json | python ~/.claude/skills/rhdh-jira/scripts/parse_issues.py --enrich -f team_id={{TEAM_ID}} -s key,summary,status
43
+
acli jira workitem search --jql 'project IN (RHIDP, RHDHBugs, RHDHPLAN, RHDHSUPP) AND fixVersion = "{{RELEASE_VERSION}}" AND status != closed AND "Team[Team]" = "{{CLOUD_ID}}"' --json
44
44
```
45
45
46
-
**Important:** Always use `parse_issues.py --enrich`for team counts — the Team field is a custom field that cannot be queried via JQL directly.
46
+
The Cloud ID for each team is in the "Cloud ID" column of the RHDH Team Mapping spreadsheet (e.g., `ec74d716-af36-4b3c-950f-f79213d08f71-4403` for COPE).
47
47
48
48
## Step 4 (fallback): Build per-team counts
49
49
50
50
For each active engineering team, count the matching issues and build a Jira search link.
51
51
52
52
## Step 5 (fallback): Format output
53
53
54
-
| Team |Team ID | Issue Count | Lead | Jira Link |
Copy file name to clipboardExpand all lines: skills/rhdh-release/workflows/teams-and-leads.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,7 +51,7 @@ Include link to source: [RHDH Team Mapping](https://docs.google.com/spreadsheets
51
51
<gotchas>
52
52
53
53
- By default only active teams are returned. The CLI filters by `status = Active` in the Google Sheet.
54
-
- The `team_id` is the numeric ID used by `parse_issues.py --enrich` for team-based filtering — the Team custom field cannot be queried via JQL directly.
54
+
- The `cloud_id` is the Jira Cloud team identifier used by `parse_issues.py --enrich` for team-based filtering — the Team custom field cannot be queried via JQL directly.
0 commit comments