• Icon: Story Story
    • Resolution: Done
    • Icon: Major Major
    • 1.8.0
    • None
    • Scorecard plugin
    • None
    • RHDH Plugins 3279, RHDH Plugins 3280

      Story

      As a user of RHDH, I want to utilize the scorecard plugin so that I can visualize KPIs from Jira

      Background

      One of the requirements for the scorecard plugin is the ability to retrieve information from Jira and display those within the scorecard plugin. As such we will be creating a backend module that utilizes the extension points from our backend plugin. The backend module will be responsible for retrieving the required information from Jira and sending it back to the backend plugin for handling.

      There will likely need to be some considerations into configuration values for this as we will not have the ability to utilize the integrations from Backstage proper

      You can check out roadie jira plugin.
      Please come up with entity annotation to filter out jira issues per Backstage entity - check out any existing jira annotation definitions. This annotation will be used to filter jira issues per jira project. You can check out existing annotations to see how the format looks like and jira plugin annotations.

      Entity annotations (more info here to see how the format looks like and jira plugin annotations):
      jira/project-key: Filter by project - MANDATORY, otherwise error
      jira/component: Filter by component
      jira/label: Filter by labels
      jira/team: Filter by team
      jira/custom-filter: overrides custom filter from app-config (this one is new as opposed to jira backstage plugin)

      App-config configuration

      Example

      scorecard:
       # ....:
       plugins:
        jira:
         open_issues:
          options:
           mandatoryFilter: type = Bug AND resolution = Unresolved
           customFilter: priority in ("Critical", "Blocker")
      

      MandatoryFilter is always included in the query. Both configurations are optional to include in the app-config - if mandatoryFilter is not specified, we go with `type = Bug AND resolution = Unresolved` and we don't have anything default for customFilter.
      CustomFilter can be specified by app-config and entities can override it with their custom-filter annotation. They can not override mandatoryFilter.

      The resulting query will look like this:

      project = from annotation
      AND
      mandatoryFilter = from app-config
      AND
      optional component = from annotation
      AND
      optional label = from annotation (check out correct syntax for multiple labels)
      AND
      optional team = from annotation
      AND
      optional customFilter = from annotation and if not there then from app-config and if not there then not used
      

      Dependencies and Blockers

      QE impacted work

      Documentation impacted work

      Acceptance Criteria

      Backend module that is able to retrieve information from Jira

      Upstream documentation updates (design docs, release notes etc)

      Technical enablement / Demo

              rh-ee-imykhno Ihor Mykhno
              rh-ee-pknight Patrick Knight
              RHIDP - Plugins
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: