BigW Consortium Gitlab

  1. 16 Jun, 2016 1 commit
  2. 15 Jun, 2016 39 commits
    • Merge branch 'toggle-whitespace-button-for-compare-page' into 'master' · 5d16d50c
      Jacob Schatz authored
      Toggle whitespace button for compare page
      
      ## What does this MR do?
      
      Adds whitespace button to compare branches page.
      
      ## Are there points in the code the reviewer needs to double check?
      
      Ruby code.
      
      ## Why was this MR needed?
      
      Compare branches UX
      
      ## What are the relevant issue numbers?
      
      Closes #17881.
      
      ## Screenshots (if relevant)
      
      ![Screen_Shot_2016-06-09_at_18.39.48](/uploads/8995a7bc8bea7fa3ff19446ebe49fb88/Screen_Shot_2016-06-09_at_18.39.48.png)
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
      - [ ] API support added
      - [ ] Tests
        - [ ] Added for this feature/bug
        - [ ] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !4569
    • Merge branch 'award-emoji-fix' into 'master' · 433e0a41
      Jacob Schatz authored
      Fix emoji block selector.
      
      Fixes #18465 and #18577
      
      See merge request !4604
    • Merge branch 'update-changelog' into 'master' · 102f4d8d
      Robert Speicher authored
      Update CHANGELOG
      
      [ci skip]
      
      See merge request !4695
    • Merge branch 'revert-b4e8d59b' into 'master' · cb534cda
      Jacob Schatz authored
      Revert "Merge branch '18047-event-item-links-dont-look-like-links' into 'master'"
      
      ## What does this MR do?
      
      ## Are there points in the code the reviewer needs to double check?
      
      ## Why was this MR needed?
      
      ## What are the relevant issue numbers?
      
      ## Screenshots (if relevant)
      
      ## Does this MR meet the acceptance criteria?
      
      - [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
      - [ ] API support added
      - [ ] Tests
        - [ ] Added for this feature/bug
        - [ ] All builds are passing
      - [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [ ] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !4692
    • Update CHANGELOG for 8.7.7 release · 1f81137b
      Douglas Barbosa Alexandre authored
      [ci skip]
    • Update CHANGELOG for 8.6.9 release · cb9bab94
      Douglas Barbosa Alexandre authored
      [skip]
    • Update CHANGELOG for 8.5.13 release · 77554eee
      Douglas Barbosa Alexandre authored
      [ci skip]
    • Update CHANGELOG for 8.4.11 release · 510b2522
      Douglas Barbosa Alexandre authored
      [ci skip]
    • Update CHANGELOG for 8.3.10 release · 2c26ba42
      Douglas Barbosa Alexandre authored
      [ci skip]
    • Update CHANGELOG for 8.2.6 release · 8d6cfd79
      Douglas Barbosa Alexandre authored
      [ci skip]
    • Revert "Merge branch '18047-event-item-links-dont-look-like-links' into 'master'" · 44df30c4
      Jacob Schatz authored
      This reverts merge request !4544
    • Merge branch 'network-assets' into 'master' · 1a832c8f
      Jacob Schatz authored
      Replace raphael-rails with raphael.js and split it from the rest of the JS
      
      ## What does this MR do?
      
      Removes raphael.js and its related libraries from the default JS bundle.
      
      It also removes raphael-rails because the gem is unmaintained and – for whatever reason – didn't want to cooperate with the way I was trying to require it.
      
      This brings the default (compressed and minified) application.js from 354KB after the d3 MR (!4394) down to 324KB.
      
      ## Are there points in the code the reviewer needs to double check?
      
      That tests pass and that there aren't errors on any pages (especially the Network page).
      
      ## Why was this MR needed?
      
      It's only used on the Network page and was using way too much bandwidth for just one page.
      
      ## What are the relevant issue numbers?
      
      #14372 #13165 
      
      Follow-up to !4394 and !4516.
      
      cc: @jschatz1 
      
      See merge request !4519
    • Merge branch '18047-event-item-links-dont-look-like-links' into 'master' · b4e8d59b
      Jacob Schatz authored
      Updated '.event-item a' color
      
      ## What does this MR do?
      
      Changes the color of `.event-item` links.
      
      ## Are there points in the code the reviewer needs to double check?
      
      Did you want this restricted only to the activity page or anywhere showing `.event-item`'s?
      
      ## Why was this MR needed?
      
      UX
      
      ## What are the relevant issue numbers?
      
      Closes #18047.
      
      ## Screenshots (if relevant)
      
      ![Screen_Shot_2016-06-08_at_20.07.54](/uploads/9670fbeb6fac7a334a83e11ffc05148c/Screen_Shot_2016-06-08_at_20.07.54.png)
      
      See merge request !4544
    • Merge branch '18301-top-navigation-needs-hover-state' into 'master' · dd184d30
      Jacob Schatz authored
      added hover state to top nav links
      
      ## What does this MR do?
      
      Adds hover state to top nav links.
      
      ## Are there points in the code the reviewer needs to double check?
      
      Ney.
      
      ## Why was this MR needed?
      
      UX.
      
      ## What are the relevant issue numbers?
      
      Closes #18301.
      
      ## Screenshots (if relevant)
      
      ![Screen_Shot_2016-06-07_at_23.23.45](/uploads/dac8ed99eca99fbcccbd98028e947ee1/Screen_Shot_2016-06-07_at_23.23.45.png)
      
      See merge request !4521
    • Merge branch 'milestone-date-clear' into 'master' · f0c58c72
      Jacob Schatz authored
      Due date can be removed from milestones
      
      ## What does this MR do?
      
      Adds a button to milestone form to allow user to remove due date 
      
      ## What are the relevant issue numbers?
      
      Closes #15063 
      
      ## Screenshots (if relevant)
      
      ![Screen_Shot_2016-06-02_at_08.32.03](/uploads/8bd4446abde745dd5b1e140a887ec694/Screen_Shot_2016-06-02_at_08.32.03.png)
      
      See merge request !4428
    • Merge branch 'add-shortcut-to-copy-file-content-hash-link' into 'master' · be37ff7a
      Jacob Schatz authored
      Add shortcut to copy file content hash link
      
      ## What does this MR do?
      
      * Allows for multiple shortcut handlers to be initialised
      * Adds `y` shortcut to file pages to copy permalink URL.
      
      ## Are there points in the code the reviewer needs to double check?
      
      Ney.
      
      ## Why was this MR needed?
      
      UX
      
      ## What are the relevant issue numbers?
      
      Closes #14470.
      
      ## Screenshots (if relevant)
      
      ![y-shortcut](/uploads/b81feb26d8e0d7d4996c4afa29f385d7/y-shortcut.gif)
      
      See merge request !4496
    • Merge branch '17804-pipeline-download-text' into 'master' · 1af4ae33
      Jacob Schatz authored
      #17804 Pipeline download artifacts text
      
      ## What does this MR do?
      
      Improves wording to the pipeline artifacts download dropdown items.
      
      ## Are there points in the code the reviewer needs to double check?
      
      I couldn't test this very easily, any tips?
      
      ## Why was this MR needed?
      
      UX.
      
      ## What are the relevant issue numbers?
      
      Closes #17804.
      
      ## Screenshots (if relevant)
      
      See merge request !4391
    • Merge branch '17929-issue-shortcut-doesnt-work-on-some-pages' into 'master' · 995a5931
      Jacob Schatz authored
      New issue shortcut doesnt work on some pages
      
      ## What does this MR do?
      
      1. Slightly tidies dispatcher switch case by utilising 'fall through' cases.
      2. Adds shortcuts to project pipelines, milestones, builds and forks pages
      
      ## Are there points in the code the reviewer needs to double check?
      
      I have a feeling that these may have been missed out of the case statements on purpose?
      
      ## Why was this MR needed?
      
      Possible UX issue highlighted in #17929.
      
      ## What are the relevant issue numbers?
      
      Closes #17929.
      
      Closes #12616. (dup)
      
      Closes #18123. (dup)
      
      Closes #13688. (dup)
      
      ## Screenshots (if relevant)
      
      See merge request !4393
    • Merge branch 'issuable-sidebar-bold' into 'master' · bb1c0e88
      Jacob Schatz authored
      Fixed issue with bold in issuable sidebar
      
      ## What does this MR do?
      
      ~~The sidebar contained both normal font weight & bold font weight, so this standardises them to bold.~~
      
      After looking at the designs, i've updated the font weights & colors throughout the sidebar to correctly match them
      
      ## Screenshots (if relevant)
      
      ![Screen_Shot_2016-06-02_at_11.03.40](/uploads/0a3eb6a67ce5722c77f6adf2fe883017/Screen_Shot_2016-06-02_at_11.03.40.png)
      
      
      See merge request !4398
    • Merge branch '18434-emoji-icon-styling' into 'master' · 3e4d740d
      Jacob Schatz authored
      Fixed notes action buttons on mobile
      
      ## What does this MR do?
      
      Fixes the mobile screen size styling for notes action buttons. It ensures there is space between icons and forces parts of the notes header to stack
      
      ## Are there points in the code the reviewer needs to double check?
      
      Stacking? 
      
      ## Why was this MR needed?
      
      UX
      
      ## What are the relevant issue numbers?
      
      Closes #18434.
      
      ## Screenshots (if relevant)
      
      ![Screen_Shot_2016-06-13_at_17.52.09](/uploads/18849fdfc4fcbf7b67fc66633bbac129/Screen_Shot_2016-06-13_at_17.52.09.png)
      
      ## Does this MR meet the acceptance criteria?
      
      - [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
      - [ ] API support added
      - [ ] Tests
        - [ ] Added for this feature/bug
        - [ ] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !4631
    • Merge branch '18340-cannot-click-find-and-download-on-file-page' into 'master' · 2bd9bf25
      Jacob Schatz authored
      Fix clicking of find and download areas on file page
      
      ## What does this MR do?
      
      Fixes the stacking context of the file page so the find and download areas can be clicked
      
      ## Are there points in the code the reviewer needs to double check?
      
      Ney
      
      ## Why was this MR needed?
      
      We wanna click them. :(
      
      ## What are the relevant issue numbers?
      
      Closes #18340.
      
      ## Screenshots (if relevant)
      
      ![Screen_Shot_2016-06-09_at_18.46.05](/uploads/1650a2fb1b9119ad1e27badf31f49340/Screen_Shot_2016-06-09_at_18.46.05.png)
      
      ## Does this MR meet the acceptance criteria?
      
      - [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
      - [ ] API support added
      - [ ] Tests
        - [ ] Added for this feature/bug
        - [ ] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !4574
    • Merge branch 'commits-ui' into 'master' · 5444db29
      Jacob Schatz authored
      Updated commits UI
      
      Closes #14633 
      
      See merge request !4271
    • Merge branch 'issue_18575' into 'master' · 5f22603b
      Jacob Schatz authored
      Improve usability for prioritized labels
      
      ## What does this MR do?
      - Adds an icon next to prioritized label rows serving as a hint to the user that the labels can be sorted by dragging them.
      - Adds description about prioritized labels.
      - Restores empty message when removing all prioritized labels.
      
      ## Screenshots (if relevant)
      
      ![labels](/uploads/1da16c4c54a894fa45ccc47e3a5bdf7a/labels.gif)
      
      Closes #18575 
      
      See merge request !4652
    • Merge branch 'new-project-mobile' into 'master' · 7094a4d7
      Jacob Schatz authored
      New Project page improvements for mobile
      
      ## What does this MR do?
      
      Redesigns the "Project path" fields on the New Project page.
      
      ## Are there points in the code the reviewer needs to double check?
      
      Not that I know of, nothing I changed should break any other pages.
      
      ## Why was this MR needed?
      
      The new project page was unusable on mobile because the project name text field didn't have enough space.
      
      ## What are the relevant issue numbers?
      
      Fixes #18599.
      
      ## Screenshots (if relevant)
      
      Before:
      
      ![Screen_Shot_2016-06-15_at_12.38.58_PM](/uploads/046a824b283e24266cabc9ea3dfb169c/Screen_Shot_2016-06-15_at_12.38.58_PM.png)
      
      After:
      
      ![Screen_Shot_2016-06-15_at_12.37.19_PM](/uploads/6d01310192965b413bfedd9c8d2129f7/Screen_Shot_2016-06-15_at_12.37.19_PM.png)
      
      ![Screen_Shot_2016-06-15_at_12.37.28_PM](/uploads/3944a0f0ab04373ec92f7cafe90872df/Screen_Shot_2016-06-15_at_12.37.28_PM.png)
      
      ## Does this MR meet the acceptance criteria?
      
      - [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [ ] Tests
        - [x] Added for this feature/bug
        - [ ] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [ ] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      cc: @jschatz1 @dzaporozhets 
      
      See merge request !4687
    • Merge branch 'pinned-sidebar' into 'master' · 64a09d6e
      Jacob Schatz authored
      Pinned sidebar navigation option
      
      ## What does this MR do?
      
      Gives the ability to pin the sidebar navigation. Pinning is only possible on screens with above `lg` which is `1200px` if not it reverts to being hidden by default.
      
      ## What are the relevant issue numbers?
      
      Closes #18542 
      
      ## Screenshots (if relevant)
      
      ### Un-pinned
      
      ![Screen_Shot_2016-06-15_at_17.29.08](/uploads/82b7495df6ea46a2334a7c25d03b019b/Screen_Shot_2016-06-15_at_17.29.08.png)
      
      ### Pinned
      
      ![Screen_Shot_2016-06-15_at_17.29.41](/uploads/3eb381be807985d0a9583f000cb802f9/Screen_Shot_2016-06-15_at_17.29.41.png)
      
      See merge request !4683
    • Merge branch 'update-changelog-8.8.5' into 'master' · 02dfbca3
      Robert Speicher authored
      Update CHANGELOG for 8.8.5 release
      
      [ci skip]
      
      See merge request !4688
    • Merge branch 'fair-usage-of-shared-runners' into 'master' · 919e3ed2
      Stan Hu authored
      Fair usage of Shared Runners
      
      ## What does this MR do?
      
      Introduces a fair usage scheduler for shared runners.
      
      It tries to assign builds to shared runner from projects that have the lowest number of builds currently running on shared runners.
      
      **Example 1**:
      ```
      We have following builds in queue:
      build 1 for project 1
      build 2 for project 1
      build 3 for project 1
      build 4 for project 2
      build 5 for project 2
      build 6 for project 3
      
      With the new algorithm we will assign builds in following order:
      - We choose build 1, because project 1 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 4, because project 2 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 6, because project 3 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 2, because project 1 as other it runs 1 build,
      - We choose build 5, because project 2 runs 1 build, where project 1 runs 2 builds now,
      - We choose build 3, because project 1 and runs 2 builds.
      ```
      
       
      **Example 2**:
      ```
      We have following builds in queue:
      build 1 for project 1
      build 2 for project 1
      build 3 for project 1
      build 4 for project 2
      build 5 for project 2
      build 6 for project 3
      
      With the new algorithm we will assign builds in following order:
      - We choose build 1, because project 1 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We finish build 1,
      - We choose build 2, because project 1 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 4, because project 2 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We finish build 4,
      - We choose build 5, because project 2 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 6, because project 3 doesn't run currently any builds,
      - We choose build 3, because project 1, 2 and 3 runs exactly one build now,
      ```
      
      ## Why was this MR needed?
      
      Currently, we are scheduling builds using FIFO. This is catastrophic if there are projects that create a 100-300 jobs, this basically eats most of available shared runners.
      
      ## Performance
      
      All this logic is implemented with the help of SQL queries, because this is the fastest way to process 1k-2k pending builds in queue.
      It's not the fastest SQL query, because it sorts based on number of running_builds, and this forces to calculate a number of running builds for all dependent projects. However, since we have one/two shared runners that asks every few seconds for builds this should have minimal impact on DB performance.
      
      ```
       explain analyze SELECT "ci_builds".* FROM "ci_builds" JOIN (SELECT "ci_builds"."gl_project_id", count(case when status = 'running' AND runner_id = (SELECT "ci_runners"."id" FROM "ci_runners" WHERE "ci_runners"."is_shared" = 't') then 1 end) as running_builds FROM "ci_builds" INNER JOIN "projects" ON "projects"."id" = "ci_builds"."gl_project_id" AND "projects"."pending_delete" = 'f' WHERE "ci_builds"."type" IN ('Ci::Build') AND "ci_builds"."status" IN ('running', 'pending') AND "projects"."builds_enabled" = 't' AND "projects"."shared_runners_enabled" = 't' GROUP BY "ci_builds"."gl_project_id") AS projects ON ci_builds.gl_project_id=projects.gl_project_id WHERE "ci_builds"."type" IN ('Ci::Build') AND "ci_builds"."status" = 'pending' AND "ci_builds"."runner_id" IS NULL  ORDER BY projects.running_builds ASC, ci_builds.id ASC;
                                                                                        QUERY PLAN                                                                        
                 
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------
      -----------
       Sort  (cost=64777.28..64777.29 rows=1 width=1010) (actual time=301.794..302.535 rows=1537 loops=1)
         Sort Key: (count(CASE WHEN (((public.ci_builds.status)::text = 'running'::text) AND (public.ci_builds.runner_id = $0)) THEN 1 ELSE NULL::integer END)), public.ci
      _builds.id
         Sort Method: quicksort  Memory: 1423kB
         ->  Nested Loop  (cost=63279.78..64777.27 rows=1 width=1010) (actual time=66.384..298.724 rows=1537 loops=1)
               ->  HashAggregate  (cost=63177.15..63177.30 rows=15 width=15) (actual time=65.641..65.851 rows=187 loops=1)
                     InitPlan 1 (returns $0)
                       ->  Seq Scan on ci_runners  (cost=0.00..26963.66 rows=1 width=4) (actual time=1.145..34.381 rows=1 loops=1)
                             Filter: is_shared
                             Rows Removed by Filter: 6965
                     ->  Nested Loop  (cost=0.00..36186.34 rows=2715 width=15) (actual time=0.065..29.717 rows=1710 loops=1)
                           ->  Index Scan using index_ci_builds_on_status on ci_builds  (cost=0.00..8913.95 rows=3577 width=15) (actual time=0.051..12.012 rows=2583 loops
      =1)
                                 Index Cond: ((status)::text = ANY ('{running,pending}'::text[]))
                                 Filter: ((type)::text = 'Ci::Build'::text)
                                 Rows Removed by Filter: 1219
                           ->  Index Scan using projects_pkey on projects  (cost=0.00..7.61 rows=1 width=4) (actual time=0.003..0.004 rows=1 loops=2583)
                                 Index Cond: (id = public.ci_builds.gl_project_id)
                                 Filter: ((NOT pending_delete) AND builds_enabled AND shared_runners_enabled)
                                 Rows Removed by Filter: 0
               ->  Bitmap Heap Scan on ci_builds  (cost=102.63..106.64 rows=1 width=1002) (actual time=1.216..1.231 rows=8 loops=187)
                     Recheck Cond: ((gl_project_id = public.ci_builds.gl_project_id) AND ((status)::text = 'pending'::text))
                     Filter: ((runner_id IS NULL) AND ((type)::text = 'Ci::Build'::text))
                     ->  BitmapAnd  (cost=102.63..102.63 rows=1 width=0) (actual time=1.201..1.201 rows=0 loops=187)
                           ->  Bitmap Index Scan on index_ci_builds_on_gl_project_id  (cost=0.00..10.52 rows=241 width=0) (actual time=0.406..0.406 rows=1944 loops=187)
                                 Index Cond: (gl_project_id = public.ci_builds.gl_project_id)
                           ->  Bitmap Index Scan on index_ci_builds_on_status  (cost=0.00..91.78 rows=3089 width=0) (actual time=0.652..0.652 rows=3362 loops=187)
                                 Index Cond: ((status)::text = 'pending'::text)
       Total runtime: 303.832 ms
      ```
      
      ## Specific runners
      
      It doesn't affect the specific runners which still serve builds FIFO.
      
      @stanhu @markpundsack @yorickpeterse What do you think?
      
      
      See merge request !4634
    • Update CHANGELOG for 8.8.5 release · c69715ba
      Stan Hu authored
      [ci skip]
    • Fix test. · fbc91599
      Connor Shea authored
    • Improve New Project page for mobile. · 01d9bffd
      Connor Shea authored
      Separate the New Project page's "Project path" grouped fields into separate fields.
      
      Fixes #18599.
    • Moved pinned button to the bottom · 78866921
      Phil Hughes authored
      Changed breakpoint width to 1440px
    • Merge branch… · 2cfbf3e8
      Robert Speicher authored
      Merge branch '18131-pressing-merge-when-build-succeeds-at-the-same-exact-time-that-a-build-is-failing-will-merge-the-failed-build' into 'master'
      
      Fix race condition on auto merge
      
      Resolves #18131
      
      See merge request !4443
    • Merge branch 'project-services-inverse-of' into 'master' · 32a5ff70
      Rémy Coutable authored
      Set inverse_of for Project/Services relation
      
      ## What does this MR do?
      
      This MR adds the `inverse_of:` option to two associations to reduce the number of queries when running code such as ` project.gitlab_issue_tracker_service.project`.
      
      ## Are there points in the code the reviewer needs to double check?
      
      No.
      
      ## Why was this MR needed?
      
      In !4410 it was revealed code such as the above is used and would run SQL queries when the root object (usually a Project) was already present. By using `inverse_of` Rails can just re-use those Project instances.
      
      ## What are the relevant issue numbers?
      
      None.
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [x] ~~[Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)~~
      - [x] ~~API support added~~
      - [x] Tests
        - [x] ~~Added for this feature/bug~~
        - [x] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !4674
    • Clicking body closes nav · 7d9157ff
      Phil Hughes authored
      Fixed issue when nav wasn't present
    • Rename ci_commit to pipeline · 17ad286e
      Z.J. van de Weg authored
    • Fix race condition on auto merge · 3fe4a2f5
      Zeger-Jan van de Weg authored
    • Increased speed of sidebar transition · 9d74eb46
      Phil Hughes authored
    • Set inverse_of for Project/Services relation · 8a9164bf
      Yorick Peterse authored
      This ensures that code such as this don't run needless SQL queries:
      
          project.gitlab_issue_tracker_service.project
      
      This also means that if the root `project` eager loads any associations
      the Service object will be able to re-use those.