• Yorick Peterse's avatar
    Optimize fetching issues closed by a merge request · 99492d6b
    Yorick Peterse authored
    Instead of running ClosingIssueExtractor for every commit in a merge
    request we can gather all the commit messages (and the merge request
    description), concatenate all this together and then run
    ClosingIssueExtractor only once.
    
    The result of this is that MergeRequest#closes_issues is now between
    3.5x and 4x faster than the old setup. Using a merge request with 10
    commits (each referencing a number of issues to close) this reduced the
    call duration from around 200 milliseconds to around 50 milliseconds.
    
    As a result of these changes the Jira related tests for
    MergeRequest#closes_issues have been removed. These tests stubbed
    Commit#closes_issues meaning that the only code that was really tested
    was the call to Array#uniq to filter out duplicate issues. As this code
    is no longer used (nor present) the corresponding tests were removed.
    
    Related: gitlab-org/gitlab-ce#12419
    99492d6b
merge_request.rb 13.7 KB