Skip to content
Snippets Groups Projects
  1. Sep 30, 2019
  2. Sep 17, 2019
  3. Aug 28, 2019
    • Stan Hu's avatar
      Fix moving issues API failing when text includes commit URLs · 29ce13e9
      Stan Hu authored
      When a issue is moved from one project to another, all associated
      Markdown text is rewritten in the context of the new project. If the
      note contained a link to a commit URL, `CommitRewriter#rewrite` would
      fail because `Commit#link_reference_pattern` would match `nil` `commit`
      values in the HTML generated from the Markdown. These `nil` values were
      passed along to `Project#commits_by` because `Commit#reference_valid?`
      was always returning `true`.
      
      To prevent this issue from happening, we tighten up the check for
      `Commit#reference_valid?` to look for valid SHA values.
      
      Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/66666
      29ce13e9
  4. Jul 24, 2019
    • Stan Hu's avatar
      Enable Rubocop Performance/ReverseEach · 07a308ad
      Stan Hu authored
      `Array.reverse_each` is faster than `Array.reverse.each` because:
      
      * reverse.each creates a new array then loops each element
      * reverse_each loops in reverse order (no intermediate array created)
      07a308ad
  5. Jun 13, 2019
  6. Jun 05, 2019
    • Patrick Bajao's avatar
      Use Redis for CacheMarkDownField on non AR models · 2eecfd8f
      Patrick Bajao authored
      This allows using `CacheMarkdownField` for models that are not backed
      by ActiveRecord.
      
      When the including class inherits `ActiveRecord::Base` we include
      `Gitlab::MarkdownCache::ActiveRecord::Extension`. This will cause the
      markdown fields to be rendered and the generated HTML stored in a
      `<field>_html` attribute on the record. We also store the version
      used for generating the markdown.
      
      All other classes that include this model will include the
      `Gitlab::MarkdownCache::Redis::Extension`. This add the `<field>_html`
      attributes to that model and will generate the html in them. The
      generated HTML will be cached in redis under the key
      `markdown_cache:<class>:<id>`. The class this included in must
      therefore respond to `id`.
      2eecfd8f
  7. Feb 06, 2019
  8. Jan 31, 2019
  9. Jan 28, 2019
  10. Dec 28, 2018
  11. Dec 07, 2018
  12. Dec 05, 2018
  13. Nov 19, 2018
  14. Nov 07, 2018
    • Tiago Botelho's avatar
      User can keep their commit email private · c239452b
      Tiago Botelho authored
      The private commit email is automatically generated in the format:
      id-username@noreply.HOSTNAME
      
      GitLab instance admins are able to change the HOSTNAME portion,
      that defaults to Gitlab's hostname, to whatever they prefer.
      Unverified
      c239452b
  15. Oct 03, 2018
  16. Sep 06, 2018
  17. Aug 21, 2018
  18. Aug 10, 2018
  19. Jul 26, 2018
  20. May 17, 2018
    • Yorick Peterse's avatar
      Preload pipeline data for project pipelines · 19428e80
      Yorick Peterse authored
      When displaying the pipelines of a project we now preload the following
      data:
      
      1. Authors of the commits that belong to these pipelines
      2. The number of warnings per pipeline, which is used by
         Ci::Pipeline#has_warnings?
      
      == Commit Authors
      
      Previously this data was queried for every Commit separately, leading to
      20 SQL queries being executed in the worst case. With an average of 3 to
      5 milliseconds per SQL query this could result in 100 milliseconds being
      spent in _just_ getting Commit authors.
      
      To preload this data Commit#author now uses BatchLoader (through
      Commit#lazy_author), and a separate module
      Gitlab::Ci::Pipeline::Preloader is used to ensure all authors are loaded
      before they are used.
      
      == Number of warnings
      
      This changes Ci::Pipeline#has_warnings? so it supports preloading of the
      number of warnings per pipeline. This removes the need for executing a
      COUNT(*) query for every pipeline just to see if it has any warnings or
      not.
      Unverified
      19428e80
  21. May 01, 2018
  22. Apr 29, 2018
    • blackst0ne's avatar
      [Rails5] Add `touch_later` to `Commit` model · 68c75bc0
      blackst0ne authored
      This commit fixes errors like:
      
      ```
      1) API::Todos GET /todos when unauthenticated returns authentication error
          Failure/Error: @raw.__send__(method, *args, &block) # rubocop:disable GitlabSecurity/PublicSend
      
          NoMethodError:
            undefined method `touch_later' for #<Gitlab::Git::Commit:0x00005573f5196270>
          # ./app/models/commit.rb:259:in `method_missing'
          # ./spec/requests/api/todos_spec.rb:12:in `block (2 levels) in <top (required)>'
      ```
      68c75bc0
  23. Apr 19, 2018
    • Stan Hu's avatar
      Fix N+1 queries when loading participants for a commit note · 775211bc
      Stan Hu authored
      We saw about 10,000 SQL queries for some commits in the NewNoteWorker,
      which stalled the Sidekiq queue for other new notes. The notification
      service took up to 8 minutes to process the commits. Avoiding this
      N+1 query brings the time down significantly.
      
      Closes #45526
      775211bc
  24. Apr 06, 2018
  25. Apr 04, 2018
  26. Mar 26, 2018
  27. Mar 06, 2018
  28. Mar 01, 2018
  29. Feb 16, 2018
    • Micael Bergeron's avatar
      stop ProcessCommitWorker from processing MR merge commit · eef63813
      Micael Bergeron authored
      When a merge request is merged, it creates a commit with the
      description of the MR, which may contain references and issue
      closing references. As this will be handled in the PostMergeService
      anyways, let's ignore merge commit generated from a MR.
      eef63813
  30. Feb 14, 2018
  31. Jan 15, 2018
  32. Jan 12, 2018
  33. Jan 04, 2018
  34. Dec 19, 2017
    • Zeger-Jan van de Weg's avatar
      Load commit in batches for pipelines#index · c6edae38
      Zeger-Jan van de Weg authored
      Uses `list_commits_by_oid` on the CommitService, to request the needed
      commits for pipelines. These commits are needed to display the user that
      created the commit and the commit title.
      
      This includes fixes for tests failing that depended on the commit
      being `nil`. However, now these are batch loaded, this doesn't happen
      anymore and the commits are an instance of BatchLoader.
      Unverified
      c6edae38
  35. Dec 13, 2017
    • Jacopo's avatar
      Adds ordering to projects contributors in API · 55f32208
      Jacopo authored
      Allows ordering in GET api/v4/projects/:project_id/repository/contributors
      through `order_by` and `sort` params.
      The available `order_by` options are: name|email|commits.
      The available `sort` options are: asc|desc.
      55f32208
  36. Dec 07, 2017
Loading