Skip to content
Snippets Groups Projects
  1. Feb 21, 2020
  2. Feb 05, 2020
  3. Oct 22, 2019
  4. Oct 17, 2019
  5. Sep 18, 2019
  6. Aug 17, 2019
  7. Aug 13, 2019
    • 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
      
      Fic
      4e2bb4e5
  8. Apr 25, 2019
  9. Apr 08, 2019
    • Luke Duncalfe's avatar
      Use Gitlab::PushOptions for `ci.skip` push option · 1883e320
      Luke Duncalfe authored
      Previously the raw push option Array was sent to Pipeline::Chain::Skip.
      
      This commit updates this class (and the chain of classes that pass the
      push option parameters from the API internal `post_receive` endpoint to
      that class) to treat push options as a Hash of options parsed by
      GitLab::PushOptions.
      
      The GitLab::PushOptions class takes options like this:
      
          -o ci.skip -o merge_request.create -o merge_request.target=branch
      
      and turns them into a Hash like this:
      
          {
            ci: {
              skip: true
            },
            merge_request: {
              create: true,
              target: 'branch'
            }
          }
      
      This now how Pipeline::Chain::Skip is determining if the `ci.skip` push
      option was used.
      1883e320
  10. Jan 31, 2019
  11. Jan 18, 2019
  12. Dec 31, 2018
    • Jonathon Reinhart's avatar
      Add support for Git push options, specifically ci.skip · ba781484
      Jonathon Reinhart authored
      gitlab-org/gitlab-shell!166 added support for collecting push options
      from the environment, and passing them along to the
      /internal/post_receive API endpoint.
      
      This change handles the new push_options JSON element in the payload,
      and passes them on through to the GitPushService and GitTagPushService
      services.
      
      Futhermore, it adds support for the first push option, ci.skip.  With
      this change, one can use 'git push -o ci.skip' to skip CI pipe
      execution. Note that the pipeline is still created, but in the "skipped"
      state, just like with the 'ci skip' commit message text.
      
      Implements #18667
      ba781484
  13. Nov 07, 2018
    • gfyoung's avatar
      Enable even more frozen string in lib/gitlab · 7e6f6e16
      gfyoung authored
      Enables frozens string for the following:
      
      * lib/gitlab/conflict/**/*.rb
      * lib/gitlab/cross_project_access/**/*.rb
      * lib/gitlab/cycle_analytics/**/*.rb
      * lib/gitlab/data_builder/**/*.rb
      * lib/gitlab/database/**/*.rb
      * lib/gitlab/dependency_linker/**/*.rb
      * lib/gitlab/diff/**/*.rb
      * lib/gitlab/downtime_check/**/*.rb
      * lib/gitlab/email/**/*.rb
      * lib/gitlab/etag_caching/**/*.rb
      
      Partially addresses gitlab-org/gitlab-ce#47424.
      7e6f6e16
  14. Aug 31, 2018
  15. Oct 05, 2017
  16. Sep 22, 2017
  17. Aug 27, 2017
    • Stan Hu's avatar
      Simplify system hook testing and guarantee test will fire · 1e53f40c
      Stan Hu authored
      The change in !11728 would cause an arbitrary project to be chosen to test
      system hooks, and it's likely that the project would not have any commits or
      relevant commits to test the hook. This would prevent admins from verifying
      that the hook fired. Instead of trying to create a representative hook
      dynamically, just send static data to guarantee the hook will actually be
      tested.
      
      Closes #37067
      1e53f40c
  18. Jul 28, 2017
  19. Jul 20, 2017
  20. May 10, 2017
  21. Apr 27, 2017
  22. Oct 28, 2016
  23. Aug 12, 2016
  24. Aug 04, 2016
  25. Apr 29, 2016
  26. Apr 19, 2016
  27. Mar 10, 2016
  28. Feb 15, 2016
  29. Feb 11, 2016
    • Kirill Zaitsev's avatar
      Add new data to project in push, issue, merge-request and note webhooks data · b123171d
      Kirill Zaitsev authored
      - Add `avatar_url`, `description`, `git_ssh_url`, `git_http_url`,
        `path_with_namespace` and `default_branch` in `project` in push, issue,
        merge-request and note webhooks data
      - Deprecate the `ssh_url` in favor of `git_ssh_url` and `http_url` in
        favor of `git_http_url` in `project` for push, issue, merge-request and
        note webhooks data
      - Deprecate the `repository` key in push, issue, merge-request and
        note webhooks data, use `project` instead
      b123171d
  30. Dec 07, 2015
  31. Dec 04, 2015
  32. Nov 03, 2015
  33. Jun 15, 2015
  34. Apr 24, 2015
  35. Mar 21, 2015
  36. Mar 19, 2015
Loading