• 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