-
Notifications
You must be signed in to change notification settings - Fork 10
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
base: main
Are you sure you want to change the base?
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 | ||
|
Contributor
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. Category: Inconsistency The JQL here mixes Pick one casing and stick with it — either all lowercase |
||
| # Process each issue as described in "For Each Issue Retrieved" section below | ||
| done | ||
| ``` | ||
|
|
@@ -67,23 +67,26 @@ 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. Calucate the Epic complete_ratio: | ||
| complete_ratio = the number of Done childeren issues / total number of children issue * 100 | ||
|
Contributor
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. Problem: The # Get all children of the epic and their resolution status
jira issue list -q '"parent" = <EPIC_KEY>' --columns KEY,STATUS --plain --no-headers
2>/dev/nullThen count how many have |
||
|
|
||
yufchang marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| ## Output Format | ||
|
|
||
|
|
@@ -94,28 +97,31 @@ jira issue view <EPIC_KEY> --raw 2>/dev/null | jq -r '{key: .key, summary: .fiel | |
|
|
||
| ### 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: | ||
| For each activity type, please group issues by their parent Epic and display in this nested structure: Activity type -> Epic -> Story/Task/Bug | ||
|
|
||
| **Activity Type Name** (count) | ||
|
|
||
| **Epic: [EPIC-KEY] - [Epic Summary]** (Status: [Epic Status]) | ||
| **Epic: [EPIC-KEY] - [Epic Summary]** (Status: [Epic Status], Done/Total, complete_ratio) | ||
| - [ISSUE-KEY]: [Issue Summary] | ||
| - [ISSUE-KEY]: [Issue Summary] | ||
|
|
||
| **Epic: [EPIC-KEY2] - [Epic Summary]** (Status: [Epic Status]) | ||
| **Epic: [EPIC-KEY2] - [Epic Summary]** (Status: [Epic Status],Done/Total, complete_ratio) | ||
| - [ISSUE-KEY]: [Issue Summary] | ||
|
|
||
| **No Parent Epic** | ||
| - [ISSUE-KEY]: [Issue Summary] | ||
|
|
||
|
|
||
| **No Parent Epic** | ||
| - [ISSUE-KEY]: [ISSUE-TYPE]: [Issue Summary] | ||
| - [ISSUE-KEY]: [ISSUE-TYPE]: [Issue Summary] | ||
|
|
||
| Example: | ||
|
|
||
| **Quality / Stability / Reliability** (21 issues) | ||
|
|
||
| **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, 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 | ||
Uh oh!
There was an error while loading. Please reload this page.