Jigit App uses GitLab/GitHub REST APIs to index commit messages against Jira issues. It is done in the following way:

  • There is a scheduled task that runs every 2 minutes (can be changed with moveworkforward.jigit.index.interval)

  • It checks the head commit and indexes it. By indexing meant:

    • extracts Jira issue keys

    • stores those in the db together with the commit information

    • adds to the internal queue the next commit (if not was not indexed before)

    • sleeps every X requests to the GitLab (configurable)

  • If commit had been indexed, the whole index process for that branch/repo combination stops

  • The scheduled task is run from 1 Data Center node

A couple of other performance considerations:

  • when the App runs first time it may take a while to index an old repository with multiple commits

  • there is a scheduled task per each configuration rule.

We will publish here the Data Center performance testing results.