An error occurred fetching the project authors.
  1. 27 Feb, 2020 1 commit
  2. 26 Feb, 2020 1 commit
  3. 18 Feb, 2020 1 commit
  4. 17 Feb, 2020 1 commit
  5. 12 Feb, 2020 1 commit
  6. 10 Feb, 2020 1 commit
  7. 29 Jan, 2020 1 commit
  8. 28 Jan, 2020 1 commit
  9. 27 Jan, 2020 1 commit
  10. 24 Jan, 2020 1 commit
  11. 23 Jan, 2020 1 commit
  12. 21 Jan, 2020 1 commit
  13. 20 Jan, 2020 1 commit
  14. 03 Jan, 2020 1 commit
  15. 27 Dec, 2019 1 commit
  16. 24 Dec, 2019 1 commit
  17. 18 Dec, 2019 1 commit
  18. 16 Dec, 2019 1 commit
  19. 12 Dec, 2019 1 commit
  20. 09 Dec, 2019 1 commit
  21. 04 Dec, 2019 1 commit
  22. 20 Nov, 2019 1 commit
  23. 29 Oct, 2019 1 commit
  24. 24 Oct, 2019 1 commit
  25. 23 Oct, 2019 1 commit
  26. 10 Oct, 2019 2 commits
  27. 09 Oct, 2019 1 commit
  28. 24 Sep, 2019 1 commit
  29. 03 Sep, 2019 1 commit
  30. 28 Aug, 2019 1 commit
  31. 09 Jul, 2019 1 commit
  32. 17 May, 2019 1 commit
  33. 03 May, 2019 1 commit
  34. 16 Apr, 2019 1 commit
    • Luke Duncalfe's avatar
      Fix logic in Api::Internal test · 37492c5d
      Luke Duncalfe authored
      The intention of this test is to ensure that the service class
      MergeRequests::PushOptionsHandlerService does not run when the
      :mr_push_options feature flag is disabled.
      
      This test was passing, however was not testing what it was supposed to
      be!
      
      For one, setting Feature.disable(:feature) in the test does not disable
      the feature, as rspec config in spec_helper stubs Feature to make all
      features enabled:
      
      https://gitlab.com/gitlab-org/gitlab-ce/commit/3ee48e422defaedd69946c607bd8d3672e510375
      
      So the feature was still enabled in the test.
      
      But this test wasn't failing because unfortunately I had put:
      
      ```
      expect(MergeRequests::PushOptionsHandlerService).to receive(:new)
      ```
      
      instead of not_to!
      
      This meant that the `.new` method was being stubbed, so the service
      class did not create a MergeRequest, which satisfied the second
      expectation.
      
      ```
      expect(MergeRequests::PushOptionsHandlerService).to receive(:new)
      ```
      37492c5d
  35. 08 Apr, 2019 5 commits
    • Luke Duncalfe's avatar
    • Luke Duncalfe's avatar
      Refactor PushOptionsHandlerService from review · e73f537c
      Luke Duncalfe authored
      Exceptions are no longer raised, instead all errors encountered are
      added to the errors property.
      
      MergeRequests::BuildService is used to generate attributes of a new
      merge request.
      
      Code moved from Api::Internal to Api::Helpers::InternalHelpers.
      e73f537c
    • 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
    • Luke Duncalfe's avatar
      867ac4d1
    • Luke Duncalfe's avatar
      Support merge request create with push options · aa352a95
      Luke Duncalfe authored
      To create a new merge request:
      
        git push -u origin -o merge_request.create
      
      To create a new merge request setting target branch:
      
        git push -u origin -o merge_request.create \
          -o merge_request.target=123
      
      To update an existing merge request with a new target branch:
      
        git push -u origin -o merge_request.target=123
      
      A new Gitlab::PushOptions class handles parsing and validating the push
      options array. This can be the start of the standard of GitLab accepting
      push options that follow namespacing rules. Rules are discussed in issue
      https://gitlab.com/gitlab-org/gitlab-ce/issues/43263.
      
      E.g. these push options:
      
        -o merge_request.create -o merge_request.target=123
      
      Become parsed as:
      
        {
          merge_request: {
            create: true,
            target: '123',
          }
        }
      
      And are fetched with the class via:
      
        push_options.get(:merge_request)
        push_options.get(:merge_request, :create)
        push_options.get(:merge_request, :target)
      
      A new MergeRequests::PushOptionsHandlerService takes the `merge_request`
      namespaced push options and handles creating and updating
      merge requests.
      
      Any errors encountered are passed to the existing `output` Hash in
      Api::Internal's `post_receive` endpoint, and passed to gitlab-shell
      where they're output to the user.
      
      Issue https://gitlab.com/gitlab-org/gitlab-ce/issues/43263
      aa352a95