-
Notifications
You must be signed in to change notification settings - Fork 13
HYPERFLEET-800 - feat: update team-weekly-update commands due to Jira generation and add Epic complete ratio in report output #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| --- | ||
| description: "Weekly team update - a list of closed issues(Story,Task,Bug) in the last 7 days with a nested display : activity type -> Epic -> Story/Task/Bug in one team" | ||
| description: "Weekly team update - a list of closed issues(Story,Task,Bug) in the last 7 days with a nested display in one team" | ||
| allowed-tools: Bash | ||
| argument-hint: "[project-key] [team-key]" | ||
| --- | ||
|
|
@@ -39,7 +39,7 @@ Summary of team progress over the past week, focusing on closed issues classifie | |
| For each activity type below, follow this three-step process to fetch issues and their parent Epic information: | ||
|
|
||
| **Step 1**: Get list of closed issue keys | ||
| **Step 2**: For each issue, fetch full details including epic link (customfield_12311140) and summary | ||
| **Step 2**: For each issue, fetch full details including parent epic (fields.parent) and summary | ||
| **Step 3**: Group issues by their parent Epic and fetch Epic details | ||
|
|
||
| ### Activity Types to Process: | ||
|
|
@@ -58,7 +58,7 @@ ACTIVITY_TYPES=( | |
|
|
||
| # For each activity type, fetch closed issues: | ||
| for activity_type in "${ACTIVITY_TYPES[@]}"; do | ||
| jira issue list -q 'project = ${1:-HYPERFLEET} and type in (Story,Task,Bug) and status changed to "closed" during (-7d,now()) and cf[12320040] = "'"$activity_type"'" ${2:+and Team = $2}' --columns KEY --plain --no-headers 2>/dev/null | ||
| jira issue list -q 'project = ${1:-HYPERFLEET} and type in (Story,Task,Bug) and resolution = Done and status changed to closed during (-7d, now()) and customfield_10464 = "'"$activity_type"'" ${2:+and Team = $2}' --columns KEY --plain --no-headers 2>/dev/null | ||
| # Process each issue as described in "For Each Issue Retrieved" section below | ||
| done | ||
| ``` | ||
|
|
@@ -67,55 +67,68 @@ Also check for issues without an activity type: | |
|
|
||
| ```bash | ||
| # Issues without activity type | ||
| jira issue list -q 'project = ${1:-HYPERFLEET} and type in (Story,Task,Bug) and status changed to "closed" during (-7d,now()) and cf[12320040] is EMPTY ${2:+and Team = $2}' --columns KEY --plain --no-headers 2>/dev/null | ||
| jira issue list -q 'project = ${1:-HYPERFLEET} and type in (Story,Task,Bug) and resolution = Done and status changed to closed during (-7d, now()) and customfield_10464 is EMPTY ${2:+and Team = $2}' --columns KEY --plain --no-headers 2>/dev/null | ||
| ``` | ||
|
|
||
| ### For Each Issue Retrieved: | ||
|
|
||
| Get full issue details including epic link: | ||
| Get full issue details including parent epic: | ||
| ```bash | ||
| jira issue view <ISSUE_KEY> --raw 2>/dev/null | jq -r '{key: .key, summary: .fields.summary, epicKey: .fields.customfield_12311140, status: .fields.status.name}' | ||
| jira issue view <ISSUE_KEY> --raw 2>/dev/null | jq -r '{key: .key, summary: .fields.summary, epicKey: .fields.parent.key, epicSummary: .fields.parent.fields.summary, epicStatus: .fields.parent.fields.status.name, status: .fields.status.name, type: .fields.issuetype.name}' | ||
| ``` | ||
|
|
||
| Note: If parent is null, the issue has no parent epic. | ||
|
|
||
| ### For Each Unique Epic Key: | ||
|
|
||
| Get epic details: | ||
| 1. Get epic details: | ||
| ```bash | ||
| jira issue view <EPIC_KEY> --raw 2>/dev/null | jq -r '{key: .key, summary: .fields.summary, status: .fields.status.name, type: .fields.issuetype.name}' | ||
| ``` | ||
|
|
||
| 2. Get all children of the epic and their status and calculate the complete_ratio of the Epic: | ||
| ```bash | ||
| jira issue list -q "parent = <EPIC_KEY>" --raw 2>/dev/null | jq -r '.[] | {key: .key, status: .fields.status.name}' | ||
| ``` | ||
|
|
||
| ## Output Format | ||
| complete_ratio = count(the number of Closed children issues) / count(the number of children issues) * 100 | ||
|
|
||
| **Weekly [Team: team-key] Update - [Start Date] to [End Date]** | ||
| ## Output Format | ||
|
|
||
| ### Summary Stats | ||
| - Total number of closed issues | ||
| CRITICAL: You MUST create a THREE-LEVEL NESTED STRUCTURE. Do NOT skip any level: | ||
|
|
||
| ### Issues Grouped by Activity Type, then by Parent Epic | ||
| --- | ||
|
|
||
| For each activity type, group issues by their parent Epic and display in this nested structure: | ||
| **Weekly Team Update - [Start Date] to [End Date]** | ||
| **Team: [team-key]** | ||
|
|
||
| **Activity Type Name** (count) | ||
| ### Summary Stats | ||
| - Total Done issues: [count] | ||
| --- | ||
|
|
||
| **Epic: [EPIC-KEY] - [Epic Summary]** (Status: [Epic Status]) | ||
| **[Activity Type Name]** | ||
| **Epic: [EPIC-KEY] - [Epic Summary]** (Status: [Epic Status], [Closed]/[Total], [%]%) | ||
| - [ISSUE-KEY]: [Issue Summary] | ||
| - [ISSUE-KEY]: [Issue Summary] | ||
|
|
||
|
|
||
| **Epic: [EPIC-KEY2] - [Epic Summary]** (Status: [Epic Status]) | ||
| **Epic: [EPIC-KEY2] - [Epic Summary]** (Status: [Epic Status], [Closed]/[Total], [%]%) | ||
| - [ISSUE-KEY]: [Issue Summary] | ||
|
|
||
| **No Parent Epic** | ||
| - [ISSUE-KEY]: [Issue Summary] | ||
| - [ISSUE-KEY]: [[TYPE]] [Issue Summary] | ||
| - [ISSUE-KEY]: [[TYPE]] [Issue Summary] | ||
|
|
||
| --- | ||
|
|
||
| Example: | ||
|
|
||
| **Quality / Stability / Reliability** (21 issues) | ||
| **Quality / Stability / Reliability** | ||
|
|
||
| **Epic: HYPERFLEET-402 - E2E Test Automation Framework for CLM Components - MVP** (Status: Closed) | ||
| **Epic: HYPERFLEET-402 - E2E Test Automation Framework for CLM Components - MVP** (Status: Closed, 9/10, 90%) | ||
| - HYPERFLEET-680: Migrate from kubectl CLI to Kubernetes client-go Library for E2E Testing | ||
| - HYPERFLEET-532: E2E Test Case Automation Run Strategy and Resource Management | ||
|
|
||
| **No Parent Epic** | ||
| - HYPERFLEET-682: Adapter1 and Adapter2 not reporting correct conditions and status | ||
| - HYPERFLEET-672: Adapter Helm chart: RabbitMQ exchange_type missing from broker config | ||
| - HYPERFLEET-682: [Bug] Adapter1 and Adapter2 not reporting correct conditions and status | ||
| - HYPERFLEET-672: [Story] Adapter Helm chart: RabbitMQ exchange_type missing from broker config | ||
|
Comment on lines
+133
to
+134
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Example output conflicts with the declared Line 119-120 defines No Parent Epic entries as 🤖 Prompt for AI Agents |
||
Uh oh!
There was an error while loading. Please reload this page.