Insights Controller action for Filtered Issues By Label Category

This action aims to provide data to cover the following charts:

Charts

Filtered Issues By Label Category Stacked Bar

Charts covered:

# Name Example
1 Bugs by Severity Link
2 Bugs by Priority Link

These charts all filter issues by a particular "filter" label and then collect the resulting issues into categories provided by "category" labels

  1. Bugs by Severity
  • Filter label: ~bug
  • Category labels:
    • ~S1
    • ~S2
    • ~S3
    • ~S4
  1. Bugs by Priority
  • Filter label: ~bug
  • Category labels:
    • ~P1
    • ~P2
    • ~P3
    • ~P4

For example, bugs by severity

  • Finds all issues with the ~bug label
  • Counts resulting issues with the ~P1 / ~P2 etc labels

Possible example yml

charts:
  - name: bugs_by_severity
    title: Bugs By Severity (stacked bar)
    chart_type: stacked_bar
    query:
      name: filtered_issues_by_label_category
      params:
        issuable_state: 'Open'
        filter_labels: ['bug']
        category_labels: ['S1','S2','S3','S4']

We should make the filter labels and category labels configurable when defining the chart in the yml file

Filtered Issues By Label Category Line
# Name Example
3 Bugs by Team Link

These charts are very similar to "Filtered Issues By Label Category Stacked Bar" and will likely use the same endpoint but a different chart config in the yml file

  1. Bugs by Team
  • Filter label: ~bug
  • Category labels:
    • ~Plan
    • ~Create
    • etc...

Possible example yml

charts:
  - name: bugs_by_team
    title: Bugs By Team (line)
    chart_type: line
    query:
      name: filtered_issues_by_label_category
      params:
        issuable_state: 'Open'
        filter_labels: ['bug']
        category_labels: ['Plan','Create','Manage'...]
Filtered Issues By Label Category Pie
# Name Example
4 Bug Classification Link

These charts are very similar to "Filtered Issues By Label Category Stacked Bar" and will likely use the same endpoint but a different chart config in the yml file

4a) Bug Classification (Severity)

  • Filter label: ~bug
  • Category labels:
    • ~S1
    • ~S2
    • ~S3
    • ~S4

4b) Bug Classification (Priority)

  • Filter label: ~bug
  • Category labels:
    • ~P1
    • ~P2
    • ~P3
    • ~P4

Possible example yml

charts:
  - name: bugs_by_severity
    title: Bugs By Severity (pie)
    chart_type: pie
    query:
      name: filtered_issues_by_label_category
      params:
        issuable_state: 'Open'
        filter_labels: ['bug']
        category_labels: ['S1','S2','S3','S4']
Edited by Mark Fletcher