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
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.