An error occurred fetching the project authors.
  1. 27 Jun, 2017 1 commit
  2. 21 Jun, 2017 1 commit
  3. 09 Mar, 2017 1 commit
  4. 23 Feb, 2017 2 commits
  5. 05 Feb, 2017 1 commit
  6. 26 Jan, 2017 1 commit
  7. 25 Jan, 2017 1 commit
  8. 18 Jan, 2017 1 commit
  9. 01 Sep, 2016 1 commit
  10. 30 Aug, 2016 2 commits
  11. 26 Aug, 2016 1 commit
  12. 20 Aug, 2016 2 commits
  13. 29 Jul, 2016 1 commit
    • Yorick Peterse's avatar
      Method for returning issues readable by a user · 002ad215
      Yorick Peterse authored
      The method Ability.issues_readable_by_user takes a list of users and an
      optional user and returns an Array of issues readable by said user. This
      method in turn is used by
      Banzai::ReferenceParser::IssueParser#nodes_visible_to_user so this
      method no longer needs to get all the available abilities just to check
      if a user has the "read_issue" ability.
      
      To test this I benchmarked an issue with 222 comments on my development
      environment. Using these changes the time spent in nodes_visible_to_user
      was reduced from around 120 ms to around 40 ms.
      002ad215
  14. 26 Jul, 2016 1 commit
    • Stan Hu's avatar
      Optimize maximum user access level lookup in loading of notes · d1ea2bca
      Stan Hu authored
      NotesHelper#note_editable? and ProjectTeam#human_max_access currently
      take about 16% of the load time of an issue page. This MR preloads
      the maximum access level of users for all notes in issues and merge
      requests with several queries instead of one per user and caches
      the result in RequestStore.
      d1ea2bca
  15. 03 Jun, 2016 2 commits
  16. 01 Jun, 2016 1 commit
    • Yorick Peterse's avatar
      Refactor Participable · 580d2501
      Yorick Peterse authored
      There are several changes to this module:
      
      1. The use of an explicit stack in Participable#participants
      2. Proc behaviour has been changed
      3. Batch permissions checking
      
      == Explicit Stack
      
      Participable#participants no longer uses recursion to process "self" and
      all child objects, instead it uses an Array and processes objects in
      breadth-first order. This allows us to for example create a single
      Gitlab::ReferenceExtractor instance and pass this to any Procs. Re-using
      a ReferenceExtractor removes the need for running potentially many SQL
      queries every time a Proc is called on a new object.
      
      == Proc Behaviour Changed
      
      Previously a Proc in Participable was expected to return an Array of
      User instances. This has been changed and instead it's now expected that
      a Proc modifies the Gitlab::ReferenceExtractor passed to it. The return
      value of the Proc is ignored.
      
      == Permissions Checking
      
      The method Participable#participants uses
      Ability.users_that_can_read_project to check if the returned users have
      access to the project of "self" _without_ running multiple SQL queries
      for every user.
      580d2501