1. 04 Aug, 2016 2 commits
  2. 02 Aug, 2016 1 commit
  3. 01 Aug, 2016 8 commits
  4. 31 Jul, 2016 1 commit
  5. 30 Jul, 2016 1 commit
  6. 29 Jul, 2016 20 commits
    • Z.J. van de Weg's avatar
      Use Grape DSL for environment endpoints · 1b72256f
      Z.J. van de Weg authored
      Also a couple of minor edits for this branch are included
      1b72256f
    • Stan Hu's avatar
      Properly abort a merge when merge conflicts occur · 60529e02
      Stan Hu authored
      If somehow a user attempted to accept a merge request that had
      conflicts (e.g. the "Accept Merge Request" button or the MR itself was
      not updated), `MergeService` did not properly detect that a conflict
      occurred. It would assume that the MR went through without any issues
      and close the MR as though everything was fine. This could cause
      data loss if the source branch were removed.
      
      Closes #20425
      60529e02
    • Grzegorz Bizon's avatar
      a42cce1b
    • Paco Guzman's avatar
      d05af7b7
    • Z.J. van de Weg's avatar
      Incorporate feedback · 76e9b684
      Z.J. van de Weg authored
      76e9b684
    • Z.J. van de Weg's avatar
      Add API support for environments · 84cd2120
      Z.J. van de Weg authored
      84cd2120
    • Z.J. van de Weg's avatar
      Add an URL field to Environments · be9aa7f1
      Z.J. van de Weg authored
      This MR adds a string (thus max 255 chars) field to the enviroments
      table to expose it later in other features.
      be9aa7f1
    • 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
    • Timothy Andrew's avatar
      Use `Gitlab::Access` to protected branch access levels. · 0a8aeb46
      Timothy Andrew authored
      1. It makes sense to reuse these constants since we had them duplicated
         in the previous enum implementation. This also simplifies our
         `check_access` implementation, because we can use
         `project.team.max_member_access` directly.
      
      2. Use `accepts_nested_attributes_for` to create push/merge access
         levels. This was a bit fiddly to set up, but this simplifies our code
         by quite a large amount. We can even get rid of
         `ProtectedBranches::BaseService`.
      
      3. Move API handling back into the API (previously in
         `ProtectedBranches::BaseService#translate_api_params`.
      
      4. The protected branch services now return a `ProtectedBranch` rather
         than `true/false`.
      
      5. Run `load_protected_branches` on-demand in the `create` action, to
         prevent it being called unneccessarily.
      
      6. "Masters" is pre-selected as the default option for "Allowed to Push"
         and "Allowed to Merge".
      
      7. These changes were based on a review from @rymai in !5081.
      0a8aeb46
    • Timothy Andrew's avatar
      Fix `git_push_service_spec` · c93a895a
      Timothy Andrew authored
      1. Caused by incorrect test setup. The user wasn't added to the project,
         so protected branch creation failed authorization.
      
      2. Change setup for a different test (`Event.last` to
         `Event.find_by_action`) because our `project.team << ...` addition
         was causing a conflict.
      c93a895a
    • Timothy Andrew's avatar
      Have the `branches` API work with the new protected branches data model. · 01d190a8
      Timothy Andrew authored
      1. The new data model moves from `developers_can_{push,merge}` to
         `allowed_to_{push,merge}`.
      
      2. The API interface has not been changed. It still accepts
         `developers_can_push` and `developers_can_merge` as options. These
         attributes are inferred from the new data model.
      
      3. Modify the protected branch create/update services to translate from
         the API interface to our current data model.
      01d190a8
    • Timothy Andrew's avatar
      Implement review comments from @axil. · 88fd401d
      Timothy Andrew authored
      1. Align "Allowed to Merge" and "Allowed to Push" dropdowns.
      
      2. Don't display a flash every time a protected branch is updated.
         Previously, we were using this so the test has something to hook onto
         before the assertion. Now we're using `wait_for_ajax` instead.
      88fd401d
    • Timothy Andrew's avatar
      Remove duplicate specs from `git_access_spec` · a72d4491
      Timothy Andrew authored
      - Likely introduced during an improper conflict resolution.
      a72d4491
    • Timothy Andrew's avatar
      Admins count as masters too. · cc1cebdc
      Timothy Andrew authored
      1. In the context of protected branches.
      
      2. Test this behaviour.
      cc1cebdc
    • Timothy Andrew's avatar
      Make specs compatible with PhantomJS versions < 2. · 4d6dadc8
      Timothy Andrew authored
      1. These versions of PhantomJS don't support `PATCH` requests, so we use
         a `POST` with `_method` set to `PATCH`.
      4d6dadc8
    • Timothy Andrew's avatar
      Humanize protected branches' access levels at one location. · f2df2966
      Timothy Andrew authored
      1. The model now contains this humanization data, which is the once
         source of truth.
      
      2. Previously, this was being listed out in the dropdown component as well.
      f2df2966
    • Timothy Andrew's avatar
      Fix all specs related to changes in !5081. · c647540c
      Timothy Andrew authored
      1. Remove `Project#developers_can_push_to_protected_branch?` since it
         isn't used anymore.
      
      2. Remove `Project#developers_can_merge_to_protected_branch?` since it
         isn't used anymore.
      c647540c
    • Timothy Andrew's avatar
      Fix default branch protection. · a9958ddc
      Timothy Andrew authored
      1. So it works with the new data model for protected branch access levels.
      a9958ddc
    • Timothy Andrew's avatar
      Update protected branches spec to work with the `select`s. · 9fa66147
      Timothy Andrew authored
      1. Get the existing spec passing.
      
      2. Add specs for all the access control options, both while creating and
         updating protected branches.
      
      3. Show a flash notice when updating protected branches, primarily so
         the spec knows when the update is done.
      9fa66147
    • Timothy Andrew's avatar
      Enforce "No One Can Push" during git operations. · 828f6eb6
      Timothy Andrew authored
      1. The crux of this change is in `UserAccess`, which looks through all
         the access levels, asking each if the user has access to push/merge
         for the current project.
      
      2. Update the `protected_branches` factory to create access levels as
         necessary.
      
      3. Fix and augment `user_access` and `git_access` specs.
      828f6eb6
  7. 28 Jul, 2016 7 commits
    • Alejandro Rodríguez's avatar
      Fix failing CommitController spec · 08bac551
      Alejandro Rodríguez authored
      08bac551
    • Alejandro Rodríguez's avatar
    • James Lopez's avatar
      fix repo hooks missing on import · 32d8aa6d
      James Lopez authored
       fix spec and added changelog
      32d8aa6d
    • Herminio Torres's avatar
      Fix the title of the toggle dropdown button · 94e6d51e
      Herminio Torres authored
      Before when you choose the way of `sort` instead it display the title correctly it was just apply the humanize helper in sort value.
      
      E.g.
      
      When you choose `Last updated` it should display the title `Last updated` instead of `Recently updated`. This fix makes this correctly displays the title.
      
      Change the implementation of the `link_to` `filter_branches_path`
      
      - Change the value of the `params[:sort]` in `link_to`. E.g. instead of using `'recently_updated'` is now using `sort_value_recently_updated`.
      
      - Change the values of the case in the `branches_sorted_by` method for the values it receives in the `params[:sort]` that are: `nil`, `'name'`, `'updated_desc'`, `'updated_asc'`.
      94e6d51e
    • Yorick Peterse's avatar
      Reduce instrumentation overhead · 905f8d76
      Yorick Peterse authored
      This reduces the overhead of the method instrumentation code primarily
      by reducing the number of method calls. There are also some other small
      optimisations such as not casting timing values to Floats (there's no
      particular need for this), using Symbols for method call metric names,
      and reducing the number of Hash lookups for instrumented methods.
      
      The exact impact depends on the code being executed. For example, for a
      method that's only called once the difference won't be very noticeable.
      However, for methods that are called many times the difference can be
      more significant.
      
      For example, the loading time of a large commit
      (nrclark/dummy_project@81ebdea5df2fb42e59257cb3eaad671a5c53ca36)
      was reduced from around 19 seconds to around 15 seconds using these
      changes.
      905f8d76
    • dixpac's avatar
      Add commit stats to commit api response · a4bb9993
      dixpac authored
      a4bb9993
    • Stan Hu's avatar
      Add specs for caching commit author · d27e36f3
      Stan Hu authored
      d27e36f3