Uploaded image for project: 'Qt Quality Assurance Infrastructure'
  1. Qt Quality Assurance Infrastructure
  2. QTQAINFRA-5145

Rewrite the Jira-closer/fixes bot

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • None
    • production
    • qtqa module
    • None
    • a940e8658 (dev)

    Description

      The current fixes bot at qt/qtqa/scripts/jira/jira-bug-closer has developed a number of issues which are too difficult to rectify in the current architecture.

      • The fixed-version field is rarely set correctly. Release notes for a new version contain vastly more Jira issues than a fixed-version filter in Jira shows. This bug occurs silently and it is unclear why the bot does not choose a fixed version when closing an issue.
      • The commits field is updated with duplicated shas of tqtc/* shadow repositories when a change was originally merged in the corresponding public repo. This issue requires rearchitecting to implement a system of queries and checks to avoid duplication.
      • After a change is closed, the commits field in Jira gets replaced instead of updated if a follow-up cherry-pick attempts to add to the commits field.
      • The bot occasionally leaks file handles, presumably from git when operating on local repos.
      • The bot contributes to congestion on codereview.qt-project.org when it clones or updates local repositories (code.qt.io cannot be used since access to tqtc repos is needed). This should be rectified by using rate-limited REST calls to gerrit instead of local repo clones.
      • The bot may use an invalid Jira Issue Transition on projects which do not use the historical transition name "Close"

       

      The new bot should:

      • Utilize gerrit webhooks for incoming event stream data.
      • Utilize gerrit/Jira queries to identify missed work
      • Close issues where the corresponding change in gerrit has a commit message which includes the footer "Fixes:"
      • Reliably identify the target version of a merged change in gerrit and update the "Fix Versions" field in Jira.
      • Update the "commits" field of a Jira ticket with the merged commit sha of a given gerrit change.
      • Intelligently truncate commits and fix version field data as necessary to fit in the Jira Max Character Limit (255) for custom fields.
      • Dynamically identify valid state transitions for a given Jira Project and use the appropriate transition to close an issue.
        *

      Attachments

        Issue Links

          For Gerrit Dashboard: QTQAINFRA-5145
          # Subject Branch Project Status CR V

          Activity

            People

              daniel.smith Daniel Smith
              daniel.smith Daniel Smith
              Jukka Jokiniva Jukka Jokiniva
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes