1. 22 Aug, 2019 2 commits
  2. 19 Aug, 2019 1 commit
  3. 17 Aug, 2019 1 commit
  4. 16 Aug, 2019 3 commits
    • Stan Hu's avatar
      Expire project caches once per push instead of once per ref · f14647fd
      Stan Hu authored
      Previously `ProjectCacheWorker` would be scheduled once per ref, which
      would generate unnecessary I/O and load on Sidekiq, especially if many
      tags or branches were pushed at once. `ProjectCacheWorker` would expire
      three items:
      1. Repository size: This only needs to be updated once per push.
      2. Commit count: This only needs to be updated if the default branch
         is updated.
      3. Project method caches: This only needs to be updated if the default
         branch changes, but only if certain files change (e.g. README,
         CHANGELOG, etc.).
      Because the third item requires looking at the actual changes in the
      commit deltas, we schedule one `ProjectCacheWorker` to handle the first
      two cases, and schedule a separate `ProjectCacheWorker` for the third
      case if it is needed. As a result, this brings down the number of
      `ProjectCacheWorker` jobs from N to 2.
      Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/52046
    • rossfuhrman's avatar
      Remove Security Dashboard feature flag · 3fbc51d3
      rossfuhrman authored
      This removes the group_overview_security_dashboard feature flag
    • Jarka Košanová's avatar
      Add rake tasks for migrating leacy uploads · 19db3157
      Jarka Košanová authored
      - move uploads created by AttachmentUploader
      - handle also files created for legacy_diff_notes
  5. 15 Aug, 2019 4 commits
  6. 14 Aug, 2019 6 commits
  7. 13 Aug, 2019 5 commits
    • Stan Hu's avatar
      Only expire tag cache once per push · e658f960
      Stan Hu authored
      Previously each tag in a push would invoke the Gitaly `FindAllTags` RPC
      since the tag cache would be invalidated with every tag.
      We can eliminate those extraneous calls by expiring the tag cache once
      in `PostReceive` and taking advantage of the cached tags.
      Relates to https://gitlab.com/gitlab-org/gitlab-ce/issues/65795
    • Kamil Trzciński's avatar
      Require `needs:` to be present · 93e95182
      Kamil Trzciński authored
      This changes the `needs:` logic to require
      that all jobs to be present. Instead of skipping
      do fail the pipeline creation if `needs:` dependency
      is not found.
    • Kamil Trzciński's avatar
      Require `stage:` to be set with `needs:` · 583544d0
      Kamil Trzciński authored
      Since we are unsure what would be the behavior of `stage:`
      when we work on DAG. Let's make `stage:` to be required
      today with `needs:`.
    • Stan Hu's avatar
      Reduce Gitaly calls in PostReceive · 4e2bb4e5
      Stan Hu authored
      This commit reduces I/O load and memory utilization during PostReceive
      for the common case when no project hooks or services are set up.
      We saw a Gitaly N+1 issue in `CommitDelta` when many tags or branches
      are pushed. We can reduce this overhead in the common case because we
      observe that most new projects do not have any Web hooks or services,
      especially when they are first created. Previously, `BaseHooksService`
      unconditionally iterated through the last 20 commits of each ref to
      build the `push_data` structure. The `push_data` structured was used in
      numerous places:
      1. Building the push payload in `EventCreateService`
      2. Creating a CI pipeline
      3. Executing project Web or system hooks
      4. Executing project services
      5. As the return value of `BaseHooksService#execute`
      6. `BranchHooksService#invalidated_file_types`
      We only need to generate the full `push_data` for items 3, 4, and 6.
      Item 1: `EventCreateService` only needs the last commit and doesn't
      actually need the commit deltas.
      Item 2: In addition, `Ci::CreatePipelineService` only needed a subset of
      the parameters.
      Item 5: The return value of `BaseHooksService#execute` also wasn't being
      used anywhere.
      Item 6: This is only used when pushing to the default branch, so if
      many tags are pushed we can save significant I/O here.
      Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/65878
    • Heinrich Lee Yu's avatar
      Improve quick action error messages · 7a6ecbcb
      Heinrich Lee Yu authored
      Standardize punctuation and format
  8. 12 Aug, 2019 6 commits
  9. 11 Aug, 2019 1 commit
    • Stan Hu's avatar
      Properly save suggestions in project exports · 26107e93
      Stan Hu authored
      Previously imports would fail if a merge request note included a
      suggestion with an
      This was happening because suggestions were listed as a descendant of
      merge requests, but this doesn't work because suggestions are directly
      associated with notes, not merge requests, and that association is lost.
      Rails also disallows creating intializing a has_many association through
      a different object.
      We fix this by making `suggestions` a child of `notes` within a merge
      request. This doesn't fix previously broken exported project exports,
      but new exports will work.
      Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/65880
  10. 10 Aug, 2019 1 commit
  11. 09 Aug, 2019 7 commits
    • Igor's avatar
      Split MR widget into cached and non-cached serializers · b99011af
      Igor authored
      Splits auto-refreshing of MR widget into 2 requests:
      - the one which uses etag-caching and invalidates the fields on change
      - the one without caching
      The idea is to gradually move all the fields to etag-cached endpoint
    • Tristan Read's avatar
      Remove gfm_embed_metrics flag from BE · 5e6a5804
      Tristan Read authored
      Removes the feature flag that controls whether
      metrics dashboard urls unfurl the metrics dashboard
    • Patrick Bajao's avatar
      Invalidate branches cache on PostReceive · d96c24d8
      Patrick Bajao authored
      Whenever `PostReceive` is enqueued, `UpdateMergeRequestsWorker`
      is enqueued and `MergeRequests::RefreshService` is called, it'll
      check if the source branch of each MR asssociated to the push exists
      or not via `MergeRequest#source_branch_exists?`. The said method will
      call `Repository#branch_exists?` which is cached in `Rails.cache`.
      When the cache contains outdated data and the source branch actually
      exists, the `MergeRequests#RefreshService` job will close associated
      MRs which is not correct.
      The fix is to expire the branches cache of the project so we have
      updated data during the post receive hook which will help in the
      accuracy of the check if we need to close associated MRs or not.
    • Stan Hu's avatar
      Add Gitaly and Rugged call timing in Sidekiq logs · a74396dc
      Stan Hu authored
      This will help identify Sidekiq jobs that invoke excessive number of
      filesystem access.
      The timing data is stored in `RequestStore`, but this is only active
      within the middleware and is not directly accessible to the Sidekiq
      logger. However, it is possible for the middleware to modify the job
      hash to pass this data along to the logger.
    • Stan Hu's avatar
      Fix Sidekiq scheduling_latency_s · 7ccbb562
      Stan Hu authored
      This number was reporting a negative number because `current_time` was
      a monotonic counter, not an absolute time.
      Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/65748
    • Patrick Bajao's avatar
      Revert "Merge branch '65152-selective-highlight' into 'master'" · 6d318af5
      Patrick Bajao authored
      This reverts merge request !31361
    • Cindy Pallares 🦉's avatar
  12. 08 Aug, 2019 3 commits