1. 16 Aug, 2016 10 commits
    • Timothy Andrew's avatar
      Backport EE assertions in protected branch related specs. · 8c101fc3
      Timothy Andrew authored
      - Use assertions in the vein of `merge_access_levels.map(&:access_level)`
        instead of `merge_access_levels.first.access_level`
      8c101fc3
    • Timothy Andrew's avatar
      Fix a missed `before_action` for `AutocompleteController`. · f898a47e
      Timothy Andrew authored
      - `#find_users` depends on a project being loaded.
      
      - Missed adding this in 2193ae22
      f898a47e
    • Timothy Andrew's avatar
      Backport `AutocompleteController#load_project` from EE!581. · 2193ae22
      Timothy Andrew authored
      - This is an optimization that was made in !581, and it needs to be
        backported to CE to avoid merge conflicts in the future.
      2193ae22
    • Timothy Andrew's avatar
      Fix API::BranchesSpec. · 0e2cecfd
      Timothy Andrew authored
      - Previously created a protected branch manually, without using a
        factory.
      0e2cecfd
    • Timothy Andrew's avatar
      Fix failing tests relating to backporting ee!581. · dd3b738d
      Timothy Andrew authored
      1. `GitPushService` was still using `{merge,push}_access_level_attributes` instead
         of `{merge,push}_access_levels_attributes`.
      
      2. The branches API creates access levels regardless of the state of the
         `developers_can_{push,merge}` parameters. This is in line with the UI,
         where Master access is the default for a new protected branch.
      
      3. Use `after(:build)` to create access levels in the
         `protected_branches` factory, so that `factories_spec` passes. It
         only builds records, so we need to create access levels on `build` as
         well.
      dd3b738d
    • Timothy Andrew's avatar
      Fix the protected branches factory. · 37651d2f
      Timothy Andrew authored
      1. Previously, we were using `after_create` to create access levels.
      
      2. At the time of protected branch creation, there are _no_ access
         levels present, which is invalid, and creation fails.
      
      3. Fixed by setting access levels before the protected branch is created.
      37651d2f
    • Timothy Andrew's avatar
      Improve EE compatibility with protected branch access levels. · 4ddbbcd1
      Timothy Andrew authored
      1. Change a few incorrect `access_level` to `access_levels.first` that
         were missed in e805a647.
      
      2. `API::Entities` can iterate over all access levels instead of just
         the first one. This makes no difference to CE, and makes it more compatible
         with EE.
      4ddbbcd1
    • Timothy Andrew's avatar
      Move the "update" portion of the protected branch view into a partial. · e9f48335
      Timothy Andrew authored
      1. To improve EE compatibility.
      e9f48335
    • Timothy Andrew's avatar
      Don't select an access level if already selected. · 4c28d626
      Timothy Andrew authored
      1. This is in regard to the protected branches feature spec.
      
      2. For example, if "Masters" is already selected, don't re-select
         "Masters" during the spec.
      
      3. This is due to a bug in the frontend implementation, where selecting
         an already-selected access level _deselects_ it, which is something
         we don't need. I'll create a separate issue for this.
      
      4. This hasn't turned up before, because we were manually creating
         missing access levels prior to e805a647. Now, we just use nested
         attributes, and missing access levels fail validation.
      4c28d626
    • Timothy Andrew's avatar
      Backport changes from gitlab-org/gitlab-ee!581 to CE. · e805a647
      Timothy Andrew authored
      !581 has a lot of changes that would cause merge conflicts if not
      properly backported to CE. This commit/MR serves as a better
      foundation for gitlab-org/gitlab-ee!581.
      
      = Changes =
      
      1. Move from `has_one {merge,push}_access_level` to `has_many`, with the
         `length` of the association limited to `1`. This is _effectively_ a
         `has_one` association, but should cause less conflicts with EE, which
         is set to `has_many`. This has a number of related changes in the
         views, specs, and factories.
      
      2. Make `gon` variable loading more consistent (with EE!581) in the
         `ProtectedBranchesController`. Also use `::` to prefix the
         `ProtectedBranches` services, because this is required in EE.
      
      3. Extract a `ProtectedBranchAccess` concern from the two access level
         models. This concern only has a single `humanize` method here, but
         will have more methods in EE.
      
      4. Add `form_errors` to the protected branches creation form. This is
         not strictly required for EE compatibility, but was an oversight
         nonetheless.
      e805a647
  2. 15 Aug, 2016 30 commits