diff --git a/app/models/concerns/protected_ref_access.rb b/app/models/concerns/protected_ref_access.rb
index e3a7f2d54981f93dfca9c37fb502917afb81dea5..71b0c3468b923d3b310bfb4f7d0e991589cabb0c 100644
--- a/app/models/concerns/protected_ref_access.rb
+++ b/app/models/concerns/protected_ref_access.rb
@@ -2,19 +2,20 @@ module ProtectedRefAccess
   extend ActiveSupport::Concern
 
   ALLOWED_ACCESS_LEVELS = [
-    Gitlab::Access::MASTER,
+    Gitlab::Access::MAINTAINER,
     Gitlab::Access::DEVELOPER,
     Gitlab::Access::NO_ACCESS
   ].freeze
 
   HUMAN_ACCESS_LEVELS = {
-    Gitlab::Access::MASTER => "Maintainers".freeze,
+    Gitlab::Access::MAINTAINER => "Maintainers".freeze,
     Gitlab::Access::DEVELOPER => "Developers + Maintainers".freeze,
     Gitlab::Access::NO_ACCESS => "No one".freeze
   }.freeze
 
   included do
-    scope :master, -> { where(access_level: Gitlab::Access::MASTER) }
+    scope :master, -> { maintainer } # @deprecated
+    scope :maintainer, -> { where(access_level: Gitlab::Access::MAINTAINER) }
     scope :developer, -> { where(access_level: Gitlab::Access::DEVELOPER) }
 
     validates :access_level, presence: true, if: :role?, inclusion: {
diff --git a/app/models/concerns/select_for_project_authorization.rb b/app/models/concerns/select_for_project_authorization.rb
index 58194b0ea1371e09a7e0cbb23468f748bd3e7650..7af0fdbd618b58ddd3829278174dfb34830389f7 100644
--- a/app/models/concerns/select_for_project_authorization.rb
+++ b/app/models/concerns/select_for_project_authorization.rb
@@ -6,8 +6,11 @@ def select_for_project_authorization
       select("projects.id AS project_id, members.access_level")
     end
 
-    def select_as_master_for_project_authorization
-      select(["projects.id AS project_id", "#{Gitlab::Access::MASTER} AS access_level"])
+    def select_as_maintainer_for_project_authorization
+      select(["projects.id AS project_id", "#{Gitlab::Access::MAINTAINER} AS access_level"])
     end
+
+    # @deprecated
+    alias_method :select_as_master_for_project_authorization, :select_as_maintainer_for_project_authorization
   end
 end
diff --git a/app/models/group.rb b/app/models/group.rb
index b0392774379b0eb40d26ffb4a705202b638887da..28677320e28b1300b39d3ea2b873077dd0b60f33 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -186,10 +186,13 @@ def add_developer(user, current_user = nil)
     add_user(user, :developer, current_user: current_user)
   end
 
-  def add_master(user, current_user = nil)
-    add_user(user, :master, current_user: current_user)
+  def add_maintainer(user, current_user = nil)
+    add_user(user, :maintainer, current_user: current_user)
   end
 
+  # @deprecated
+  alias_method :add_master, :add_maintainer
+
   def add_owner(user, current_user = nil)
     add_user(user, :owner, current_user: current_user)
   end
@@ -206,12 +209,15 @@ def has_owner?(user)
     members_with_parents.owners.where(user_id: user).any?
   end
 
-  def has_master?(user)
+  def has_maintainer?(user)
     return false unless user
 
-    members_with_parents.masters.where(user_id: user).any?
+    members_with_parents.maintainers.where(user_id: user).any?
   end
 
+  # @deprecated
+  alias_method :has_master?, :has_maintainer?
+
   # Check if user is a last owner of the group.
   # Parent owners are ignored for nested groups.
   def last_owner?(user)
diff --git a/app/models/member.rb b/app/models/member.rb
index 68572f2e33a0245f2427b312b6a452d5fd4f4ed4..00a13a279a9e6db30a5a8fb0251314851f24e980 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -69,9 +69,11 @@ class Member < ActiveRecord::Base
   scope :guests, -> { active.where(access_level: GUEST) }
   scope :reporters, -> { active.where(access_level: REPORTER) }
   scope :developers, -> { active.where(access_level: DEVELOPER) }
-  scope :masters,  -> { active.where(access_level: MASTER) }
+  scope :maintainers, -> { active.where(access_level: MAINTAINER) }
+  scope :masters, -> { maintainers } # @deprecated
   scope :owners,  -> { active.where(access_level: OWNER) }
-  scope :owners_and_masters,  -> { active.where(access_level: [OWNER, MASTER]) }
+  scope :owners_and_maintainers,  -> { active.where(access_level: [OWNER, MAINTAINER]) }
+  scope :owners_and_masters,  -> { owners_and_maintainers } # @deprecated
 
   scope :order_name_asc, -> { left_join_users.reorder(Gitlab::Database.nulls_last_order('users.name', 'ASC')) }
   scope :order_name_desc, -> { left_join_users.reorder(Gitlab::Database.nulls_last_order('users.name', 'DESC')) }
diff --git a/app/models/members/project_member.rb b/app/models/members/project_member.rb
index 024106056b43497420a31b0939b7a720307e2749..4f27d0aeaf81d6850aba098d1ff87f3572948ad5 100644
--- a/app/models/members/project_member.rb
+++ b/app/models/members/project_member.rb
@@ -17,19 +17,19 @@ class << self
     # Add users to projects with passed access option
     #
     # access can be an integer representing a access code
-    # or symbol like :master representing role
+    # or symbol like :maintainer representing role
     #
     # Ex.
     #   add_users_to_projects(
     #     project_ids,
     #     user_ids,
-    #     ProjectMember::MASTER
+    #     ProjectMember::MAINTAINER
     #   )
     #
     #   add_users_to_projects(
     #     project_ids,
     #     user_ids,
-    #     :master
+    #     :maintainer
     #   )
     #
     def add_users_to_projects(project_ids, users, access_level, current_user: nil, expires_at: nil)
diff --git a/app/models/project.rb b/app/models/project.rb
index 770262f61939d7cb0f7c02d704f783fc4a78ae7d..1894de6ceed461b8310f409bc8b02ae6ff3b3900 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -269,7 +269,8 @@ class Project < ActiveRecord::Base
   delegate :name, to: :owner, allow_nil: true, prefix: true
   delegate :members, to: :team, prefix: true
   delegate :add_user, :add_users, to: :team
-  delegate :add_guest, :add_reporter, :add_developer, :add_master, :add_role, to: :team
+  delegate :add_guest, :add_reporter, :add_developer, :add_maintainer, :add_role, to: :team
+  delegate :add_master, to: :team # @deprecated
   delegate :group_runners_enabled, :group_runners_enabled=, :group_runners_enabled?, to: :ci_cd_settings
 
   # Validations
@@ -1647,10 +1648,10 @@ def after_create_default_branch
       params = {
         name: default_branch,
         push_access_levels_attributes: [{
-          access_level: Gitlab::CurrentSettings.default_branch_protection == Gitlab::Access::PROTECTION_DEV_CAN_PUSH ? Gitlab::Access::DEVELOPER : Gitlab::Access::MASTER
+          access_level: Gitlab::CurrentSettings.default_branch_protection == Gitlab::Access::PROTECTION_DEV_CAN_PUSH ? Gitlab::Access::DEVELOPER : Gitlab::Access::MAINTAINER
         }],
         merge_access_levels_attributes: [{
-          access_level: Gitlab::CurrentSettings.default_branch_protection == Gitlab::Access::PROTECTION_DEV_CAN_MERGE ? Gitlab::Access::DEVELOPER : Gitlab::Access::MASTER
+          access_level: Gitlab::CurrentSettings.default_branch_protection == Gitlab::Access::PROTECTION_DEV_CAN_MERGE ? Gitlab::Access::DEVELOPER : Gitlab::Access::MAINTAINER
         }]
       }
 
diff --git a/app/models/project_group_link.rb b/app/models/project_group_link.rb
index ac1e9ab2b0be6f1e347dbfbbfbbfca54be185fb6..cf8fc41e870a90313f7019de0f901d7dfa64bc1d 100644
--- a/app/models/project_group_link.rb
+++ b/app/models/project_group_link.rb
@@ -4,7 +4,8 @@ class ProjectGroupLink < ActiveRecord::Base
   GUEST     = 10
   REPORTER  = 20
   DEVELOPER = 30
-  MASTER    = 40
+  MAINTAINER = 40
+  MASTER = MAINTAINER # @deprecated
 
   belongs_to :project
   belongs_to :group
diff --git a/app/models/project_team.rb b/app/models/project_team.rb
index 9a38806baabfe7865d9fb67875b65216405f90be..c7d0f49d8379a3666a9d5c21dbcf94f970932824 100644
--- a/app/models/project_team.rb
+++ b/app/models/project_team.rb
@@ -19,10 +19,13 @@ def add_developer(user, current_user: nil)
     add_user(user, :developer, current_user: current_user)
   end
 
-  def add_master(user, current_user: nil)
-    add_user(user, :master, current_user: current_user)
+  def add_maintainer(user, current_user: nil)
+    add_user(user, :maintainer, current_user: current_user)
   end
 
+  # @deprecated
+  alias_method :add_master, :add_maintainer
+
   def add_role(user, role, current_user: nil)
     public_send(:"add_#{role}", user, current_user: current_user) # rubocop:disable GitlabSecurity/PublicSend
   end
@@ -81,10 +84,13 @@ def developers
     @developers ||= fetch_members(Gitlab::Access::DEVELOPER)
   end
 
-  def masters
-    @masters ||= fetch_members(Gitlab::Access::MASTER)
+  def maintainers
+    @maintainers ||= fetch_members(Gitlab::Access::MAINTAINER)
   end
 
+  # @deprecated
+  alias_method :masters, :maintainers
+
   def owners
     @owners ||=
       if group
@@ -136,10 +142,13 @@ def developer?(user)
     max_member_access(user.id) == Gitlab::Access::DEVELOPER
   end
 
-  def master?(user)
-    max_member_access(user.id) == Gitlab::Access::MASTER
+  def maintainer?(user)
+    max_member_access(user.id) == Gitlab::Access::MAINTAINER
   end
 
+  # @deprecated
+  alias_method :master?, :maintainer?
+
   # Checks if `user` is authorized for this project, with at least the
   # `min_access_level` (if given).
   def member?(user, min_access_level = Gitlab::Access::GUEST)
diff --git a/app/models/user.rb b/app/models/user.rb
index 1c5d39db118c8e9b450b0335a5ee5669248dc69c..4987d01aac6ba27adf7b54bcd7f86386b91c76f4 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -99,7 +99,8 @@ def update_tracked_fields!(request)
   has_many :group_members, -> { where(requested_at: nil) }, source: 'GroupMember'
   has_many :groups, through: :group_members
   has_many :owned_groups, -> { where(members: { access_level: Gitlab::Access::OWNER }) }, through: :group_members, source: :group
-  has_many :masters_groups, -> { where(members: { access_level: Gitlab::Access::MASTER }) }, through: :group_members, source: :group
+  has_many :maintainers_groups, -> { where(members: { access_level: Gitlab::Access::MAINTAINER }) }, through: :group_members, source: :group
+  alias_attribute :masters_groups, :maintainers_groups
 
   # Projects
   has_many :groups_projects,          through: :groups, source: :projects
@@ -728,7 +729,7 @@ def recent_push(project = nil)
   end
 
   def several_namespaces?
-    owned_groups.any? || masters_groups.any?
+    owned_groups.any? || maintainers_groups.any?
   end
 
   def namespace_id
@@ -974,15 +975,15 @@ def manageable_namespaces
   end
 
   def manageable_groups
-    union_sql = Gitlab::SQL::Union.new([owned_groups.select(:id), masters_groups.select(:id)]).to_sql
+    union_sql = Gitlab::SQL::Union.new([owned_groups.select(:id), maintainers_groups.select(:id)]).to_sql
 
     # Update this line to not use raw SQL when migrated to Rails 5.2.
     # Either ActiveRecord or Arel constructions are fine.
     # This was replaced with the raw SQL construction because of bugs in the arel gem.
     # Bugs were fixed in arel 9.0.0 (Rails 5.2).
-    owned_and_master_groups = Group.where("namespaces.id IN (#{union_sql})") # rubocop:disable GitlabSecurity/SqlInjection
+    owned_and_maintainer_groups = Group.where("namespaces.id IN (#{union_sql})") # rubocop:disable GitlabSecurity/SqlInjection
 
-    Gitlab::GroupHierarchy.new(owned_and_master_groups).base_and_descendants
+    Gitlab::GroupHierarchy.new(owned_and_maintainer_groups).base_and_descendants
   end
 
   def namespaces
@@ -1023,11 +1024,11 @@ def can_be_removed?
   def ci_owned_runners
     @ci_owned_runners ||= begin
       project_runner_ids = Ci::RunnerProject
-        .where(project: authorized_projects(Gitlab::Access::MASTER))
+        .where(project: authorized_projects(Gitlab::Access::MAINTAINER))
         .select(:runner_id)
 
       group_runner_ids = Ci::RunnerNamespace
-        .where(namespace_id: owned_or_masters_groups.select(:id))
+        .where(namespace_id: owned_or_maintainers_groups.select(:id))
         .select(:runner_id)
 
       union = Gitlab::SQL::Union.new([project_runner_ids, group_runner_ids])
@@ -1236,11 +1237,14 @@ def required_terms_not_accepted?
       !terms_accepted?
   end
 
-  def owned_or_masters_groups
-    union = Gitlab::SQL::Union.new([owned_groups, masters_groups])
+  def owned_or_maintainers_groups
+    union = Gitlab::SQL::Union.new([owned_groups, maintainers_groups])
     Group.from("(#{union.to_sql}) namespaces")
   end
 
+  # @deprecated
+  alias_method :owned_or_masters_groups, :owned_or_maintainers_groups
+
   protected
 
   # override, from Devise::Validatable
diff --git a/app/policies/clusters/cluster_policy.rb b/app/policies/clusters/cluster_policy.rb
index 1f7c13072b9495fb0de1fbc57cb039278cad7f8f..b5b24491655f9b9f966c317b1111ec16d019e00f 100644
--- a/app/policies/clusters/cluster_policy.rb
+++ b/app/policies/clusters/cluster_policy.rb
@@ -4,7 +4,7 @@ class ClusterPolicy < BasePolicy
 
     delegate { cluster.project }
 
-    rule { can?(:master_access) }.policy do
+    rule { can?(:maintainer_access) }.policy do
       enable :update_cluster
       enable :admin_cluster
     end
diff --git a/app/policies/deploy_token_policy.rb b/app/policies/deploy_token_policy.rb
index 7aa9106e8b1d58002f2486919e68fbe9d71f3dcf..d1b459cfc90d484e4791764b99232e88a8ea082b 100644
--- a/app/policies/deploy_token_policy.rb
+++ b/app/policies/deploy_token_policy.rb
@@ -1,10 +1,10 @@
 class DeployTokenPolicy < BasePolicy
   with_options scope: :subject, score: 0
-  condition(:master) { @subject.project.team.master?(@user) }
+  condition(:maintainer) { @subject.project.team.maintainer?(@user) }
 
   rule { anonymous }.prevent_all
 
-  rule { master }.policy do
+  rule { maintainer }.policy do
     enable :create_deploy_token
     enable :update_deploy_token
   end
diff --git a/app/policies/group_policy.rb b/app/policies/group_policy.rb
index ded9fe30eff253b34b61538824dc9b3cf1c2d422..dc339b71ec7755991a73a42a34a0b0e1552fa020 100644
--- a/app/policies/group_policy.rb
+++ b/app/policies/group_policy.rb
@@ -11,7 +11,7 @@ class GroupPolicy < BasePolicy
   condition(:guest) { access_level >= GroupMember::GUEST }
   condition(:developer) { access_level >= GroupMember::DEVELOPER }
   condition(:owner) { access_level >= GroupMember::OWNER }
-  condition(:master) { access_level >= GroupMember::MASTER }
+  condition(:maintainer) { access_level >= GroupMember::MAINTAINER }
   condition(:reporter) { access_level >= GroupMember::REPORTER }
 
   condition(:nested_groups_supported, scope: :global) { Group.supports_nested_groups? }
@@ -59,7 +59,7 @@ class GroupPolicy < BasePolicy
     enable :admin_issue
   end
 
-  rule { master }.policy do
+  rule { maintainer }.policy do
     enable :create_projects
     enable :admin_pipeline
     enable :admin_build
diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb
index 199bcf92b210c838d3eee50c5bb8a502871d0817..bc49092633f163175e35c82e2c6a680064c85dd6 100644
--- a/app/policies/project_policy.rb
+++ b/app/policies/project_policy.rb
@@ -46,7 +46,7 @@ class ProjectPolicy < BasePolicy
   condition(:developer) { team_access_level >= Gitlab::Access::DEVELOPER }
 
   desc "User has maintainer access"
-  condition(:master) { team_access_level >= Gitlab::Access::MASTER }
+  condition(:maintainer) { team_access_level >= Gitlab::Access::MAINTAINER }
 
   desc "Project is public"
   condition(:public_project, scope: :subject, score: 0) { project.public? }
@@ -123,14 +123,14 @@ class ProjectPolicy < BasePolicy
   rule { guest }.enable :guest_access
   rule { reporter }.enable :reporter_access
   rule { developer }.enable :developer_access
-  rule { master }.enable :master_access
+  rule { maintainer }.enable :maintainer_access
   rule { owner | admin }.enable :owner_access
 
   rule { can?(:owner_access) }.policy do
     enable :guest_access
     enable :reporter_access
     enable :developer_access
-    enable :master_access
+    enable :maintainer_access
 
     enable :change_namespace
     enable :change_visibility_level
@@ -228,7 +228,7 @@ class ProjectPolicy < BasePolicy
     enable :create_deployment
   end
 
-  rule { can?(:master_access) }.policy do
+  rule { can?(:maintainer_access) }.policy do
     enable :push_to_delete_protected_branch
     enable :update_project_snippet
     enable :update_environment
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index 8c6221af788a500dd248b1392d2d9a033e93256b..d7be9a925b5cf64428da50563a5e6731286672a0 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -274,9 +274,9 @@ def send_new_note_notifications(note)
   def new_access_request(member)
     return true unless member.notifiable?(:subscription)
 
-    recipients = member.source.members.active_without_invites_and_requests.owners_and_masters
-    if fallback_to_group_owners_masters?(recipients, member)
-      recipients = member.source.group.members.active_without_invites_and_requests.owners_and_masters
+    recipients = member.source.members.active_without_invites_and_requests.owners_and_maintainers
+    if fallback_to_group_owners_maintainers?(recipients, member)
+      recipients = member.source.group.members.active_without_invites_and_requests.owners_and_maintainers
     end
 
     recipients.each { |recipient| deliver_access_request_email(recipient, member) }
@@ -519,7 +519,7 @@ def recipients_for_pages_domain(domain)
 
     return [] unless project
 
-    notifiable_users(project.team.masters, :watch, target: project)
+    notifiable_users(project.team.maintainers, :watch, target: project)
   end
 
   def notifiable?(*args)
@@ -534,7 +534,7 @@ def deliver_access_request_email(recipient, member)
     mailer.member_access_requested_email(member.real_source_type, member.id, recipient.user.notification_email).deliver_later
   end
 
-  def fallback_to_group_owners_masters?(recipients, member)
+  def fallback_to_group_owners_maintainers?(recipients, member)
     return false if recipients.present?
 
     member.source.respond_to?(:group) && member.source.group
diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb
index 172497b8e676490a1d8481f847b8549214000b2a..85491089d8ed81665ecc766663eb4e340166e088 100644
--- a/app/services/projects/create_service.rb
+++ b/app/services/projects/create_service.rb
@@ -115,7 +115,7 @@ def setup_authorizations
         @project.group.refresh_members_authorized_projects(blocking: false)
         current_user.refresh_authorized_projects
       else
-        @project.add_master(@project.namespace.owner, current_user: current_user)
+        @project.add_maintainer(@project.namespace.owner, current_user: current_user)
       end
     end
 
diff --git a/app/services/protected_branches/access_level_params.rb b/app/services/protected_branches/access_level_params.rb
index 253ae8b012469cd61da169001076659967a635a7..4658b0e850df2953b8f59523c70867a928fa11f5 100644
--- a/app/services/protected_branches/access_level_params.rb
+++ b/app/services/protected_branches/access_level_params.rb
@@ -14,7 +14,7 @@ def access_levels
     private
 
     def params_with_default(params)
-      params[:"#{type}_access_level"] ||= Gitlab::Access::MASTER if use_default_access_level?(params)
+      params[:"#{type}_access_level"] ||= Gitlab::Access::MAINTAINER if use_default_access_level?(params)
       params
     end
 
diff --git a/app/services/protected_branches/legacy_api_create_service.rb b/app/services/protected_branches/legacy_api_create_service.rb
index e358fd0374e679e078c83f436226f6c3e8ecb96c..bb7656489c560b2971c02ad9190cd428850e50fd 100644
--- a/app/services/protected_branches/legacy_api_create_service.rb
+++ b/app/services/protected_branches/legacy_api_create_service.rb
@@ -9,14 +9,14 @@ def execute
         if params.delete(:developers_can_push)
           Gitlab::Access::DEVELOPER
         else
-          Gitlab::Access::MASTER
+          Gitlab::Access::MAINTAINER
         end
 
       merge_access_level =
         if params.delete(:developers_can_merge)
           Gitlab::Access::DEVELOPER
         else
-          Gitlab::Access::MASTER
+          Gitlab::Access::MAINTAINER
         end
 
       @params.merge!(push_access_levels_attributes: [{ access_level: push_access_level }],
diff --git a/app/services/protected_branches/legacy_api_update_service.rb b/app/services/protected_branches/legacy_api_update_service.rb
index 33176253ca21f933143002e9a0f625c16d1cdcc6..1df38de0e4a2b23b7e3d43215f8b151604f2fac1 100644
--- a/app/services/protected_branches/legacy_api_update_service.rb
+++ b/app/services/protected_branches/legacy_api_update_service.rb
@@ -17,14 +17,14 @@ def execute(protected_branch)
         when true
           params[:push_access_levels_attributes] = [{ access_level: Gitlab::Access::DEVELOPER }]
         when false
-          params[:push_access_levels_attributes] = [{ access_level: Gitlab::Access::MASTER }]
+          params[:push_access_levels_attributes] = [{ access_level: Gitlab::Access::MAINTAINER }]
         end
 
         case @developers_can_merge
         when true
           params[:merge_access_levels_attributes] = [{ access_level: Gitlab::Access::DEVELOPER }]
         when false
-          params[:merge_access_levels_attributes] = [{ access_level: Gitlab::Access::MASTER }]
+          params[:merge_access_levels_attributes] = [{ access_level: Gitlab::Access::MAINTAINER }]
         end
 
         service = ProtectedBranches::UpdateService.new(@project, @current_user, @params)
diff --git a/db/fixtures/development/12_snippets.rb b/db/fixtures/development/12_snippets.rb
index 4f3bdba043d008d96b4e9163c3e3ce7dacd0466a..a9f4069a0f8a8ee1fa2d6f6f2b4795b65eb75b62 100644
--- a/db/fixtures/development/12_snippets.rb
+++ b/db/fixtures/development/12_snippets.rb
@@ -17,7 +17,7 @@ class Member < ActiveRecord::Base
   scope :guests, -> { where(access_level: GUEST) }
   scope :reporters, -> { where(access_level: REPORTER) }
   scope :developers, -> { where(access_level: DEVELOPER) }
-  scope :masters,  -> { where(access_level: MASTER) }
+  scope :maintainers,  -> { where(access_level: MAINTAINER) }
   scope :owners,  -> { where(access_level: OWNER) }
 
   delegate :name, :username, :email, to: :user, prefix: true
diff --git a/db/migrate/20160705054938_add_protected_branches_push_access.rb b/db/migrate/20160705054938_add_protected_branches_push_access.rb
index 97aaaf9d2c8c0f23022ba755a1e02298dfb84539..de3aefcb1fb391170f54e5b354ce604a71c7cbfa 100644
--- a/db/migrate/20160705054938_add_protected_branches_push_access.rb
+++ b/db/migrate/20160705054938_add_protected_branches_push_access.rb
@@ -9,7 +9,7 @@ def change
     create_table :protected_branch_push_access_levels do |t|
       t.references :protected_branch, index: { name: "index_protected_branch_push_access" }, foreign_key: true, null: false
 
-      # Gitlab::Access::MASTER == 40
+      # Gitlab::Access::MAINTAINER == 40
       t.integer :access_level, default: 40, null: false
 
       t.timestamps null: false
diff --git a/db/migrate/20160705054952_add_protected_branches_merge_access.rb b/db/migrate/20160705054952_add_protected_branches_merge_access.rb
index 51a52a5ac17a7b55dc9a7e27457cd92bf1e6d2c5..9b18a2061b3297f0c55e4d802ad3281934d3336d 100644
--- a/db/migrate/20160705054952_add_protected_branches_merge_access.rb
+++ b/db/migrate/20160705054952_add_protected_branches_merge_access.rb
@@ -9,7 +9,7 @@ def change
     create_table :protected_branch_merge_access_levels do |t|
       t.references :protected_branch, index: { name: "index_protected_branch_merge_access" }, foreign_key: true, null: false
 
-      # Gitlab::Access::MASTER == 40
+      # Gitlab::Access::MAINTAINER == 40
       t.integer :access_level, default: 40, null: false
 
       t.timestamps null: false
diff --git a/doc/raketasks/user_management.md b/doc/raketasks/user_management.md
index 5554a0c8b78f550300748a4d36e1cdd23bcf278d..e1b1912ed477f09a9df980d7c197b07ff35524b9 100644
--- a/doc/raketasks/user_management.md
+++ b/doc/raketasks/user_management.md
@@ -14,7 +14,7 @@ bundle exec rake gitlab:import:user_to_projects[username@domain.tld] RAILS_ENV=p
 
 Notes:
 
-- admin users are added as masters
+- admin users are added as maintainers
 
 ```bash
 # omnibus-gitlab
diff --git a/lib/gitlab/access.rb b/lib/gitlab/access.rb
index 87e377de4d39e8fbfd09e94912568a5a0a6214f2..b170145f013ba97c22c57d5b5144e1bef17b28d1 100644
--- a/lib/gitlab/access.rb
+++ b/lib/gitlab/access.rb
@@ -7,12 +7,14 @@ module Gitlab
   module Access
     AccessDeniedError = Class.new(StandardError)
 
-    NO_ACCESS = 0
-    GUEST     = 10
-    REPORTER  = 20
-    DEVELOPER = 30
-    MASTER    = 40
-    OWNER     = 50
+    NO_ACCESS  = 0
+    GUEST      = 10
+    REPORTER   = 20
+    DEVELOPER  = 30
+    MAINTAINER = 40
+    # @deprecated
+    MASTER     = MAINTAINER
+    OWNER      = 50
 
     # Branch protection settings
     PROTECTION_NONE          = 0
@@ -32,7 +34,7 @@ def options
           "Guest"      => GUEST,
           "Reporter"   => REPORTER,
           "Developer"  => DEVELOPER,
-          "Maintainer" => MASTER
+          "Maintainer" => MAINTAINER
         }
       end
 
@@ -44,10 +46,10 @@ def options_with_owner
 
       def sym_options
         {
-          guest:     GUEST,
-          reporter:  REPORTER,
-          developer: DEVELOPER,
-          master:    MASTER
+          guest:      GUEST,
+          reporter:   REPORTER,
+          developer:  DEVELOPER,
+          maintainer: MAINTAINER
         }
       end
 
diff --git a/lib/gitlab/import_export/members_mapper.rb b/lib/gitlab/import_export/members_mapper.rb
index 8b8e48aac765db0c43cf7e7eb7b21016e6ddeb6b..ac827cbe1ca892c97428c5860274cf0328827350 100644
--- a/lib/gitlab/import_export/members_mapper.rb
+++ b/lib/gitlab/import_export/members_mapper.rb
@@ -47,7 +47,7 @@ def missing_keys_tracking_hash
       def ensure_default_member!
         @project.project_members.destroy_all
 
-        ProjectMember.create!(user: @user, access_level: ProjectMember::MASTER, source_id: @project.id, importing: true)
+        ProjectMember.create!(user: @user, access_level: ProjectMember::MAINTAINER, source_id: @project.id, importing: true)
       end
 
       def add_team_member(member, existing_user = nil)
diff --git a/lib/gitlab/project_authorizations/with_nested_groups.rb b/lib/gitlab/project_authorizations/with_nested_groups.rb
index 15b8beacf605574b581e434301ffa35c64fa2f02..e3da1634fa5743c3ea923d75d73135b63cf089f3 100644
--- a/lib/gitlab/project_authorizations/with_nested_groups.rb
+++ b/lib/gitlab/project_authorizations/with_nested_groups.rb
@@ -24,7 +24,7 @@ def calculate
           user.projects.select_for_project_authorization,
 
           # The personal projects of the user.
-          user.personal_projects.select_as_master_for_project_authorization,
+          user.personal_projects.select_as_maintainer_for_project_authorization,
 
           # Projects that belong directly to any of the groups the user has
           # access to.
diff --git a/lib/gitlab/project_authorizations/without_nested_groups.rb b/lib/gitlab/project_authorizations/without_nested_groups.rb
index ad87540e6c2a3d53c0dc82ce12ffc6a94774e819..7d0c00c7f368d36c978d3cbb46a9bda94c3788fb 100644
--- a/lib/gitlab/project_authorizations/without_nested_groups.rb
+++ b/lib/gitlab/project_authorizations/without_nested_groups.rb
@@ -15,7 +15,7 @@ def calculate
           user.projects.select_for_project_authorization,
 
           # Personal projects
-          user.personal_projects.select_as_master_for_project_authorization,
+          user.personal_projects.select_as_maintainer_for_project_authorization,
 
           # Projects of groups the user is a member of
           user.groups_projects.select_for_project_authorization,
diff --git a/lib/tasks/gitlab/bulk_add_permission.rake b/lib/tasks/gitlab/bulk_add_permission.rake
index 83dd870fa31334871b22ae6daa3b253c259c5f5d..26cbf0740b641e118f6f975757748713f17562d0 100644
--- a/lib/tasks/gitlab/bulk_add_permission.rake
+++ b/lib/tasks/gitlab/bulk_add_permission.rake
@@ -1,6 +1,6 @@
 namespace :gitlab do
   namespace :import do
-    desc "GitLab | Add all users to all projects (admin users are added as masters)"
+    desc "GitLab | Add all users to all projects (admin users are added as maintainers)"
     task all_users_to_all_projects: :environment  do |t, args|
       user_ids = User.where(admin: false).pluck(:id)
       admin_ids = User.where(admin: true).pluck(:id)
@@ -10,7 +10,7 @@ namespace :gitlab do
       ProjectMember.add_users_to_projects(project_ids, user_ids, ProjectMember::DEVELOPER)
 
       puts "Importing #{admin_ids.size} admins into #{project_ids.size} projects"
-      ProjectMember.add_users_to_projects(project_ids, admin_ids, ProjectMember::MASTER)
+      ProjectMember.add_users_to_projects(project_ids, admin_ids, ProjectMember::MAINTAINER)
     end
 
     desc "GitLab | Add a specific user to all projects (as a developer)"
diff --git a/qa/qa/page/project/settings/protected_branches.rb b/qa/qa/page/project/settings/protected_branches.rb
index 0bd031e96b5a7ad29ca1f01eb1389c4ae5870b1d..e572ae121328df95915e30256491389e8e73755d 100644
--- a/qa/qa/page/project/settings/protected_branches.rb
+++ b/qa/qa/page/project/settings/protected_branches.rb
@@ -44,6 +44,9 @@ def allow_devs_and_maintainers_to_push
             click_allow(:push, 'Developers + Maintainers')
           end
 
+          # @deprecated
+          alias_method :allow_devs_and_masters_to_push, :allow_devs_and_maintainers_to_push
+
           def allow_no_one_to_merge
             click_allow(:merge, 'No one')
           end
@@ -52,6 +55,9 @@ def allow_devs_and_maintainers_to_merge
             click_allow(:merge, 'Developers + Maintainers')
           end
 
+          # @deprecated
+          alias_method :allow_devs_and_masters_to_merge, :allow_devs_and_maintainers_to_merge
+
           def protect_branch
             click_on 'Protect'
           end
diff --git a/spec/controllers/autocomplete_controller_spec.rb b/spec/controllers/autocomplete_controller_spec.rb
index fb6d82d7de397cdd52a785ba3637f89c1d9752b5..2c59d1929a140a59f14ee6a2ccf552219db80884 100644
--- a/spec/controllers/autocomplete_controller_spec.rb
+++ b/spec/controllers/autocomplete_controller_spec.rb
@@ -228,12 +228,12 @@
 
     before do
       sign_in(user)
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'authorized projects' do
       before do
-        authorized_project.add_master(user)
+        authorized_project.add_maintainer(user)
       end
 
       describe 'GET #projects with project ID' do
@@ -253,8 +253,8 @@
 
     context 'authorized projects and search' do
       before do
-        authorized_project.add_master(user)
-        authorized_search_project.add_master(user)
+        authorized_project.add_maintainer(user)
+        authorized_search_project.add_maintainer(user)
       end
 
       describe 'GET #projects with project ID and search' do
@@ -277,9 +277,9 @@
         authorized_project2 = create(:project)
         authorized_project3 = create(:project)
 
-        authorized_project.add_master(user)
-        authorized_project2.add_master(user)
-        authorized_project3.add_master(user)
+        authorized_project.add_maintainer(user)
+        authorized_project2.add_maintainer(user)
+        authorized_project3.add_maintainer(user)
 
         stub_const 'MoveToProjectFinder::PAGE_SIZE', 2
       end
@@ -301,9 +301,9 @@
         authorized_project2 = create(:project)
         authorized_project3 = create(:project)
 
-        authorized_project.add_master(user)
-        authorized_project2.add_master(user)
-        authorized_project3.add_master(user)
+        authorized_project.add_maintainer(user)
+        authorized_project2.add_maintainer(user)
+        authorized_project3.add_maintainer(user)
       end
 
       describe 'GET #projects with project ID and offset_id' do
diff --git a/spec/controllers/boards/issues_controller_spec.rb b/spec/controllers/boards/issues_controller_spec.rb
index e47ff8661a23811280d4533c40294b3f097e5ae4..ce7762691c9d3a4dd430182fe638d25bb9903530 100644
--- a/spec/controllers/boards/issues_controller_spec.rb
+++ b/spec/controllers/boards/issues_controller_spec.rb
@@ -13,7 +13,7 @@
   let!(:list2) { create(:list, board: board, label: development, position: 1) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_guest(guest)
   end
 
diff --git a/spec/controllers/boards/lists_controller_spec.rb b/spec/controllers/boards/lists_controller_spec.rb
index 57ccbf1d6b5b32986be4a4deee0185f6d0aaec1f..80631d2efb01470d5ea478f2e2c0015c6578cdb4 100644
--- a/spec/controllers/boards/lists_controller_spec.rb
+++ b/spec/controllers/boards/lists_controller_spec.rb
@@ -7,7 +7,7 @@
   let(:guest)   { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_guest(guest)
   end
 
diff --git a/spec/controllers/dashboard/groups_controller_spec.rb b/spec/controllers/dashboard/groups_controller_spec.rb
index 7f2eaf95165a66ec917f7ef9c4e6dc719d4a3461..9068c1a792e5192b736cf5a1124637c234ab5c9d 100644
--- a/spec/controllers/dashboard/groups_controller_spec.rb
+++ b/spec/controllers/dashboard/groups_controller_spec.rb
@@ -28,8 +28,8 @@
     let!(:other_group) { create(:group, name: 'other') }
 
     before do
-      top_level_result.add_master(user)
-      top_level_a.add_master(user)
+      top_level_result.add_maintainer(user)
+      top_level_a.add_maintainer(user)
     end
 
     it 'renders only groups the user is a member of when searching hierarchy correctly' do
diff --git a/spec/controllers/dashboard/milestones_controller_spec.rb b/spec/controllers/dashboard/milestones_controller_spec.rb
index 60547db82b67980c9df73ecf02fee5e2cb4f6972..ba2669a5ea79a5b90647922c2f30043e3bdfe09b 100644
--- a/spec/controllers/dashboard/milestones_controller_spec.rb
+++ b/spec/controllers/dashboard/milestones_controller_spec.rb
@@ -17,7 +17,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   it_behaves_like 'milestone tabs'
diff --git a/spec/controllers/dashboard_controller_spec.rb b/spec/controllers/dashboard_controller_spec.rb
index 3458d679107982882f7ba3dcd95aafe1fc1db171..187542ba30ceb82c4a3cd2efc6d49bb431c6f3dd 100644
--- a/spec/controllers/dashboard_controller_spec.rb
+++ b/spec/controllers/dashboard_controller_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/groups/boards_controller_spec.rb b/spec/controllers/groups/boards_controller_spec.rb
index 0f5bde620069845168ae345a362bf64d71310f44..bf41aa0706f12266f25de4ad3c8aeba7a87f7cf5 100644
--- a/spec/controllers/groups/boards_controller_spec.rb
+++ b/spec/controllers/groups/boards_controller_spec.rb
@@ -5,7 +5,7 @@
   let(:user)    { create(:user) }
 
   before do
-    group.add_master(user)
+    group.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/groups/milestones_controller_spec.rb b/spec/controllers/groups/milestones_controller_spec.rb
index 733386500cafb21c7b261131a2592fc7e863d6eb..f70685460935297c679e17b6975979178289b232 100644
--- a/spec/controllers/groups/milestones_controller_spec.rb
+++ b/spec/controllers/groups/milestones_controller_spec.rb
@@ -28,7 +28,7 @@
   before do
     sign_in(user)
     group.add_owner(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe '#index' do
diff --git a/spec/controllers/groups/runners_controller_spec.rb b/spec/controllers/groups/runners_controller_spec.rb
index 5770d15557c8b31b2b27615f8469b088188129a1..598fb84552f74cf70ab8ac306abe80c1f12e0c1e 100644
--- a/spec/controllers/groups/runners_controller_spec.rb
+++ b/spec/controllers/groups/runners_controller_spec.rb
@@ -14,7 +14,7 @@
 
   before do
     sign_in(user)
-    group.add_master(user)
+    group.add_maintainer(user)
   end
 
   describe '#update' do
diff --git a/spec/controllers/groups/settings/ci_cd_controller_spec.rb b/spec/controllers/groups/settings/ci_cd_controller_spec.rb
index e9f0924caba1d92b6c81c0a37ad38728a57ad983..ea18122e0c388d150a75806650cd717a66b51887 100644
--- a/spec/controllers/groups/settings/ci_cd_controller_spec.rb
+++ b/spec/controllers/groups/settings/ci_cd_controller_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    group.add_master(user)
+    group.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/groups/variables_controller_spec.rb b/spec/controllers/groups/variables_controller_spec.rb
index 39a36b92bb4879e9dcc5684a0d416a44839f579e..e5ac5634f95c3ed7872dc6183f533f634adee6ef 100644
--- a/spec/controllers/groups/variables_controller_spec.rb
+++ b/spec/controllers/groups/variables_controller_spec.rb
@@ -6,7 +6,7 @@
 
   before do
     sign_in(user)
-    group.add_master(user)
+    group.add_maintainer(user)
   end
 
   describe 'GET #show' do
diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb
index 8688fb33f0dff5ff26b5f2c6661a82137a572931..7a037828035e2094c8ee84c535db501bfe62ae51 100644
--- a/spec/controllers/groups_controller_spec.rb
+++ b/spec/controllers/groups_controller_spec.rb
@@ -7,7 +7,7 @@
   let(:project) { create(:project, namespace: group) }
   let!(:group_member) { create(:group_member, group: group, user: user) }
   let!(:owner) { group.add_owner(create(:user)).user }
-  let!(:master) { group.add_master(create(:user)).user }
+  let!(:maintainer) { group.add_maintainer(create(:user)).user }
   let!(:developer) { group.add_developer(create(:user)).user }
   let!(:guest) { group.add_guest(create(:user)).user }
 
@@ -62,7 +62,7 @@
       [true, false].each do |can_create_group_status|
         context "and can_create_group is #{can_create_group_status}" do
           before do
-            User.where(id: [admin, owner, master, developer, guest]).update_all(can_create_group: can_create_group_status)
+            User.where(id: [admin, owner, maintainer, developer, guest]).update_all(can_create_group: can_create_group_status)
           end
 
           [:admin, :owner].each do |member_type|
@@ -73,7 +73,7 @@
             end
           end
 
-          [:guest, :developer, :master].each do |member_type|
+          [:guest, :developer, :maintainer].each do |member_type|
             context "and logged in as #{member_type.capitalize}" do
               it_behaves_like 'member without ability to create subgroups' do
                 let(:member) { send(member_type) }
diff --git a/spec/controllers/projects/avatars_controller_spec.rb b/spec/controllers/projects/avatars_controller_spec.rb
index acfa2730d94dfae3123dd4419f197b9760f6778f..17c9a61f339c4191ff65832092dfcca1ac0cf7ad 100644
--- a/spec/controllers/projects/avatars_controller_spec.rb
+++ b/spec/controllers/projects/avatars_controller_spec.rb
@@ -6,7 +6,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
     controller.instance_variable_set(:@project, project)
   end
 
diff --git a/spec/controllers/projects/badges_controller_spec.rb b/spec/controllers/projects/badges_controller_spec.rb
index e7cddf8cfbf6c5a5a47276129f6c112b224e5f96..dfe34171b558c7fbeeb3f045aeeeb9c04f8d7809 100644
--- a/spec/controllers/projects/badges_controller_spec.rb
+++ b/spec/controllers/projects/badges_controller_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/projects/blame_controller_spec.rb b/spec/controllers/projects/blame_controller_spec.rb
index 88d4f4e9cd00df1d5c203b6ebfb1a89faf6d52bc..fe4c48637174947b6f0ff46d6aa2c217f060fe62 100644
--- a/spec/controllers/projects/blame_controller_spec.rb
+++ b/spec/controllers/projects/blame_controller_spec.rb
@@ -7,7 +7,7 @@
   before do
     sign_in(user)
 
-    project.add_master(user)
+    project.add_maintainer(user)
     controller.instance_variable_set(:@project, project)
   end
 
diff --git a/spec/controllers/projects/blob_controller_spec.rb b/spec/controllers/projects/blob_controller_spec.rb
index 4dcb7dc6c8788e1045399fe34bc66c53ffe349ce..32cd7c6e70aa089c261fad2bee5753f8de35ad16 100644
--- a/spec/controllers/projects/blob_controller_spec.rb
+++ b/spec/controllers/projects/blob_controller_spec.rb
@@ -108,7 +108,7 @@ def do_get(opts = {})
     end
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
 
       sign_in(user)
     end
@@ -230,12 +230,12 @@ def do_get(opts = {})
       end
     end
 
-    context 'as master' do
-      let(:master) { create(:user) }
+    context 'as maintainer' do
+      let(:maintainer) { create(:user) }
 
       before do
-        project.add_master(master)
-        sign_in(master)
+        project.add_maintainer(maintainer)
+        sign_in(maintainer)
         get :edit, default_params
       end
 
@@ -263,7 +263,7 @@ def blob_after_edit_path
     end
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
 
       sign_in(user)
     end
diff --git a/spec/controllers/projects/boards_controller_spec.rb b/spec/controllers/projects/boards_controller_spec.rb
index 509f19ed030fa1add054d1a2986dc6cf77d6fe04..096efc1c7b2c1c19810d6e68f7f29763b242ee83 100644
--- a/spec/controllers/projects/boards_controller_spec.rb
+++ b/spec/controllers/projects/boards_controller_spec.rb
@@ -5,7 +5,7 @@
   let(:user)    { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/projects/branches_controller_spec.rb b/spec/controllers/projects/branches_controller_spec.rb
index 4860ea5dcce83e9d65c52a656f59a7ed8a56eb70..31471cde42084fcc2026086c2b655a351758c5b8 100644
--- a/spec/controllers/projects/branches_controller_spec.rb
+++ b/spec/controllers/projects/branches_controller_spec.rb
@@ -6,7 +6,7 @@
   let(:developer) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user)
 
     allow(project).to receive(:branches).and_return(['master', 'foo/bar/baz'])
diff --git a/spec/controllers/projects/clusters/applications_controller_spec.rb b/spec/controllers/projects/clusters/applications_controller_spec.rb
index 99fdff5f8463f29383f3fb80399d1df62dbb6175..9e17e392d3dd82dd05a54cf0f73d301d2fb3b390 100644
--- a/spec/controllers/projects/clusters/applications_controller_spec.rb
+++ b/spec/controllers/projects/clusters/applications_controller_spec.rb
@@ -17,7 +17,7 @@ def current_application
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -70,7 +70,7 @@ def current_application
 
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_denied_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
diff --git a/spec/controllers/projects/clusters_controller_spec.rb b/spec/controllers/projects/clusters_controller_spec.rb
index e47ccdc9aea19fc35a098b7aeeeab4a38e5465b2..42917d0d505d61d345adc3d55f92e576086658ff 100644
--- a/spec/controllers/projects/clusters_controller_spec.rb
+++ b/spec/controllers/projects/clusters_controller_spec.rb
@@ -11,7 +11,7 @@
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -61,7 +61,7 @@
 
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_denied_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -79,7 +79,7 @@ def go
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -142,7 +142,7 @@ def go
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -156,7 +156,7 @@ def go
     describe 'security' do
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_denied_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -185,7 +185,7 @@ def go
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -236,7 +236,7 @@ def go
 
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_denied_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -267,7 +267,7 @@ def go
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -286,7 +286,7 @@ def go
     describe 'security' do
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_denied_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -306,7 +306,7 @@ def go
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -327,7 +327,7 @@ def go
     describe 'security' do
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_denied_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -350,7 +350,7 @@ def go
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -365,7 +365,7 @@ def go
     describe 'security' do
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_denied_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -386,7 +386,7 @@ def go
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -437,7 +437,7 @@ def go
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -525,7 +525,7 @@ def go
 
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_denied_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -552,7 +552,7 @@ def go_json
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -605,7 +605,7 @@ def go_json
 
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_denied_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
diff --git a/spec/controllers/projects/commit_controller_spec.rb b/spec/controllers/projects/commit_controller_spec.rb
index 003fec8ac681ae100886a3b88133582cbdbd26fd..916a4be2567f84827b058a82f1d85ade704e4d75 100644
--- a/spec/controllers/projects/commit_controller_spec.rb
+++ b/spec/controllers/projects/commit_controller_spec.rb
@@ -9,7 +9,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET show' do
diff --git a/spec/controllers/projects/commits_controller_spec.rb b/spec/controllers/projects/commits_controller_spec.rb
index 55ed276f96bdcb38aa7714bc1d8cb78824e17299..d44048fdf555e3b54acb6321a598707c56340bb6 100644
--- a/spec/controllers/projects/commits_controller_spec.rb
+++ b/spec/controllers/projects/commits_controller_spec.rb
@@ -6,7 +6,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe "GET show" do
diff --git a/spec/controllers/projects/compare_controller_spec.rb b/spec/controllers/projects/compare_controller_spec.rb
index b15cde4314e20e7f969577e39c2f3c399c63cdf5..8695aa826bb744378810620912d18075d77686d9 100644
--- a/spec/controllers/projects/compare_controller_spec.rb
+++ b/spec/controllers/projects/compare_controller_spec.rb
@@ -6,7 +6,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET index' do
diff --git a/spec/controllers/projects/cycle_analytics_controller_spec.rb b/spec/controllers/projects/cycle_analytics_controller_spec.rb
index 5516c95d0449a492d1673befe12fc93c15010d6c..5c79269e8f1a6732bed588de361468806646193d 100644
--- a/spec/controllers/projects/cycle_analytics_controller_spec.rb
+++ b/spec/controllers/projects/cycle_analytics_controller_spec.rb
@@ -6,7 +6,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'cycle analytics not set up flag' do
diff --git a/spec/controllers/projects/deploy_keys_controller_spec.rb b/spec/controllers/projects/deploy_keys_controller_spec.rb
index 97db69427e9b4bd90cb6ca2d529fbb30c0c8e339..d2f133f972a098d1213fd7937b09ae829dce8779 100644
--- a/spec/controllers/projects/deploy_keys_controller_spec.rb
+++ b/spec/controllers/projects/deploy_keys_controller_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/controllers/projects/deployments_controller_spec.rb b/spec/controllers/projects/deployments_controller_spec.rb
index 6c67dfde63ac50544e0ef3d8b606bb8d48e152bb..d1c960e895dbdebe33526987b95c3519f1c3dc65 100644
--- a/spec/controllers/projects/deployments_controller_spec.rb
+++ b/spec/controllers/projects/deployments_controller_spec.rb
@@ -8,7 +8,7 @@
   let(:environment) { create(:environment, name: 'production', project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb
index 63cef579864e57732b324a73414cc5f455ad6f95..b86029a4bafdae2e7af62c17b3780b30c1d13d2e 100644
--- a/spec/controllers/projects/environments_controller_spec.rb
+++ b/spec/controllers/projects/environments_controller_spec.rb
@@ -9,7 +9,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/controllers/projects/find_file_controller_spec.rb b/spec/controllers/projects/find_file_controller_spec.rb
index 505fe82851a23edd374f4a1cb88b9204f04a974b..66fe41108e2e59ace8a1edec04cd89d3bded5743 100644
--- a/spec/controllers/projects/find_file_controller_spec.rb
+++ b/spec/controllers/projects/find_file_controller_spec.rb
@@ -7,7 +7,7 @@
   before do
     sign_in(user)
 
-    project.add_master(user)
+    project.add_maintainer(user)
     controller.instance_variable_set(:@project, project)
   end
 
diff --git a/spec/controllers/projects/graphs_controller_spec.rb b/spec/controllers/projects/graphs_controller_spec.rb
index c3605555fe7895c38effa32c9af76e0079267632..da78592a6f66765a893fc3092e4631b40936f404 100644
--- a/spec/controllers/projects/graphs_controller_spec.rb
+++ b/spec/controllers/projects/graphs_controller_spec.rb
@@ -6,7 +6,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET languages' do
diff --git a/spec/controllers/projects/group_links_controller_spec.rb b/spec/controllers/projects/group_links_controller_spec.rb
index 78c6f7839b474234aa2bfbfb1d18a053d39eca0e..879aff26debc55c99eeb43a1087356a55ec8307b 100644
--- a/spec/controllers/projects/group_links_controller_spec.rb
+++ b/spec/controllers/projects/group_links_controller_spec.rb
@@ -7,7 +7,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/projects/hooks_controller_spec.rb b/spec/controllers/projects/hooks_controller_spec.rb
index 2d473d5bf5250bdd76ad5679818024e907b7bb99..0f3033b0933cb691fda3ec981aeb142bced475a1 100644
--- a/spec/controllers/projects/hooks_controller_spec.rb
+++ b/spec/controllers/projects/hooks_controller_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/projects/imports_controller_spec.rb b/spec/controllers/projects/imports_controller_spec.rb
index 6f06210f3de2fac56af8b021de3f1ed725de5e7d..adf3c78ae51ba3cf67f751241be469b6570cf919 100644
--- a/spec/controllers/projects/imports_controller_spec.rb
+++ b/spec/controllers/projects/imports_controller_spec.rb
@@ -6,7 +6,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET #show' do
diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb
index 3a41f0fc07ac6aee0484fd5e88c28403f9094f69..ff1835a34c23c241d07aa1b8595c08a4c213890c 100644
--- a/spec/controllers/projects/issues_controller_spec.rb
+++ b/spec/controllers/projects/issues_controller_spec.rb
@@ -695,7 +695,7 @@ def post_new_issue(issue_attrs = {}, additional_params = {})
       let(:project) { merge_request.source_project }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in user
       end
 
@@ -869,7 +869,7 @@ def post_verified_issue
       def post_spam
         admin = create(:admin)
         create(:user_agent_detail, subject: issue)
-        project.add_master(admin)
+        project.add_maintainer(admin)
         sign_in(admin)
         post :mark_as_spam, {
           namespace_id: project.namespace,
diff --git a/spec/controllers/projects/jobs_controller_spec.rb b/spec/controllers/projects/jobs_controller_spec.rb
index 6be27126383a69837498a7286d325f4768db0aff..1aca44c6e742782ae22da627216e664eb134ff3b 100644
--- a/spec/controllers/projects/jobs_controller_spec.rb
+++ b/spec/controllers/projects/jobs_controller_spec.rb
@@ -431,7 +431,7 @@ def post_cancel_all
   end
 
   describe 'POST erase' do
-    let(:role) { :master }
+    let(:role) { :maintainer }
 
     before do
       project.add_role(user, role)
diff --git a/spec/controllers/projects/labels_controller_spec.rb b/spec/controllers/projects/labels_controller_spec.rb
index 452d7e239838f87f85ede2695bf2f760a954738b..273702e6d2154b24db35afa9313f12ebc1f249ce 100644
--- a/spec/controllers/projects/labels_controller_spec.rb
+++ b/spec/controllers/projects/labels_controller_spec.rb
@@ -6,7 +6,7 @@
   let(:user)    { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/controllers/projects/mattermosts_controller_spec.rb b/spec/controllers/projects/mattermosts_controller_spec.rb
index c5ac0be27bb900574bad46e6fa37f033d058d8a0..c2a334a849c8acdeeaf0f8c5e2fc755c959cb512 100644
--- a/spec/controllers/projects/mattermosts_controller_spec.rb
+++ b/spec/controllers/projects/mattermosts_controller_spec.rb
@@ -5,7 +5,7 @@
   let!(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/projects/merge_requests/creations_controller_spec.rb b/spec/controllers/projects/merge_requests/creations_controller_spec.rb
index 00d76f3c39a8b38981f1a71f87c24c0e58f2ae09..d8995f98575fcdd2c70a9ec909b2431ffa69e398 100644
--- a/spec/controllers/projects/merge_requests/creations_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests/creations_controller_spec.rb
@@ -16,7 +16,7 @@
   end
 
   before do
-    fork_project.add_master(user)
+    fork_project.add_maintainer(user)
     Projects::ForkService.new(project, user).execute(fork_project)
     sign_in(user)
   end
@@ -94,7 +94,7 @@ def diff_for_path(extra_params = {})
       let(:other_project) { create(:project, :repository) }
 
       before do
-        other_project.add_master(user)
+        other_project.add_maintainer(user)
       end
 
       context 'when the path exists in the diff' do
diff --git a/spec/controllers/projects/merge_requests/diffs_controller_spec.rb b/spec/controllers/projects/merge_requests/diffs_controller_spec.rb
index ec82b35f2279f3882765037711f4bcc8698ce9c5..9dc06436c72e235f2b948baf7afa584287163881 100644
--- a/spec/controllers/projects/merge_requests/diffs_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests/diffs_controller_spec.rb
@@ -140,7 +140,7 @@ def diff_for_path(extra_params = {})
       let(:other_project) { create(:project) }
 
       before do
-        other_project.add_master(user)
+        other_project.add_maintainer(user)
         diff_for_path(old_path: existing_path, new_path: existing_path, project_id: other_project)
       end
 
diff --git a/spec/controllers/projects/milestones_controller_spec.rb b/spec/controllers/projects/milestones_controller_spec.rb
index b1d8324623847a98f52463ba7e1946f9ab0d8d79..ea906cf7f32df73a3c628c2774822c5f0dd44ee7 100644
--- a/spec/controllers/projects/milestones_controller_spec.rb
+++ b/spec/controllers/projects/milestones_controller_spec.rb
@@ -11,7 +11,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
     controller.instance_variable_set(:@project, project)
   end
 
diff --git a/spec/controllers/projects/pages_controller_spec.rb b/spec/controllers/projects/pages_controller_spec.rb
index 8d2fa6a174030abb7210a266c2ba102b89c4e0aa..927b6e0c47336b70aab5d5c5ce6016671f1eb289 100644
--- a/spec/controllers/projects/pages_controller_spec.rb
+++ b/spec/controllers/projects/pages_controller_spec.rb
@@ -14,7 +14,7 @@
   before do
     allow(Gitlab.config.pages).to receive(:enabled).and_return(true)
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET show' do
diff --git a/spec/controllers/projects/pages_domains_controller_spec.rb b/spec/controllers/projects/pages_domains_controller_spec.rb
index d4058a5c515a85b0846175d2c70593ee887f1f5d..75871eab1ab63bad75dc3cc9b6d25647a7b711c5 100644
--- a/spec/controllers/projects/pages_domains_controller_spec.rb
+++ b/spec/controllers/projects/pages_domains_controller_spec.rb
@@ -19,7 +19,7 @@
   before do
     allow(Gitlab.config.pages).to receive(:enabled).and_return(true)
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET show' do
diff --git a/spec/controllers/projects/pipeline_schedules_controller_spec.rb b/spec/controllers/projects/pipeline_schedules_controller_spec.rb
index 4cdaa54e0bc9c7291da89a4d37da671cee5a0041..7179423dde257c1dd38a43405f8071b7ea0c6597 100644
--- a/spec/controllers/projects/pipeline_schedules_controller_spec.rb
+++ b/spec/controllers/projects/pipeline_schedules_controller_spec.rb
@@ -121,7 +121,7 @@ def visit_pipelines_schedules
 
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_allowed_for(:developer).of(project) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -274,7 +274,7 @@ def go
 
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_allowed_for(:developer).of(project).own(pipeline_schedule) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -292,19 +292,19 @@ def go
 
         it { expect { go }.to be_allowed_for(developer_1) }
         it { expect { go }.to be_denied_for(:developer).of(project) }
-        it { expect { go }.to be_allowed_for(:master).of(project) }
+        it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       end
 
-      context 'when a master created a pipeline schedule' do
-        let(:master_1) { create(:user) }
-        let!(:pipeline_schedule) { create(:ci_pipeline_schedule, project: project, owner: master_1) }
+      context 'when a maintainer created a pipeline schedule' do
+        let(:maintainer_1) { create(:user) }
+        let!(:pipeline_schedule) { create(:ci_pipeline_schedule, project: project, owner: maintainer_1) }
 
         before do
-          project.add_master(master_1)
+          project.add_maintainer(maintainer_1)
         end
 
-        it { expect { go }.to be_allowed_for(master_1) }
-        it { expect { go }.to be_allowed_for(:master).of(project) }
+        it { expect { go }.to be_allowed_for(maintainer_1) }
+        it { expect { go }.to be_allowed_for(:maintainer).of(project) }
         it { expect { go }.to be_denied_for(:developer).of(project) }
       end
     end
@@ -331,7 +331,7 @@ def go
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -346,7 +346,7 @@ def go
     describe 'security' do
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_allowed_for(:developer).of(project).own(pipeline_schedule) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -364,7 +364,7 @@ def go
     describe 'security' do
       it { expect { go }.to be_allowed_for(:admin) }
       it { expect { go }.to be_allowed_for(:owner).of(project) }
-      it { expect { go }.to be_allowed_for(:master).of(project) }
+      it { expect { go }.to be_allowed_for(:maintainer).of(project) }
       it { expect { go }.to be_allowed_for(:developer).of(project).own(pipeline_schedule) }
       it { expect { go }.to be_denied_for(:reporter).of(project) }
       it { expect { go }.to be_denied_for(:guest).of(project) }
@@ -453,9 +453,9 @@ def go
       end
     end
 
-    context 'when a master makes the request' do
+    context 'when a maintainer makes the request' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
diff --git a/spec/controllers/projects/pipelines_settings_controller_spec.rb b/spec/controllers/projects/pipelines_settings_controller_spec.rb
index 694896b6bcf684e83a70bcb3b3ade82117d84733..b1ba9f74e38973299fa91834a7a04bedd62e55d8 100644
--- a/spec/controllers/projects/pipelines_settings_controller_spec.rb
+++ b/spec/controllers/projects/pipelines_settings_controller_spec.rb
@@ -6,7 +6,7 @@
   let(:project) { project_auto_devops.project }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/controllers/projects/project_members_controller_spec.rb b/spec/controllers/projects/project_members_controller_spec.rb
index d84b31ad978ccf571bb0efdfeeb3880316e473f3..519af10d78c25f055518523c812f2f400372b712 100644
--- a/spec/controllers/projects/project_members_controller_spec.rb
+++ b/spec/controllers/projects/project_members_controller_spec.rb
@@ -37,7 +37,7 @@
 
     context 'when user has enough rights' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it 'adds user to members' do
@@ -70,7 +70,7 @@
     let(:requester) { create(:project_member, :access_request, project: project) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
     end
 
@@ -121,7 +121,7 @@
 
       context 'when user has enough rights' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it '[HTML] removes user from members' do
@@ -181,7 +181,7 @@
         let(:project) { create(:project, namespace: user.namespace) }
 
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it 'cannot remove themselves from the project' do
@@ -263,7 +263,7 @@
 
       context 'when user has enough rights' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it 'adds user to members' do
@@ -285,7 +285,7 @@
     let(:member) { create(:user) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       another_project.add_guest(member)
       sign_in(user)
     end
@@ -332,7 +332,7 @@
 
     context 'when creating owner' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -346,9 +346,9 @@
       end
     end
 
-    context 'when create master' do
+    context 'when create maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
@@ -356,7 +356,7 @@
         expect do
           post :create, user_ids: stranger.id,
                         namespace_id: project.namespace,
-                        access_level: Member::MASTER,
+                        access_level: Member::MAINTAINER,
                         project_id: project
         end.to change { project.members.count }.by(1)
       end
diff --git a/spec/controllers/projects/prometheus/metrics_controller_spec.rb b/spec/controllers/projects/prometheus/metrics_controller_spec.rb
index 871dcf5c796cc74cfa89c435fb2d22a460cb592a..5c56a712245640f0b754702b89df535ec4d63a36 100644
--- a/spec/controllers/projects/prometheus/metrics_controller_spec.rb
+++ b/spec/controllers/projects/prometheus/metrics_controller_spec.rb
@@ -7,7 +7,7 @@
   let(:prometheus_adapter) { double('prometheus_adapter', can_query?: true) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/projects/protected_branches_controller_spec.rb b/spec/controllers/projects/protected_branches_controller_spec.rb
index 096e29bc39f8187efebb0502fc8328814ba3e544..ac812707e74c335fcfdf907a3d413e27289e2ecc 100644
--- a/spec/controllers/projects/protected_branches_controller_spec.rb
+++ b/spec/controllers/projects/protected_branches_controller_spec.rb
@@ -8,7 +8,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe "GET #index" do
@@ -20,10 +20,10 @@
   end
 
   describe "POST #create" do
-    let(:master_access_level) { [{ access_level: Gitlab::Access::MASTER }] }
+    let(:maintainer_access_level) { [{ access_level: Gitlab::Access::MAINTAINER }] }
     let(:access_level_params) do
-      { merge_access_levels_attributes: master_access_level,
-        push_access_levels_attributes: master_access_level }
+      { merge_access_levels_attributes: maintainer_access_level,
+        push_access_levels_attributes: maintainer_access_level }
     end
     let(:create_params) { attributes_for(:protected_branch).merge(access_level_params) }
 
diff --git a/spec/controllers/projects/protected_tags_controller_spec.rb b/spec/controllers/projects/protected_tags_controller_spec.rb
index b6de90039f3ab59c552545ab28ae16d23d16f84a..20440c5a5d5639fc80ba125be6aefed1dc86500b 100644
--- a/spec/controllers/projects/protected_tags_controller_spec.rb
+++ b/spec/controllers/projects/protected_tags_controller_spec.rb
@@ -15,7 +15,7 @@
     let(:user) { create(:user) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
     end
 
diff --git a/spec/controllers/projects/runners_controller_spec.rb b/spec/controllers/projects/runners_controller_spec.rb
index 2082dd2cff0d5c931e5e3f4b45ba80b7f64123d4..b1e0b496ede1158f3b41101c9543cb081f97499d 100644
--- a/spec/controllers/projects/runners_controller_spec.rb
+++ b/spec/controllers/projects/runners_controller_spec.rb
@@ -15,7 +15,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe '#update' do
diff --git a/spec/controllers/projects/services_controller_spec.rb b/spec/controllers/projects/services_controller_spec.rb
index 61f35cf325b2768e177d8bd27c3964685fb45a46..45cea8c1351bb18e87caafd58cafec15154fd6cd 100644
--- a/spec/controllers/projects/services_controller_spec.rb
+++ b/spec/controllers/projects/services_controller_spec.rb
@@ -9,7 +9,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe '#test' do
diff --git a/spec/controllers/projects/settings/ci_cd_controller_spec.rb b/spec/controllers/projects/settings/ci_cd_controller_spec.rb
index d53fe9bf73459f234e084200d0fdec069205ffc0..1f14a0cc3814bbcd02d5ade2960e2df318dede07 100644
--- a/spec/controllers/projects/settings/ci_cd_controller_spec.rb
+++ b/spec/controllers/projects/settings/ci_cd_controller_spec.rb
@@ -6,7 +6,7 @@
   let(:project) { project_auto_devops.project }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
@@ -27,7 +27,7 @@
       let!(:shared_runner) { create(:ci_runner, :instance) }
 
       it 'sets assignable project runners only' do
-        group.add_master(user)
+        group.add_maintainer(user)
 
         get :show, namespace_id: project.namespace, project_id: project
 
@@ -40,7 +40,7 @@
     before do
       sign_in(user)
 
-      project.add_master(user)
+      project.add_maintainer(user)
 
       allow(ResetProjectCacheService).to receive_message_chain(:new, :execute).and_return(true)
     end
diff --git a/spec/controllers/projects/settings/integrations_controller_spec.rb b/spec/controllers/projects/settings/integrations_controller_spec.rb
index 77df9a6f56764dee7bf0bfaaf4e59baec00f26cb..a2484c04c7ab2e1ec9f245ffef6a66f2f26c1736 100644
--- a/spec/controllers/projects/settings/integrations_controller_spec.rb
+++ b/spec/controllers/projects/settings/integrations_controller_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/projects/settings/repository_controller_spec.rb b/spec/controllers/projects/settings/repository_controller_spec.rb
index 3a4014b77683e02a41fb42067d8658f37fdafd0a..9cee40b7553e99b847aed96cf4ce4f520c1728f2 100644
--- a/spec/controllers/projects/settings/repository_controller_spec.rb
+++ b/spec/controllers/projects/settings/repository_controller_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/controllers/projects/snippets_controller_spec.rb b/spec/controllers/projects/snippets_controller_spec.rb
index e7c0b484ede2fc9c5e398b7f22d14f8706204c08..9c383bd7628e337b973a52be7f4b79a6287e4e6b 100644
--- a/spec/controllers/projects/snippets_controller_spec.rb
+++ b/spec/controllers/projects/snippets_controller_spec.rb
@@ -6,8 +6,8 @@
   let(:user2)   { create(:user) }
 
   before do
-    project.add_master(user)
-    project.add_master(user2)
+    project.add_maintainer(user)
+    project.add_maintainer(user2)
   end
 
   describe 'GET #index' do
@@ -291,7 +291,7 @@ def update_snippet(snippet_params = {}, additional_params = {})
     def mark_as_spam
       admin = create(:admin)
       create(:user_agent_detail, subject: snippet)
-      project.add_master(admin)
+      project.add_maintainer(admin)
       sign_in(admin)
 
       post :mark_as_spam,
diff --git a/spec/controllers/projects/templates_controller_spec.rb b/spec/controllers/projects/templates_controller_spec.rb
index 8fcfa3c9ecd3c626ae9e16b7b111542747e8b9b3..d7f07aa2b019ca70c3c783560d72d850b82f2848 100644
--- a/spec/controllers/projects/templates_controller_spec.rb
+++ b/spec/controllers/projects/templates_controller_spec.rb
@@ -13,7 +13,7 @@
   end
 
   before do
-    project.add_user(user, Gitlab::Access::MASTER)
+    project.add_user(user, Gitlab::Access::MAINTAINER)
     project.repository.create_file(user, file_path_1, 'something valid',
       message: 'test 3', branch_name: 'master')
   end
diff --git a/spec/controllers/projects/tree_controller_spec.rb b/spec/controllers/projects/tree_controller_spec.rb
index d3188f054cf7fbd5eec73bb9de482ee69fdc44f7..9982b49eebbd78aa3917fc44361ecb794c355587 100644
--- a/spec/controllers/projects/tree_controller_spec.rb
+++ b/spec/controllers/projects/tree_controller_spec.rb
@@ -7,7 +7,7 @@
   before do
     sign_in(user)
 
-    project.add_master(user)
+    project.add_maintainer(user)
     controller.instance_variable_set(:@project, project)
   end
 
diff --git a/spec/controllers/projects/variables_controller_spec.rb b/spec/controllers/projects/variables_controller_spec.rb
index 68019743be0b27ec7df5fe6c77a5b18daad48ba8..9afd1f751c66a733f1723f501badd63f94a4366f 100644
--- a/spec/controllers/projects/variables_controller_spec.rb
+++ b/spec/controllers/projects/variables_controller_spec.rb
@@ -6,7 +6,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET #show' do
diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb
index fd7d867f9e5f18742f51db443c88d44925b8cceb..94644b1f9fd2e0e0aa09866ab2f5ed072b34e6dc 100644
--- a/spec/controllers/projects_controller_spec.rb
+++ b/spec/controllers/projects_controller_spec.rb
@@ -759,7 +759,7 @@ def update_project(**parameters)
     before do
       sign_in(user)
 
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'when project export is enabled' do
@@ -787,7 +787,7 @@ def update_project(**parameters)
     before do
       sign_in(user)
 
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'object storage disabled' do
@@ -847,7 +847,7 @@ def update_project(**parameters)
     before do
       sign_in(user)
 
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'when project export is enabled' do
@@ -875,7 +875,7 @@ def update_project(**parameters)
     before do
       sign_in(user)
 
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'when project export is enabled' do
diff --git a/spec/controllers/uploads_controller_spec.rb b/spec/controllers/uploads_controller_spec.rb
index eb94d395a9ec265d47af41738d5e22540ea0b282..bcf289f36a98fc10156b6eeaf8931c3cc89d0da1 100644
--- a/spec/controllers/uploads_controller_spec.rb
+++ b/spec/controllers/uploads_controller_spec.rb
@@ -269,13 +269,13 @@
 
           context "when the user has access to the project" do
             before do
-              project.add_master(user)
+              project.add_maintainer(user)
             end
 
             context "when the user is blocked" do
               before do
                 user.block
-                project.add_master(user)
+                project.add_maintainer(user)
               end
 
               it "redirects to the sign in page" do
@@ -475,13 +475,13 @@
 
           context "when the user has access to the project" do
             before do
-              project.add_master(user)
+              project.add_maintainer(user)
             end
 
             context "when the user is blocked" do
               before do
                 user.block
-                project.add_master(user)
+                project.add_maintainer(user)
               end
 
               it "redirects to the sign in page" do
diff --git a/spec/factories/group_members.rb b/spec/factories/group_members.rb
index 1c2214e94819cafaccd39698e713504e4d86744d..47036560b9da7643d260bb2b8acd78aec092f55b 100644
--- a/spec/factories/group_members.rb
+++ b/spec/factories/group_members.rb
@@ -7,7 +7,7 @@
     trait(:guest)     { access_level GroupMember::GUEST }
     trait(:reporter)  { access_level GroupMember::REPORTER }
     trait(:developer) { access_level GroupMember::DEVELOPER }
-    trait(:master)    { access_level GroupMember::MASTER }
+    trait(:maintainer) { access_level GroupMember::MAINTAINER }
     trait(:owner)     { access_level GroupMember::OWNER }
     trait(:access_request) { requested_at Time.now }
 
diff --git a/spec/factories/project_members.rb b/spec/factories/project_members.rb
index 4260f52498dd58a00a4cb5bdfe647ad19c7c7775..22a8085ea4529f648201e2154af930c52080cf86 100644
--- a/spec/factories/project_members.rb
+++ b/spec/factories/project_members.rb
@@ -2,12 +2,12 @@
   factory :project_member do
     user
     project
-    master
+    maintainer
 
     trait(:guest)     { access_level ProjectMember::GUEST }
     trait(:reporter)  { access_level ProjectMember::REPORTER }
     trait(:developer) { access_level ProjectMember::DEVELOPER }
-    trait(:master)    { access_level ProjectMember::MASTER }
+    trait(:maintainer) { access_level ProjectMember::MAINTAINER }
     trait(:access_request) { requested_at Time.now }
 
     trait(:invited) do
diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb
index f77ded23b18047f9f344bf926099690c607a432d..fec1bea2751f405d6f30b1be06d68f259e5c32d7 100644
--- a/spec/factories/projects.rb
+++ b/spec/factories/projects.rb
@@ -47,7 +47,7 @@
       # user have access to the project. Our specs don't use said service class,
       # thus we must manually refresh things here.
       unless project.group || project.pending_delete
-        project.add_master(project.owner)
+        project.add_maintainer(project.owner)
       end
 
       project.group&.refresh_members_authorized_projects
diff --git a/spec/factories/protected_branches.rb b/spec/factories/protected_branches.rb
index 609565118340b9f9c485c0e5ebc44ed4abc0098b..5457c0d2a8f5e775f632f3a0442f0d315d75b1ed 100644
--- a/spec/factories/protected_branches.rb
+++ b/spec/factories/protected_branches.rb
@@ -39,23 +39,23 @@
       end
     end
 
-    trait :masters_can_push do
+    trait :maintainers_can_push do
       transient do
         default_push_level false
       end
 
       after(:build) do |protected_branch|
-        protected_branch.push_access_levels.new(access_level: Gitlab::Access::MASTER)
+        protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER)
       end
     end
 
     after(:build) do |protected_branch, evaluator|
       if evaluator.default_access_level && evaluator.default_push_level
-        protected_branch.push_access_levels.new(access_level: Gitlab::Access::MASTER)
+        protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER)
       end
 
       if evaluator.default_access_level && evaluator.default_merge_level
-        protected_branch.merge_access_levels.new(access_level: Gitlab::Access::MASTER)
+        protected_branch.merge_access_levels.new(access_level: Gitlab::Access::MAINTAINER)
       end
     end
 
diff --git a/spec/factories/protected_tags.rb b/spec/factories/protected_tags.rb
index df9c8b3cb6345e81018b4bd97c02a37a76984700..2b81d089549f6f2463f80501d2d3e62e84af16d6 100644
--- a/spec/factories/protected_tags.rb
+++ b/spec/factories/protected_tags.rb
@@ -27,19 +27,19 @@
       end
     end
 
-    trait :masters_can_create do
+    trait :maintainers_can_create do
       transient do
         default_access_level false
       end
 
       after(:build) do |protected_tag|
-        protected_tag.create_access_levels.new(access_level: Gitlab::Access::MASTER)
+        protected_tag.create_access_levels.new(access_level: Gitlab::Access::MAINTAINER)
       end
     end
 
     after(:build) do |protected_tag, evaluator|
       if evaluator.default_access_level
-        protected_tag.create_access_levels.new(access_level: Gitlab::Access::MASTER)
+        protected_tag.create_access_levels.new(access_level: Gitlab::Access::MAINTAINER)
       end
     end
   end
diff --git a/spec/features/admin/admin_groups_spec.rb b/spec/features/admin/admin_groups_spec.rb
index 5b0a53688c20714186a9c4abc727e6a0fc339f88..96dfde2e08c6148da22ec533236a020af4579d1b 100644
--- a/spec/features/admin/admin_groups_spec.rb
+++ b/spec/features/admin/admin_groups_spec.rb
@@ -168,7 +168,7 @@
     it 'renders shared project' do
       empty_project = create(:project)
       empty_project.project_group_links.create!(
-        group_access: Gitlab::Access::MASTER,
+        group_access: Gitlab::Access::MAINTAINER,
         group: group
       )
 
diff --git a/spec/features/admin/admin_projects_spec.rb b/spec/features/admin/admin_projects_spec.rb
index 328e8f25f89cf21c1cb28b4562744857f860eb3f..d6ee256f5b55f1b0c6602c291c3e717b08b95b4a 100644
--- a/spec/features/admin/admin_projects_spec.rb
+++ b/spec/features/admin/admin_projects_spec.rb
@@ -88,7 +88,7 @@
 
   describe 'add admin himself to a project' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it 'adds admin a to a project as developer', :js do
@@ -110,7 +110,7 @@
 
   describe 'admin remove himself from a project' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       project.add_developer(current_user)
     end
 
diff --git a/spec/features/atom/dashboard_issues_spec.rb b/spec/features/atom/dashboard_issues_spec.rb
index da7749b42d259e127fc1b65469c13c8991327a72..bd4c00d97b1f0a0dc9e6e3ab74507e4eaf3624e7 100644
--- a/spec/features/atom/dashboard_issues_spec.rb
+++ b/spec/features/atom/dashboard_issues_spec.rb
@@ -8,8 +8,8 @@
     let!(:project2) { create(:project) }
 
     before do
-      project1.add_master(user)
-      project2.add_master(user)
+      project1.add_maintainer(user)
+      project2.add_maintainer(user)
     end
 
     describe "atom feed" do
diff --git a/spec/features/atom/dashboard_spec.rb b/spec/features/atom/dashboard_spec.rb
index 462eab07a75479c842c32be0d10325fc73169a8a..86b3f88298f3e6ba31f91ceb056aa8d374e4c616 100644
--- a/spec/features/atom/dashboard_spec.rb
+++ b/spec/features/atom/dashboard_spec.rb
@@ -26,7 +26,7 @@
       let(:note) { create(:note, noteable: issue, author: user, note: 'Bug confirmed', project: project) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         issue_event(issue, user)
         note_event(note, user)
         visit dashboard_projects_path(:atom, feed_token: user.feed_token)
diff --git a/spec/features/atom/users_spec.rb b/spec/features/atom/users_spec.rb
index eeaaa40fe2175325d6801aae172b4947a221e816..8d7df346abbe0992cd37e9c97d5d8d06f0bcf1ec 100644
--- a/spec/features/atom/users_spec.rb
+++ b/spec/features/atom/users_spec.rb
@@ -47,7 +47,7 @@
       let!(:push_event_payload) { create(:push_event_payload, event: push_event) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         issue_event(issue, user)
         note_event(note, user)
         merge_request_event(merge_request, user)
diff --git a/spec/features/boards/add_issues_modal_spec.rb b/spec/features/boards/add_issues_modal_spec.rb
index 7a14a441088e3355617f5874236db97fe478dc57..eebc987499d4354169f8a7136aaed35fa0339c4c 100644
--- a/spec/features/boards/add_issues_modal_spec.rb
+++ b/spec/features/boards/add_issues_modal_spec.rb
@@ -12,7 +12,7 @@
   let!(:issue2) { create(:issue, project: project, title: 'hij', description: 'klm') }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
 
diff --git a/spec/features/boards/boards_spec.rb b/spec/features/boards/boards_spec.rb
index f6e0dee28c6145cba65bd0a9c97b10bb65d83eb5..a0af2dea3ad9de8634318de4cea89c9ce426e6ec 100644
--- a/spec/features/boards/boards_spec.rb
+++ b/spec/features/boards/boards_spec.rb
@@ -11,8 +11,8 @@
   let!(:user2)  { create(:user) }
 
   before do
-    project.add_master(user)
-    project.add_master(user2)
+    project.add_maintainer(user)
+    project.add_maintainer(user2)
 
     set_cookie('sidebar_collapsed', 'true')
 
diff --git a/spec/features/boards/issue_ordering_spec.rb b/spec/features/boards/issue_ordering_spec.rb
index 32bd7b88840a236ceae3c0266680c5c448232b15..ec0ca21450a285505b75374ab942a19d03916f8c 100644
--- a/spec/features/boards/issue_ordering_spec.rb
+++ b/spec/features/boards/issue_ordering_spec.rb
@@ -13,7 +13,7 @@
   let!(:issue3) { create(:labeled_issue, project: project, title: 'testing 3', labels: [label], relative_position: 1) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/features/boards/modal_filter_spec.rb b/spec/features/boards/modal_filter_spec.rb
index be9c6a51c29b9ac4540c687f75fb73fd0787ec9d..615223a2a884714689c597fa7fa2022312e1ca06 100644
--- a/spec/features/boards/modal_filter_spec.rb
+++ b/spec/features/boards/modal_filter_spec.rb
@@ -10,7 +10,7 @@
   let!(:issue1) { create(:issue, project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/features/boards/new_issue_spec.rb b/spec/features/boards/new_issue_spec.rb
index 7a95f5cf871ee73d08caf88b52fb33ef1267f193..0bf1ecbc4338f6d303c1e9c68c6792c6b1d3deae 100644
--- a/spec/features/boards/new_issue_spec.rb
+++ b/spec/features/boards/new_issue_spec.rb
@@ -8,7 +8,7 @@
 
   context 'authorized user' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
 
       sign_in(user)
 
diff --git a/spec/features/boards/sidebar_spec.rb b/spec/features/boards/sidebar_spec.rb
index a03aa6818273cfb57745fc307c6ad4cbe3f0886a..ee38e756f9ea2c4b334a3c39fece2ec57f5536b5 100644
--- a/spec/features/boards/sidebar_spec.rb
+++ b/spec/features/boards/sidebar_spec.rb
@@ -22,7 +22,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
 
diff --git a/spec/features/boards/sub_group_project_spec.rb b/spec/features/boards/sub_group_project_spec.rb
index 271c610dcc8d409bd0583185250495477a798053..de2cb4c335ed5a30b621a5da2d5701fe7798aa96 100644
--- a/spec/features/boards/sub_group_project_spec.rb
+++ b/spec/features/boards/sub_group_project_spec.rb
@@ -11,7 +11,7 @@
   let!(:issue) { create(:labeled_issue, project: project, labels: [label]) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
 
diff --git a/spec/features/commits_spec.rb b/spec/features/commits_spec.rb
index 29fcf89fa7a8b5e73710d31ba8fb57aeacc20ad8..8989b2051bb1ddb6625b6a8de6c6ac571a1b54f3 100644
--- a/spec/features/commits_spec.rb
+++ b/spec/features/commits_spec.rb
@@ -188,7 +188,7 @@
     let(:branch_name) { 'master' }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
       visit project_commits_path(project, branch_name)
     end
diff --git a/spec/features/cycle_analytics_spec.rb b/spec/features/cycle_analytics_spec.rb
index dfcd7ada23b85cc10bff071cdeddc8a02ab0109c..32c75cae0a1eb91b21c8cc8b033eee2885f39bd2 100644
--- a/spec/features/cycle_analytics_spec.rb
+++ b/spec/features/cycle_analytics_spec.rb
@@ -12,7 +12,7 @@
   context 'as an allowed user' do
     context 'when project is new' do
       before  do
-        project.add_master(user)
+        project.add_maintainer(user)
 
         sign_in(user)
 
@@ -39,7 +39,7 @@
     context "when there's cycle analytics data" do
       before do
         allow_any_instance_of(Gitlab::ReferenceExtractor).to receive(:issues).and_return([issue])
-        project.add_master(user)
+        project.add_maintainer(user)
 
         @build = create_cycle(user, project, issue, mr, milestone, pipeline)
         deploy_master(user, project)
@@ -95,7 +95,7 @@
       before do
         user.update_attribute(:preferred_language, 'es')
 
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
         visit project_cycle_analytics_path(project)
         wait_for_requests
diff --git a/spec/features/dashboard/activity_spec.rb b/spec/features/dashboard/activity_spec.rb
index 9ed912820f7a20cadc684dc70f7bb4544bf701ce..bf91dc121d84f8ac8d02a2267e0c36eebb743946 100644
--- a/spec/features/dashboard/activity_spec.rb
+++ b/spec/features/dashboard/activity_spec.rb
@@ -60,7 +60,7 @@
     end
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
 
       visit activity_dashboard_path
       wait_for_requests
diff --git a/spec/features/dashboard/archived_projects_spec.rb b/spec/features/dashboard/archived_projects_spec.rb
index b36231fd78b011c108f83f5f3a49d134af83e15c..6a0cd8483450d3665398773e675c71e93471c48e 100644
--- a/spec/features/dashboard/archived_projects_spec.rb
+++ b/spec/features/dashboard/archived_projects_spec.rb
@@ -6,8 +6,8 @@
   let(:archived_project) { create(:project, :archived) }
 
   before do
-    project.add_master(user)
-    archived_project.add_master(user)
+    project.add_maintainer(user)
+    archived_project.add_maintainer(user)
 
     sign_in(user)
 
diff --git a/spec/features/dashboard/datetime_on_tooltips_spec.rb b/spec/features/dashboard/datetime_on_tooltips_spec.rb
index 28bff4d2821d1aa05fa3f19000e4aa2e66c2c306..d7234158fa124910ee02818df14a256d9c7db8ca 100644
--- a/spec/features/dashboard/datetime_on_tooltips_spec.rb
+++ b/spec/features/dashboard/datetime_on_tooltips_spec.rb
@@ -8,7 +8,7 @@
 
   context 'on the activity tab' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
 
       Event.create( project: project, author_id: user.id, action: Event::JOINED,
                     updated_at: created_date, created_at: created_date)
@@ -27,7 +27,7 @@
 
   context 'on the snippets tab' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       create(:snippet, author: user, updated_at: created_date, created_at: created_date)
 
       sign_in user
diff --git a/spec/features/dashboard/issues_filter_spec.rb b/spec/features/dashboard/issues_filter_spec.rb
index 340262be502259ef763d22b98aecfbb22e8f01fd..95e2610dd4abcc66e0da58ca8069a7524ebedd91 100644
--- a/spec/features/dashboard/issues_filter_spec.rb
+++ b/spec/features/dashboard/issues_filter_spec.rb
@@ -11,7 +11,7 @@
   let!(:issue2) { create(:issue, project: project, author: user, assignees: [user], milestone: milestone) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit_issues
diff --git a/spec/features/dashboard/issues_spec.rb b/spec/features/dashboard/issues_spec.rb
index 3cc7b38550d2fa8e0c64ee7ce3b0bf4213d9c57a..4ae062f242ac2b392226b55554e36707c267b18a 100644
--- a/spec/features/dashboard/issues_spec.rb
+++ b/spec/features/dashboard/issues_spec.rb
@@ -12,7 +12,7 @@
   let!(:other_issue) { create :issue, project: project }
 
   before do
-    [project, project_with_issues_disabled].each { |project| project.add_master(current_user) }
+    [project, project_with_issues_disabled].each { |project| project.add_maintainer(current_user) }
     sign_in(current_user)
     visit issues_dashboard_path(assignee_id: current_user.id)
   end
diff --git a/spec/features/dashboard/merge_requests_spec.rb b/spec/features/dashboard/merge_requests_spec.rb
index 46d7a82d4680acec1393dbf26747eed5db3a9f52..f51142f57900536a425b9c9c995dfa29b67dc78b 100644
--- a/spec/features/dashboard/merge_requests_spec.rb
+++ b/spec/features/dashboard/merge_requests_spec.rb
@@ -12,7 +12,7 @@
   let(:forked_project) { fork_project(public_project, current_user, repository: true) }
 
   before do
-    project.add_master(current_user)
+    project.add_maintainer(current_user)
     sign_in(current_user)
   end
 
@@ -20,7 +20,7 @@
     let(:project_with_disabled_merge_requests) { create(:project, :merge_requests_disabled) }
 
     before do
-      project_with_disabled_merge_requests.add_master(current_user)
+      project_with_disabled_merge_requests.add_maintainer(current_user)
       visit merge_requests_dashboard_path
     end
 
diff --git a/spec/features/dashboard/milestone_tabs_spec.rb b/spec/features/dashboard/milestone_tabs_spec.rb
index 6fcde35f541e51c2a6bf5515888bc40f75a98687..21de7c2f06f5ac820aa2799a34de3d34827f905a 100644
--- a/spec/features/dashboard/milestone_tabs_spec.rb
+++ b/spec/features/dashboard/milestone_tabs_spec.rb
@@ -14,7 +14,7 @@
   let!(:merge_request) { create(:labeled_merge_request, source_project: project, target_project: project, milestone: project_milestone, labels: [label]) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit dashboard_milestone_path(milestone.safe_title, title: milestone.title)
diff --git a/spec/features/dashboard/milestones_spec.rb b/spec/features/dashboard/milestones_spec.rb
index c0699a72521ded22a1c46c645c499b770c193b96..0db694327028d2d5cc9176c9bb1377ee9b43369f 100644
--- a/spec/features/dashboard/milestones_spec.rb
+++ b/spec/features/dashboard/milestones_spec.rb
@@ -16,7 +16,7 @@
     let(:project) { create(:project, namespace: user.namespace) }
     let!(:milestone) { create(:milestone, project: project) }
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
       visit dashboard_milestones_path
     end
diff --git a/spec/features/dashboard/project_member_activity_index_spec.rb b/spec/features/dashboard/project_member_activity_index_spec.rb
index cfd6329fad0ab5d37117fe205db525170db8e63b..498775acff3ff4049d52ddb68c0f56190b749e9e 100644
--- a/spec/features/dashboard/project_member_activity_index_spec.rb
+++ b/spec/features/dashboard/project_member_activity_index_spec.rb
@@ -5,7 +5,7 @@
   let(:project)         { create(:project, :public, name: 'x', namespace: user.namespace) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   def visit_activities_and_wait_with_event(event_type)
diff --git a/spec/features/dashboard/user_filters_projects_spec.rb b/spec/features/dashboard/user_filters_projects_spec.rb
index 92f4d4b854c527d560d3481b5f9820e8a413534c..3746d37b9cd2aab4197ef125da879ce52408078f 100644
--- a/spec/features/dashboard/user_filters_projects_spec.rb
+++ b/spec/features/dashboard/user_filters_projects_spec.rb
@@ -7,7 +7,7 @@
   let(:project2) { create(:project, name: 'Treasure', namespace: user2.namespace) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/features/discussion_comments/commit_spec.rb b/spec/features/discussion_comments/commit_spec.rb
index 69d35cdbc723ff88ce9e73466f4ed5eb347daacf..7a3b1d7ed47a12fd306f5de4d3fab99442df5b2f 100644
--- a/spec/features/discussion_comments/commit_spec.rb
+++ b/spec/features/discussion_comments/commit_spec.rb
@@ -8,7 +8,7 @@
   let(:merge_request) { create(:merge_request, source_project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_commit_path(project, sample_commit.id)
diff --git a/spec/features/discussion_comments/issue_spec.rb b/spec/features/discussion_comments/issue_spec.rb
index 9812eaf3420ffdaad6c0c5aa61d094ba547969ac..5ec19460bbd7dcd1236be371582c6a6f151af842 100644
--- a/spec/features/discussion_comments/issue_spec.rb
+++ b/spec/features/discussion_comments/issue_spec.rb
@@ -6,7 +6,7 @@
   let(:issue) { create(:issue, project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_issue_path(project, issue)
diff --git a/spec/features/discussion_comments/merge_request_spec.rb b/spec/features/discussion_comments/merge_request_spec.rb
index b0019c32189ed3dbd059d6f7dd8d5cd5796d48e3..f940e97392362a651ecb7833c55f66edf6dfe360 100644
--- a/spec/features/discussion_comments/merge_request_spec.rb
+++ b/spec/features/discussion_comments/merge_request_spec.rb
@@ -6,7 +6,7 @@
   let(:merge_request) { create(:merge_request, source_project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_merge_request_path(project, merge_request)
diff --git a/spec/features/discussion_comments/snippets_spec.rb b/spec/features/discussion_comments/snippets_spec.rb
index 4a236c4639b008c99322d9c07e1677e865da7614..d330e89505e3c709c77bccee2236f8186573c11b 100644
--- a/spec/features/discussion_comments/snippets_spec.rb
+++ b/spec/features/discussion_comments/snippets_spec.rb
@@ -6,7 +6,7 @@
   let(:snippet) { create(:project_snippet, :private, project: project, author: user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_snippet_path(project, snippet)
diff --git a/spec/features/global_search_spec.rb b/spec/features/global_search_spec.rb
index df64219de993088c6925e6d5f7e94a73428aeace..d769218145360be2f2e5366a0fef73dc32259d2e 100644
--- a/spec/features/global_search_spec.rb
+++ b/spec/features/global_search_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project, namespace: user.namespace) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/group_variables_spec.rb b/spec/features/group_variables_spec.rb
index 5643240377b1aa19a0cac01e3054cb0c39f68932..89e0cdd8ed7fbf862de4552a007a7c2b57864b03 100644
--- a/spec/features/group_variables_spec.rb
+++ b/spec/features/group_variables_spec.rb
@@ -7,7 +7,7 @@
   let(:page_path) { group_settings_ci_cd_path(group) }
 
   before do
-    group.add_master(user)
+    group.add_maintainer(user)
     gitlab_sign_in(user)
 
     visit page_path
diff --git a/spec/features/groups/activity_spec.rb b/spec/features/groups/activity_spec.rb
index 27520cf0e22ae7d7841e22c732d4bb0bfcda8c1d..88fc12ae1e4abc73ed537007c8eb320b64741da4 100644
--- a/spec/features/groups/activity_spec.rb
+++ b/spec/features/groups/activity_spec.rb
@@ -23,7 +23,7 @@
       let(:project) { create(:project, :public, namespace: group) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
 
         visit path
       end
diff --git a/spec/features/groups/empty_states_spec.rb b/spec/features/groups/empty_states_spec.rb
index dd901b034f7c0644710ad545761b7725d33cd241..8f5ca781b2c6b41b40ab1529b1b20b6f3c8b0a3a 100644
--- a/spec/features/groups/empty_states_spec.rb
+++ b/spec/features/groups/empty_states_spec.rb
@@ -19,7 +19,7 @@
         let(:project) { create(:project, namespace: group) }
 
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         context "the project has #{issuable_name}s" do
diff --git a/spec/features/groups/issues_spec.rb b/spec/features/groups/issues_spec.rb
index 2bab6aa3d48350d2eefbff086a4c081f4bce28a1..97d8776b15a5510f581e8e444127924b863dff0c 100644
--- a/spec/features/groups/issues_spec.rb
+++ b/spec/features/groups/issues_spec.rb
@@ -80,10 +80,10 @@
 
   context 'projects with issues disabled' do
     describe 'issue dropdown' do
-      let(:user_in_group) { create(:group_member, :master, user: create(:user), group: group ).user }
+      let(:user_in_group) { create(:group_member, :maintainer, user: create(:user), group: group ).user }
 
       before do
-        [project, project_with_issues_disabled].each { |project| project.add_master(user_in_group) }
+        [project, project_with_issues_disabled].each { |project| project.add_maintainer(user_in_group) }
         sign_in(user_in_group)
         visit issues_group_path(group)
       end
diff --git a/spec/features/groups/members/filter_members_spec.rb b/spec/features/groups/members/filter_members_spec.rb
index 8b4f6dbcc5055c7b6d38fe2d65cf36a72dfff240..386d81546d77109fe1d0e7ed80392755f36dd175 100644
--- a/spec/features/groups/members/filter_members_spec.rb
+++ b/spec/features/groups/members/filter_members_spec.rb
@@ -7,7 +7,7 @@
 
   before do
     group.add_owner(user)
-    group.add_master(user_with_2fa)
+    group.add_maintainer(user_with_2fa)
 
     sign_in(user)
   end
diff --git a/spec/features/groups/members/master_manages_access_requests_spec.rb b/spec/features/groups/members/master_manages_access_requests_spec.rb
index 4fdf149778188ff5f02f803e955b676cef19b2e4..bd615c9941219c5410bbabaf492915149633693f 100644
--- a/spec/features/groups/members/master_manages_access_requests_spec.rb
+++ b/spec/features/groups/members/master_manages_access_requests_spec.rb
@@ -1,7 +1,7 @@
 require 'spec_helper'
 
-describe 'Groups > Members > Master manages access requests' do
-  it_behaves_like 'Master manages access requests' do
+describe 'Groups > Members > Maintainer manages access requests' do
+  it_behaves_like 'Maintainer manages access requests' do
     let(:entity) { create(:group, :public, :access_requestable) }
     let(:members_page_path) { group_group_members_path(entity) }
   end
diff --git a/spec/features/groups/milestone_spec.rb b/spec/features/groups/milestone_spec.rb
index 5ab03cb6ee6916412f4eda20993a4eba8ac6db37..80df0618a6a4c7320db69c67b6c349a050dfe01f 100644
--- a/spec/features/groups/milestone_spec.rb
+++ b/spec/features/groups/milestone_spec.rb
@@ -3,7 +3,7 @@
 describe 'Group milestones' do
   let(:group) { create(:group) }
   let!(:project) { create(:project_empty_repo, group: group) }
-  let(:user) { create(:group_member, :master, user: create(:user), group: group ).user }
+  let(:user) { create(:group_member, :maintainer, user: create(:user), group: group ).user }
 
   around do |example|
     Timecop.freeze { example.run }
diff --git a/spec/features/groups/milestones_sorting_spec.rb b/spec/features/groups/milestones_sorting_spec.rb
index 5deb55bc8bb16aad6cec4c7adf071d3194584ac1..bc226ff41c1aa1e8b714304146e5919f30be6210 100644
--- a/spec/features/groups/milestones_sorting_spec.rb
+++ b/spec/features/groups/milestones_sorting_spec.rb
@@ -9,7 +9,7 @@
   let!(:project_milestone2) { create(:milestone, project: project, title: 'v2.0', due_date: 5.days.from_now) }
   let!(:other_project_milestone2) { create(:milestone, project: other_project, title: 'v2.0', due_date: 5.days.from_now) }
   let!(:group_milestone) { create(:milestone, group: group, title: 'v3.0', due_date: 7.days.from_now) }
-  let(:user) { create(:group_member, :master, user: create(:user), group: group ).user }
+  let(:user) { create(:group_member, :maintainer, user: create(:user), group: group ).user }
 
   before do
     sign_in(user)
diff --git a/spec/features/ics/dashboard_issues_spec.rb b/spec/features/ics/dashboard_issues_spec.rb
index a4d05c25a90baa89fcdf4e25edb0016076020e7e..ea714934ae769c9f10faea09e50eff8e8dbcd24a 100644
--- a/spec/features/ics/dashboard_issues_spec.rb
+++ b/spec/features/ics/dashboard_issues_spec.rb
@@ -8,7 +8,7 @@
     let(:milestone) { create(:milestone, project_id: project.id, title: 'v1.0') }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'when authenticated' do
diff --git a/spec/features/ide_spec.rb b/spec/features/ide_spec.rb
index b3f24c2966dc1cd6ab341c5725f9356e6bd556a0..65989c36c1e43107588f8e96e171f3f351ff2c5f 100644
--- a/spec/features/ide_spec.rb
+++ b/spec/features/ide_spec.rb
@@ -8,7 +8,7 @@
     let(:subgroup_project) { create(:project, :repository, namespace: subgroup) }
 
     before do
-      subgroup_project.add_master(user)
+      subgroup_project.add_maintainer(user)
       sign_in(user)
 
       visit project_path(subgroup_project)
diff --git a/spec/features/invites_spec.rb b/spec/features/invites_spec.rb
index a986ddc4abcdb6cfdd2a55dd2992507f436194ec..9e1a12a9c2a8d1a64d88d9cf668069c1b5927b88 100644
--- a/spec/features/invites_spec.rb
+++ b/spec/features/invites_spec.rb
@@ -8,7 +8,7 @@
   let(:group_invite) { group.group_members.invite.last }
 
   before do
-    project.add_master(owner)
+    project.add_maintainer(owner)
     group.add_user(owner, Gitlab::Access::OWNER)
     group.add_developer('user@example.com', owner)
     group_invite.generate_invite_token!
diff --git a/spec/features/issuables/close_reopen_report_toggle_spec.rb b/spec/features/issuables/close_reopen_report_toggle_spec.rb
index 3df77a104e81ae60b3345f31127bd39e90ec0405..de6f5fe1560b34bf419ea19db24b72e0969a5bb8 100644
--- a/spec/features/issuables/close_reopen_report_toggle_spec.rb
+++ b/spec/features/issuables/close_reopen_report_toggle_spec.rb
@@ -46,7 +46,7 @@
     let(:issuable) { create(:issue, project: project) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       login_as user
     end
 
@@ -83,7 +83,7 @@
     let(:issuable) { create(:merge_request, source_project: project) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       login_as user
     end
 
diff --git a/spec/features/issues/award_emoji_spec.rb b/spec/features/issues/award_emoji_spec.rb
index 1131e1711bf26ebaa2f0695ec94914d58653eea7..bf60b18873c81abc8cbc48ffd8d064d4d6bac470 100644
--- a/spec/features/issues/award_emoji_spec.rb
+++ b/spec/features/issues/award_emoji_spec.rb
@@ -11,7 +11,7 @@
 
   context 'authorized user' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
     end
 
diff --git a/spec/features/issues/bulk_assignment_labels_spec.rb b/spec/features/issues/bulk_assignment_labels_spec.rb
index 44ddc0326568017fe6cf4a6178c4925dbc2985ad..06cb2e363345be64688b2824786475f26b42abe3 100644
--- a/spec/features/issues/bulk_assignment_labels_spec.rb
+++ b/spec/features/issues/bulk_assignment_labels_spec.rb
@@ -11,7 +11,7 @@
 
   context 'as an allowed user', :js do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
 
       sign_in user
     end
diff --git a/spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb b/spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb
index 32c6ac52f92b9b447216a12db2b4440bfd67dc4a..ada57285abfbb60a972078d7d95e979588519c69 100644
--- a/spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb
+++ b/spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb
@@ -14,7 +14,7 @@ def resolve_all_discussions_link_selector
 
   describe 'as a user with access to the project' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in user
       visit project_merge_request_path(project, merge_request)
     end
diff --git a/spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb b/spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb
index b8222283a983819313274b5e877e6f30942aaed4..b20730bdb22b611e7070c59df905fc0a745597f7 100644
--- a/spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb
+++ b/spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb
@@ -14,7 +14,7 @@ def resolve_discussion_selector
 
   describe 'As a user with access to the project' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in user
       visit project_merge_request_path(project, merge_request)
     end
diff --git a/spec/features/issues/filtered_search/dropdown_assignee_spec.rb b/spec/features/issues/filtered_search/dropdown_assignee_spec.rb
index c8115db9212b9d90823c9a033176f2ee5faa51bd..d011d2545bb21665afb6199280b5161b37b29b43 100644
--- a/spec/features/issues/filtered_search/dropdown_assignee_spec.rb
+++ b/spec/features/issues/filtered_search/dropdown_assignee_spec.rb
@@ -20,9 +20,9 @@ def click_assignee(text)
   end
 
   before do
-    project.add_master(user)
-    project.add_master(user_john)
-    project.add_master(user_jacob)
+    project.add_maintainer(user)
+    project.add_maintainer(user_john)
+    project.add_maintainer(user_jacob)
     sign_in(user)
     create(:issue, project: project)
 
@@ -224,7 +224,7 @@ def click_assignee(text)
       expect(initial_size).to be > 0
 
       new_user = create(:user)
-      project.add_master(new_user)
+      project.add_maintainer(new_user)
       find('.filtered-search-box .clear-search').click
       input_filtered_search('assignee:', submit: false, extra_space: false)
 
diff --git a/spec/features/issues/filtered_search/dropdown_author_spec.rb b/spec/features/issues/filtered_search/dropdown_author_spec.rb
index 70b4f11410da2b3f7f2067d653f8c5ca52e49d6c..50d819a6161f2fcdae6bb56130cba2d3d93a0a66 100644
--- a/spec/features/issues/filtered_search/dropdown_author_spec.rb
+++ b/spec/features/issues/filtered_search/dropdown_author_spec.rb
@@ -28,9 +28,9 @@ def click_author(text)
   end
 
   before do
-    project.add_master(user)
-    project.add_master(user_john)
-    project.add_master(user_jacob)
+    project.add_maintainer(user)
+    project.add_maintainer(user_john)
+    project.add_maintainer(user_jacob)
     sign_in(user)
     create(:issue, project: project)
 
@@ -195,7 +195,7 @@ def click_author(text)
       expect(initial_size).to be > 0
 
       new_user = create(:user)
-      project.add_master(new_user)
+      project.add_maintainer(new_user)
       find('.filtered-search-box .clear-search').click
       filtered_search.set('author')
       send_keys_to_filtered_search(':')
diff --git a/spec/features/issues/filtered_search/dropdown_emoji_spec.rb b/spec/features/issues/filtered_search/dropdown_emoji_spec.rb
index 436625a6f7bc3fa1b94bbfb464d6798ef055e4fb..be229e8aa7dbb4f124966bd653c0218d9f81c351 100644
--- a/spec/features/issues/filtered_search/dropdown_emoji_spec.rb
+++ b/spec/features/issues/filtered_search/dropdown_emoji_spec.rb
@@ -28,7 +28,7 @@ def click_emoji(text)
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     create_list(:award_emoji, 2, user: user, name: 'thumbsup')
     create_list(:award_emoji, 1, user: user, name: 'thumbsdown')
     create_list(:award_emoji, 3, user: user, name: 'star')
diff --git a/spec/features/issues/filtered_search/dropdown_hint_spec.rb b/spec/features/issues/filtered_search/dropdown_hint_spec.rb
index ef40dddfd3af60bd562e90ee18b242e48fc48644..b99c5a7f4e33490453c1f4803a1c9e41e71470e4 100644
--- a/spec/features/issues/filtered_search/dropdown_hint_spec.rb
+++ b/spec/features/issues/filtered_search/dropdown_hint_spec.rb
@@ -13,7 +13,7 @@ def click_hint(text)
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     create(:issue, project: project)
   end
 
diff --git a/spec/features/issues/filtered_search/dropdown_label_spec.rb b/spec/features/issues/filtered_search/dropdown_label_spec.rb
index 18cdb199c705906daecdcc0b3a8a423b3bf64625..ca5d506ab04c8e673c8015f9fea9dd7fe11493bd 100644
--- a/spec/features/issues/filtered_search/dropdown_label_spec.rb
+++ b/spec/features/issues/filtered_search/dropdown_label_spec.rb
@@ -33,7 +33,7 @@ def clear_search_field
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     create(:issue, project: project)
 
diff --git a/spec/features/issues/filtered_search/dropdown_milestone_spec.rb b/spec/features/issues/filtered_search/dropdown_milestone_spec.rb
index 94710c2f71fd60858f9b0f9cb884875976a78ac6..f76d30056da86a404cdb5584cda069af90fe5368 100644
--- a/spec/features/issues/filtered_search/dropdown_milestone_spec.rb
+++ b/spec/features/issues/filtered_search/dropdown_milestone_spec.rb
@@ -29,7 +29,7 @@ def click_static_milestone(text)
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     create(:issue, project: project)
 
diff --git a/spec/features/issues/filtered_search/filter_issues_spec.rb b/spec/features/issues/filtered_search/filter_issues_spec.rb
index 8dca81a8627842766ad2d6d64496fb320c71ccc2..d4949de3f273c1ded420ac94023e581ad1c0add9 100644
--- a/spec/features/issues/filtered_search/filter_issues_spec.rb
+++ b/spec/features/issues/filtered_search/filter_issues_spec.rb
@@ -24,7 +24,7 @@ def expect_no_issues_list
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     create(:issue, project: project, author: user2, title: "Bug report 1")
     create(:issue, project: project, author: user2, title: "Bug report 2")
diff --git a/spec/features/issues/filtered_search/search_bar_spec.rb b/spec/features/issues/filtered_search/search_bar_spec.rb
index 268590da5994cf20a9350f76509bc8280cabd660..8abab3f35d6acf361af00db20715d505b501a024 100644
--- a/spec/features/issues/filtered_search/search_bar_spec.rb
+++ b/spec/features/issues/filtered_search/search_bar_spec.rb
@@ -8,7 +8,7 @@
   let(:filtered_search) { find('.filtered-search') }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     create(:issue, project: project)
 
diff --git a/spec/features/issues/filtered_search/visual_tokens_spec.rb b/spec/features/issues/filtered_search/visual_tokens_spec.rb
index 0ae70c855dbd40085389876ea41f100acfa840ea..6ac7ccd00f7b5ab3295ba59d0ec3daf93c5ff5bf 100644
--- a/spec/features/issues/filtered_search/visual_tokens_spec.rb
+++ b/spec/features/issues/filtered_search/visual_tokens_spec.rb
@@ -22,8 +22,8 @@ def is_input_focused
   end
 
   before do
-    project.add_user(user, :master)
-    project.add_user(user_rock, :master)
+    project.add_user(user, :maintainer)
+    project.add_user(user_rock, :maintainer)
     sign_in(user)
     create(:issue, project: project)
 
diff --git a/spec/features/issues/form_spec.rb b/spec/features/issues/form_spec.rb
index 2cb3ae08b0e6bb20365a749fe78de07021b71e7a..1456a2f0375fdb670f7467b4ffc3f6af588eb359 100644
--- a/spec/features/issues/form_spec.rb
+++ b/spec/features/issues/form_spec.rb
@@ -13,8 +13,8 @@
   let!(:issue)     { create(:issue, project: project, assignees: [user], milestone: milestone) }
 
   before do
-    project.add_master(user)
-    project.add_master(user2)
+    project.add_maintainer(user)
+    project.add_maintainer(user2)
     sign_in(user)
   end
 
@@ -321,7 +321,7 @@
     let(:sub_group_project) { create(:project, group: nested_group_1) }
 
     before do
-      sub_group_project.add_master(user)
+      sub_group_project.add_maintainer(user)
 
       visit new_project_issue_path(sub_group_project)
     end
diff --git a/spec/features/issues/gfm_autocomplete_spec.rb b/spec/features/issues/gfm_autocomplete_spec.rb
index a330ba4c8b3b9f2a4fe82bef83577700d6f7757f..98e37d8011af9e6e9dee73d6629a729f0601f87f 100644
--- a/spec/features/issues/gfm_autocomplete_spec.rb
+++ b/spec/features/issues/gfm_autocomplete_spec.rb
@@ -7,7 +7,7 @@
   let(:issue)   { create(:issue, project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit project_issue_path(project, issue)
 
diff --git a/spec/features/issues/spam_issues_spec.rb b/spec/features/issues/spam_issues_spec.rb
index 73022afbda21cc7148b1423940e1f75db5ab093f..7cce45ff20603a5cc578d6fb2db7984d1e9e6029 100644
--- a/spec/features/issues/spam_issues_spec.rb
+++ b/spec/features/issues/spam_issues_spec.rb
@@ -17,7 +17,7 @@
       recaptcha_private_key: 'test private key'
     )
 
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/issues/todo_spec.rb b/spec/features/issues/todo_spec.rb
index d23f9059d0f6b317b135778768acabb57799eb57..0114178b9be63330575c48f18295b8807e40f1b1 100644
--- a/spec/features/issues/todo_spec.rb
+++ b/spec/features/issues/todo_spec.rb
@@ -6,7 +6,7 @@
   let!(:user)    { create(:user)}
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit project_issue_path(project, issue)
   end
diff --git a/spec/features/issues/update_issues_spec.rb b/spec/features/issues/update_issues_spec.rb
index cd6a5977eb8903e16a670b6bc18e14a81401213b..845a7c5fc4207b87643825f4d900b30453efc51d 100644
--- a/spec/features/issues/update_issues_spec.rb
+++ b/spec/features/issues/update_issues_spec.rb
@@ -6,7 +6,7 @@
   let!(:user)      { create(:user)}
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/issues/user_uses_slash_commands_spec.rb b/spec/features/issues/user_uses_slash_commands_spec.rb
index a28378b22ca1aaa00ddf793d41fe8256a64683e8..5926e442f24da13f3ab4a0528282a80f2968e323 100644
--- a/spec/features/issues/user_uses_slash_commands_spec.rb
+++ b/spec/features/issues/user_uses_slash_commands_spec.rb
@@ -12,7 +12,7 @@
     let(:project) { create(:project, :public) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
       visit project_issue_path(project, issue)
     end
@@ -196,7 +196,7 @@
         let(:target_project) { create(:project, :public) }
 
         before do
-          target_project.add_master(user)
+          target_project.add_maintainer(user)
           gitlab_sign_out
           sign_in(user)
           visit project_issue_path(project, issue)
@@ -258,7 +258,7 @@
         let(:wontfix_target)  { create(:label, project: target_project, title: 'wontfix') }
 
         before do
-          target_project.add_master(user)
+          target_project.add_maintainer(user)
           gitlab_sign_out
           sign_in(user)
           visit project_issue_path(project, issue)
diff --git a/spec/features/issues_spec.rb b/spec/features/issues_spec.rb
index c6dcd97631d8b54ba31db596ae926579ab6b18ea..4d9b8a10e043405f49e2f8af46f01ce07bb19fb9 100644
--- a/spec/features/issues_spec.rb
+++ b/spec/features/issues_spec.rb
@@ -398,7 +398,7 @@
 
       before do
         stub_incoming_email_setting(enabled: true, address: "p+%{key}@gl.ab")
-        project1.add_master(user)
+        project1.add_maintainer(user)
         visit namespace_project_issues_path(user.namespace, project1)
       end
 
diff --git a/spec/features/markdown/gitlab_flavored_markdown_spec.rb b/spec/features/markdown/gitlab_flavored_markdown_spec.rb
index 3c2186b359862eb00761a7ebc2175bfdca17fcf4..6997ca48427758819c18417d359abac5e5f88493 100644
--- a/spec/features/markdown/gitlab_flavored_markdown_spec.rb
+++ b/spec/features/markdown/gitlab_flavored_markdown_spec.rb
@@ -6,7 +6,7 @@
   let(:issue) { create(:issue, project: project) }
   let(:fred) do
     create(:user, name: 'fred') do |user|
-      project.add_master(user)
+      project.add_maintainer(user)
     end
   end
 
diff --git a/spec/features/merge_request/maintainer_edits_fork_spec.rb b/spec/features/merge_request/maintainer_edits_fork_spec.rb
index 1808d0c0a0c044745e821b15c5e91f31536a51e4..7839b97122c25c43802cb42e61e1946bb0ab7703 100644
--- a/spec/features/merge_request/maintainer_edits_fork_spec.rb
+++ b/spec/features/merge_request/maintainer_edits_fork_spec.rb
@@ -18,7 +18,7 @@
   end
 
   before do
-    target_project.add_master(user)
+    target_project.add_maintainer(user)
     sign_in(user)
 
     visit project_merge_request_path(target_project, merge_request)
diff --git a/spec/features/merge_request/user_allows_commits_from_memebers_who_can_merge_spec.rb b/spec/features/merge_request/user_allows_commits_from_memebers_who_can_merge_spec.rb
index 0af37d7653999ef291188ba5b91eb215151f4e0a..0ccab5b2face8ee11ec519ce2d62ef2ed46a177f 100644
--- a/spec/features/merge_request/user_allows_commits_from_memebers_who_can_merge_spec.rb
+++ b/spec/features/merge_request/user_allows_commits_from_memebers_who_can_merge_spec.rb
@@ -71,7 +71,7 @@ def visit_new_merge_request
     end
 
     before do
-      target_project.add_master(member)
+      target_project.add_maintainer(member)
 
       sign_in(member)
     end
diff --git a/spec/features/merge_request/user_cherry_picks_spec.rb b/spec/features/merge_request/user_cherry_picks_spec.rb
index 61d1bdaa95aba69ac6f6ceaf30a0b5a09bc86e01..c6ec3f08cc5ee6d3b7bcb600bbb265c7ae7f1ad7 100644
--- a/spec/features/merge_request/user_cherry_picks_spec.rb
+++ b/spec/features/merge_request/user_cherry_picks_spec.rb
@@ -7,7 +7,7 @@
   let(:merge_request) { create(:merge_request_with_diffs, source_project: project, author: user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/merge_request/user_customizes_merge_commit_message_spec.rb b/spec/features/merge_request/user_customizes_merge_commit_message_spec.rb
index e1e70b6d260b260e6e46c7a0c3edaefad879dd3a..8d2d4279d3c0e22fb2b1be48a9b1bc4dfa23fccc 100644
--- a/spec/features/merge_request/user_customizes_merge_commit_message_spec.rb
+++ b/spec/features/merge_request/user_customizes_merge_commit_message_spec.rb
@@ -32,7 +32,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit project_merge_request_path(project, merge_request)
   end
diff --git a/spec/features/merge_request/user_merges_immediately_spec.rb b/spec/features/merge_request/user_merges_immediately_spec.rb
index b16fc9bfc894410ba7b6f451a9b4192598a685f1..ea61f9675bc5bc6e9a69080ea6b2ec94843319f0 100644
--- a/spec/features/merge_request/user_merges_immediately_spec.rb
+++ b/spec/features/merge_request/user_merges_immediately_spec.rb
@@ -19,7 +19,7 @@
   context 'when there is active pipeline for merge request' do
     before do
       create(:ci_build, pipeline: pipeline)
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
       visit project_merge_request_path(project, merge_request)
     end
diff --git a/spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb b/spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb
index a045791f6b4bf66247ed34ca5896d7dd56c9db1d..8372b61f872140558c397a6c6b11ce46e31977a2 100644
--- a/spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb
+++ b/spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb
@@ -5,7 +5,7 @@
   let(:project)       { merge_request.target_project }
 
   before do
-    project.add_master(merge_request.author)
+    project.add_maintainer(merge_request.author)
     sign_in(merge_request.author)
   end
 
diff --git a/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb b/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb
index db92a3504f31efa9fde21e34ce521601a01cba60..53ed5d7859863aa9c18ff7d90fc8d4346ec46288 100644
--- a/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb
+++ b/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb
@@ -17,7 +17,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   context 'when there is active pipeline for merge request' do
diff --git a/spec/features/merge_request/user_posts_notes_spec.rb b/spec/features/merge_request/user_posts_notes_spec.rb
index fa819cbc38540c6650896d8b090499e564f3a1ef..260c5f9c28b169ccb7348b8a6ce91d691482719a 100644
--- a/spec/features/merge_request/user_posts_notes_spec.rb
+++ b/spec/features/merge_request/user_posts_notes_spec.rb
@@ -14,7 +14,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit project_merge_request_path(project, merge_request)
   end
diff --git a/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb b/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb
index a0b9d6cb0599d8c213dd4ec6de10deea0236457d..bf4d5396df95acbafbe2d3bebfb0729702d29b35 100644
--- a/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb
+++ b/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb
@@ -19,7 +19,7 @@
 
   context 'no discussions' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
       note.destroy
       visit_merge_request
@@ -33,7 +33,7 @@
 
   context 'as authorized user' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
       visit_merge_request
     end
diff --git a/spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb b/spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb
index 0a8296bd72277f70a0037c3d53289fd1f08464a1..428eb414274bac0d7605979090cf8d2ebd18974f 100644
--- a/spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb
+++ b/spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb
@@ -19,7 +19,7 @@
   let!(:note) { create(:diff_note_on_merge_request, project: project, noteable: merge_request, position: position) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in user
 
     set_cookie('sidebar_collapsed', 'true')
diff --git a/spec/features/merge_request/user_sees_closing_issues_message_spec.rb b/spec/features/merge_request/user_sees_closing_issues_message_spec.rb
index 726f35557a7b49092bdd4754d46d490b3f8e9f72..d7c784b14c5b819aa5c78f3ddcba57f83462234c 100644
--- a/spec/features/merge_request/user_sees_closing_issues_message_spec.rb
+++ b/spec/features/merge_request/user_sees_closing_issues_message_spec.rb
@@ -18,7 +18,7 @@
   let(:merge_request_title) { 'Merge Request Title' }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit project_merge_request_path(project, merge_request)
     wait_for_requests
diff --git a/spec/features/merge_request/user_sees_deleted_target_branch_spec.rb b/spec/features/merge_request/user_sees_deleted_target_branch_spec.rb
index 01115318370660453a885f496b722c88fd2ce289..46c21a2b155080d74689f202f7a41e625a0bdd2a 100644
--- a/spec/features/merge_request/user_sees_deleted_target_branch_spec.rb
+++ b/spec/features/merge_request/user_sees_deleted_target_branch_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { project.creator }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     DeleteBranchService.new(project, user).execute('feature')
     sign_in(user)
     visit project_merge_request_path(project, merge_request)
diff --git a/spec/features/merge_request/user_sees_discussions_spec.rb b/spec/features/merge_request/user_sees_discussions_spec.rb
index 10390bd5864bff11c835b4c5a59a4868846d38ff..7b8c3bacfe29600280574cca44a16e3faf26d7c9 100644
--- a/spec/features/merge_request/user_sees_discussions_spec.rb
+++ b/spec/features/merge_request/user_sees_discussions_spec.rb
@@ -6,7 +6,7 @@
   let(:merge_request) { create(:merge_request, source_project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/merge_request/user_sees_empty_state_spec.rb b/spec/features/merge_request/user_sees_empty_state_spec.rb
index a939c7e90018644965e421dbf0fbe192792d41b0..482f31b02d455f5ea9e24b8c2654feaf6ea19e27 100644
--- a/spec/features/merge_request/user_sees_empty_state_spec.rb
+++ b/spec/features/merge_request/user_sees_empty_state_spec.rb
@@ -5,7 +5,7 @@
   let(:user)    { project.creator }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/merge_request/user_sees_merge_button_depending_on_unresolved_discussions_spec.rb b/spec/features/merge_request/user_sees_merge_button_depending_on_unresolved_discussions_spec.rb
index 85df43df38e4b1f754b42e66a2f493b3814e50ad..f6b771facf8eb5bae9dc912037c52213cfa75a03 100644
--- a/spec/features/merge_request/user_sees_merge_button_depending_on_unresolved_discussions_spec.rb
+++ b/spec/features/merge_request/user_sees_merge_button_depending_on_unresolved_discussions_spec.rb
@@ -6,7 +6,7 @@
   let!(:merge_request) { create(:merge_request_with_diff_notes, source_project: project, author: user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/merge_request/user_sees_merge_widget_spec.rb b/spec/features/merge_request/user_sees_merge_widget_spec.rb
index 51a65407aec5ba947cb1e3b33ded50232faa3dd5..b6b3844f2aea21910bb47a97c6b3e53a884fc1a5 100644
--- a/spec/features/merge_request/user_sees_merge_widget_spec.rb
+++ b/spec/features/merge_request/user_sees_merge_widget_spec.rb
@@ -10,8 +10,8 @@
   let(:merge_request_in_only_mwps_project) { create(:merge_request, source_project: project_only_mwps) }
 
   before do
-    project.add_master(user)
-    project_only_mwps.add_master(user)
+    project.add_maintainer(user)
+    project_only_mwps.add_maintainer(user)
     sign_in(user)
   end
 
@@ -275,7 +275,7 @@
     let(:user2) { create(:user) }
 
     before do
-      project.add_master(user2)
+      project.add_maintainer(user2)
       sign_out(:user)
       sign_in(user2)
       merge_request.update(target_project: fork_project)
diff --git a/spec/features/merge_request/user_sees_pipelines_spec.rb b/spec/features/merge_request/user_sees_pipelines_spec.rb
index a42c016392b50c3f81a9dab95627313a81dbf5e7..45cccbee63e7960c038083c09fd4dd3bd778bcea 100644
--- a/spec/features/merge_request/user_sees_pipelines_spec.rb
+++ b/spec/features/merge_request/user_sees_pipelines_spec.rb
@@ -7,7 +7,7 @@
     let(:user) { project.creator }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
     end
 
@@ -70,7 +70,7 @@
     end
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in user
     end
 
diff --git a/spec/features/merge_request/user_sees_versions_spec.rb b/spec/features/merge_request/user_sees_versions_spec.rb
index 11e0806ba62afa215456343f21d41d9294dd0659..f42b4dcbb477279a3c115830d731af9d4f2b6e4f 100644
--- a/spec/features/merge_request/user_sees_versions_spec.rb
+++ b/spec/features/merge_request/user_sees_versions_spec.rb
@@ -10,7 +10,7 @@
   let!(:params) { {} }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit diffs_project_merge_request_path(project, merge_request, params)
   end
diff --git a/spec/features/merge_request/user_sees_wip_help_message_spec.rb b/spec/features/merge_request/user_sees_wip_help_message_spec.rb
index bc25243244ec0049c036fea4e1330171a2c7b10e..92cc73ddf1fecb1c9e421625caf037d04901078d 100644
--- a/spec/features/merge_request/user_sees_wip_help_message_spec.rb
+++ b/spec/features/merge_request/user_sees_wip_help_message_spec.rb
@@ -5,7 +5,7 @@
   let(:user)    { project.creator }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb b/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
index ed6e29335d145a804074eff153bfc629cd4de1d6..ae41cf905761670490c6cb84e3857aeb904eb81e 100644
--- a/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
+++ b/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
@@ -11,7 +11,7 @@ def select_source_branch(branch_name)
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/merge_request/user_toggles_whitespace_changes_spec.rb b/spec/features/merge_request/user_toggles_whitespace_changes_spec.rb
index 2e95a6280132bd29c157b493ab628ff6d8ec5124..dd860382daa8ba904426fa8f6905eb4ffd80c2da 100644
--- a/spec/features/merge_request/user_toggles_whitespace_changes_spec.rb
+++ b/spec/features/merge_request/user_toggles_whitespace_changes_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { project.creator }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit diffs_project_merge_request_path(project, merge_request)
   end
diff --git a/spec/features/merge_request/user_uses_slash_commands_spec.rb b/spec/features/merge_request/user_uses_slash_commands_spec.rb
index 83ad4b45b5a03357aa9ec3b00f3f590be58fc41f..b81478a481f85504ae5ed28d8aae750c735f7456 100644
--- a/spec/features/merge_request/user_uses_slash_commands_spec.rb
+++ b/spec/features/merge_request/user_uses_slash_commands_spec.rb
@@ -21,7 +21,7 @@
     let!(:milestone) { create(:milestone, project: project, title: 'ASAP') }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     describe 'time tracking' do
@@ -147,7 +147,7 @@
       let(:new_url_opts) { { merge_request: { source_branch: 'feature' } } }
 
       before do
-        another_project.add_master(user)
+        another_project.add_maintainer(user)
         sign_in(user)
       end
 
diff --git a/spec/features/merge_requests/user_mass_updates_spec.rb b/spec/features/merge_requests/user_mass_updates_spec.rb
index 199ba7e87ada494856242e0659add0ec88bf2fd9..bb327159cb0f1bf7a58b5d1757fdc5d7446c2878 100644
--- a/spec/features/merge_requests/user_mass_updates_spec.rb
+++ b/spec/features/merge_requests/user_mass_updates_spec.rb
@@ -6,7 +6,7 @@
   let!(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/merge_requests/user_squashes_merge_request_spec.rb b/spec/features/merge_requests/user_squashes_merge_request_spec.rb
index da3d6772eeb43edf934760c65cbf47268e89f754..ec1153b7f7fab9d9f91a9861e627429636cb8bd7 100644
--- a/spec/features/merge_requests/user_squashes_merge_request_spec.rb
+++ b/spec/features/merge_requests/user_squashes_merge_request_spec.rb
@@ -46,7 +46,7 @@ def accept_mr
     # Prevent source branch from being removed so we can use be_merged_to_root_ref
     # method to check if squash was performed or not
     allow_any_instance_of(MergeRequest).to receive(:force_remove_source_branch?).and_return(false)
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in user
   end
diff --git a/spec/features/milestone_spec.rb b/spec/features/milestone_spec.rb
index b12aba2c2637020f8ad79e63b7dff28e90b13576..a0673b12738825e13f420ab937da927978e8fb9b 100644
--- a/spec/features/milestone_spec.rb
+++ b/spec/features/milestone_spec.rb
@@ -7,7 +7,7 @@
 
   before do
     create(:group_member, group: group, user: user)
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/profiles/user_visits_notifications_tab_spec.rb b/spec/features/profiles/user_visits_notifications_tab_spec.rb
index 689196c2258618b6dbe2301564b0f6c1fbd1c2a1..db797bb586fae43948c980a77a16f2dc9921f323 100644
--- a/spec/features/profiles/user_visits_notifications_tab_spec.rb
+++ b/spec/features/profiles/user_visits_notifications_tab_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit(profile_notifications_path)
   end
diff --git a/spec/features/profiles/user_visits_profile_spec.rb b/spec/features/profiles/user_visits_profile_spec.rb
index 713112477c8df3f01436d55b8c37f7c5aed25b54..2dc4547b2d86fcef353f3b8b1d149d4af8936727 100644
--- a/spec/features/profiles/user_visits_profile_spec.rb
+++ b/spec/features/profiles/user_visits_profile_spec.rb
@@ -29,7 +29,7 @@
     let!(:project) do
       create(:project, :repository, namespace: group) do |project|
         create(:closed_issue_event, project: project)
-        project.add_master(user)
+        project.add_maintainer(user)
       end
     end
 
diff --git a/spec/features/project_variables_spec.rb b/spec/features/project_variables_spec.rb
index 0ba2224359ac1786b5e9fb86006a2d8b40ce7181..a93df3696d2cd9469d2e65a83b6fd07b7e6d0dfc 100644
--- a/spec/features/project_variables_spec.rb
+++ b/spec/features/project_variables_spec.rb
@@ -8,7 +8,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
     project.variables << variable
 
     visit page_path
diff --git a/spec/features/projects/actve_tabs_spec.rb b/spec/features/projects/actve_tabs_spec.rb
index ce5606b63aefdffb764576f499c926ecfc475781..7c6110c533b019877629db148cd1e07d62cf9d5d 100644
--- a/spec/features/projects/actve_tabs_spec.rb
+++ b/spec/features/projects/actve_tabs_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project, :repository) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/awards/user_interacts_with_awards_in_issue_spec.rb b/spec/features/projects/awards/user_interacts_with_awards_in_issue_spec.rb
index 12e07647ecd3e43aac46882aafecbf361d1def56..4d860893abe0c6f8144f253414fda1f605fcbdf9 100644
--- a/spec/features/projects/awards/user_interacts_with_awards_in_issue_spec.rb
+++ b/spec/features/projects/awards/user_interacts_with_awards_in_issue_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_issue_path(project, issue))
diff --git a/spec/features/projects/badges/list_spec.rb b/spec/features/projects/badges/list_spec.rb
index da87039ad4453b497a71cf09c8cb1fe0a4655ffe..e30b908c60d480795415ff46bcac447214a55a3f 100644
--- a/spec/features/projects/badges/list_spec.rb
+++ b/spec/features/projects/badges/list_spec.rb
@@ -4,7 +4,7 @@
   before do
     user = create(:user)
     project = create(:project, :repository)
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit project_settings_ci_cd_path(project)
   end
diff --git a/spec/features/projects/blobs/blob_show_spec.rb b/spec/features/projects/blobs/blob_show_spec.rb
index 7280d421ceac39b4bef52e7c7d816c47576a17ae..275894288962315a44e1aeba5924b1355634d466 100644
--- a/spec/features/projects/blobs/blob_show_spec.rb
+++ b/spec/features/projects/blobs/blob_show_spec.rb
@@ -144,7 +144,7 @@ def visit_blob(path, anchor: nil, ref: 'master')
 
   context 'Markdown file (stored in LFS)' do
     before do
-      project.add_master(project.creator)
+      project.add_maintainer(project.creator)
 
       Files::CreateService.new(
         project,
@@ -237,7 +237,7 @@ def visit_blob(path, anchor: nil, ref: 'master')
 
   context 'PDF file' do
     before do
-      project.add_master(project.creator)
+      project.add_maintainer(project.creator)
 
       Files::CreateService.new(
         project,
@@ -350,7 +350,7 @@ def visit_blob(path, anchor: nil, ref: 'master')
 
   context 'empty file' do
     before do
-      project.add_master(project.creator)
+      project.add_maintainer(project.creator)
 
       Files::CreateService.new(
         project,
@@ -418,7 +418,7 @@ def visit_blob(path, anchor: nil, ref: 'master')
 
   context '.gitlab-ci.yml' do
     before do
-      project.add_master(project.creator)
+      project.add_maintainer(project.creator)
 
       Files::CreateService.new(
         project,
@@ -446,7 +446,7 @@ def visit_blob(path, anchor: nil, ref: 'master')
 
   context '.gitlab/route-map.yml' do
     before do
-      project.add_master(project.creator)
+      project.add_maintainer(project.creator)
 
       Files::CreateService.new(
         project,
@@ -494,7 +494,7 @@ def visit_blob(path, anchor: nil, ref: 'master')
 
   context '*.gemspec' do
     before do
-      project.add_master(project.creator)
+      project.add_maintainer(project.creator)
 
       Files::CreateService.new(
         project,
diff --git a/spec/features/projects/blobs/edit_spec.rb b/spec/features/projects/blobs/edit_spec.rb
index 2657f5d999ff187b6b50524a8be23cd4f2fe3d92..0e036b4ea681c49d0a6fcb88667f22033bc89411 100644
--- a/spec/features/projects/blobs/edit_spec.rb
+++ b/spec/features/projects/blobs/edit_spec.rb
@@ -134,11 +134,11 @@ def edit_and_commit(commit_changes: true)
       end
     end
 
-    context 'as master' do
+    context 'as maintainer' do
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
         visit project_edit_blob_path(project, tree_join(branch, file_path))
       end
diff --git a/spec/features/projects/blobs/user_creates_new_blob_in_new_project_spec.rb b/spec/features/projects/blobs/user_creates_new_blob_in_new_project_spec.rb
index 0b7988f63354430d33f89d1c9b99f24784cff893..8a0b92190dd319554e05feb32bc37e130c601fac 100644
--- a/spec/features/projects/blobs/user_creates_new_blob_in_new_project_spec.rb
+++ b/spec/features/projects/blobs/user_creates_new_blob_in_new_project_spec.rb
@@ -24,9 +24,9 @@
     end
   end
 
-  describe 'as a master' do
+  describe 'as a maintainer' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it_behaves_like 'creating a file'
diff --git a/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb b/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb
index 0be434a567bc9e65cef4e50e21d406da18c1a83f..0faf73db7da9e0ab05abb58640371726af43640a 100644
--- a/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb
+++ b/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb
@@ -6,7 +6,7 @@
   let(:toggle) { find('.create-from .dropdown-menu-toggle') }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
     visit new_project_branch_path(project)
diff --git a/spec/features/projects/branches_spec.rb b/spec/features/projects/branches_spec.rb
index b7ce1b9993a99612dae343bba4ae3be68706286e..97757e8da92c0133716b1c5284f313b53a3bc546 100644
--- a/spec/features/projects/branches_spec.rb
+++ b/spec/features/projects/branches_spec.rb
@@ -182,10 +182,10 @@
     end
   end
 
-  context 'logged in as master' do
+  context 'logged in as maintainer' do
     before do
       sign_in(user)
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     describe 'Initial branches page' do
diff --git a/spec/features/projects/clusters/applications_spec.rb b/spec/features/projects/clusters/applications_spec.rb
index f57647a348f4376be88a2a2064fb6a02965a115c..a65ca66235029acb0f646862f0cc7ba0fc638c6c 100644
--- a/spec/features/projects/clusters/applications_spec.rb
+++ b/spec/features/projects/clusters/applications_spec.rb
@@ -7,7 +7,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/clusters/gcp_spec.rb b/spec/features/projects/clusters/gcp_spec.rb
index bd8cb9b4b946a8911c59b5ecc45c12c2838ebc63..31e3ebf675d63e705c5122b1ee74372553ab10e5 100644
--- a/spec/features/projects/clusters/gcp_spec.rb
+++ b/spec/features/projects/clusters/gcp_spec.rb
@@ -7,7 +7,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     gitlab_sign_in(user)
     allow(Projects::ClustersController).to receive(:STATUS_POLLING_INTERVAL) { 100 }
   end
diff --git a/spec/features/projects/clusters/user_spec.rb b/spec/features/projects/clusters/user_spec.rb
index a49dd72a91f57801ed55f76754c30fb56bdae1ae..babf47cc3415e706efa72af711adb7c299f003d1 100644
--- a/spec/features/projects/clusters/user_spec.rb
+++ b/spec/features/projects/clusters/user_spec.rb
@@ -7,7 +7,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     gitlab_sign_in(user)
     allow(Projects::ClustersController).to receive(:STATUS_POLLING_INTERVAL) { 100 }
   end
diff --git a/spec/features/projects/clusters_spec.rb b/spec/features/projects/clusters_spec.rb
index a7274c99704161cdb9b67152cf51e34a32b1df53..91eac9c8278b354fece2de93b8433965e9c3fb87 100644
--- a/spec/features/projects/clusters_spec.rb
+++ b/spec/features/projects/clusters_spec.rb
@@ -7,7 +7,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     gitlab_sign_in(user)
   end
 
diff --git a/spec/features/projects/commit/builds_spec.rb b/spec/features/projects/commit/builds_spec.rb
index da0552441fe7205895a145714d5637775c87500e..bd254caddfba11b77a638a08970220512a62b625 100644
--- a/spec/features/projects/commit/builds_spec.rb
+++ b/spec/features/projects/commit/builds_spec.rb
@@ -5,7 +5,7 @@
 
   before do
     user = create(:user)
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/commit/cherry_pick_spec.rb b/spec/features/projects/commit/cherry_pick_spec.rb
index 1df45865d6fb102f7768da3089fe53eb680a7168..bc3c00dafe2850e6be87de3c4d5c612682bcbe6a 100644
--- a/spec/features/projects/commit/cherry_pick_spec.rb
+++ b/spec/features/projects/commit/cherry_pick_spec.rb
@@ -9,7 +9,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
     visit project_commit_path(project, master_pickable_commit.id)
   end
 
diff --git a/spec/features/projects/commit/diff_notes_spec.rb b/spec/features/projects/commit/diff_notes_spec.rb
index 6d66889761fc3c8551c5fff8358396d1ba2bafc2..e2aefa35fad9e1594b62d98b57d238ffd1b52634 100644
--- a/spec/features/projects/commit/diff_notes_spec.rb
+++ b/spec/features/projects/commit/diff_notes_spec.rb
@@ -7,7 +7,7 @@
   let(:project)       { create(:project, :public, :repository) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in user
   end
 
diff --git a/spec/features/projects/commits/user_browses_commits_spec.rb b/spec/features/projects/commits/user_browses_commits_spec.rb
index 35ed6620548fed185c37ae1a439c690875a8c1d5..23d8d606790573cdea4c2f497701ff938ae159a4 100644
--- a/spec/features/projects/commits/user_browses_commits_spec.rb
+++ b/spec/features/projects/commits/user_browses_commits_spec.rb
@@ -7,7 +7,7 @@
   let(:project) { create(:project, :repository, namespace: user.namespace) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/compare_spec.rb b/spec/features/projects/compare_spec.rb
index 7e863d9df32883fed88cea282e70038879be1828..696008849099701987071373ee5ed7beabceb81d 100644
--- a/spec/features/projects/compare_spec.rb
+++ b/spec/features/projects/compare_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project, :repository) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in user
   end
 
diff --git a/spec/features/projects/deploy_keys_spec.rb b/spec/features/projects/deploy_keys_spec.rb
index 1552a3512dde7e360f1efcaa1149f04fe37ce038..e12532e97fa9bfc627cf5436b003e86642c05324 100644
--- a/spec/features/projects/deploy_keys_spec.rb
+++ b/spec/features/projects/deploy_keys_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project_empty_repo) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/diffs/diff_show_spec.rb b/spec/features/projects/diffs/diff_show_spec.rb
index 237157cd89d52e58cd7110b3f14736f604d58717..df05625d105c53b752ca1fd8a0e2de44110891cf 100644
--- a/spec/features/projects/diffs/diff_show_spec.rb
+++ b/spec/features/projects/diffs/diff_show_spec.rb
@@ -24,7 +24,7 @@ def visit_commit(sha, anchor: nil)
 
   context 'Ruby file (stored in LFS)' do
     before do
-      project.add_master(project.creator)
+      project.add_maintainer(project.creator)
 
       @commit_id = Files::CreateService.new(
         project,
diff --git a/spec/features/projects/environments/environment_spec.rb b/spec/features/projects/environments/environment_spec.rb
index 624f7139605f4935f8bb9b26304c89573f969193..4c5dda29fee30977d462a7750baceed448c21dcf 100644
--- a/spec/features/projects/environments/environment_spec.rb
+++ b/spec/features/projects/environments/environment_spec.rb
@@ -102,8 +102,8 @@
 
           context 'with terminal' do
             shared_examples 'same behavior between KubernetesService and Platform::Kubernetes' do
-              context 'for project master' do
-                let(:role) { :master }
+              context 'for project maintainer' do
+                let(:role) { :maintainer }
 
                 it 'it shows the terminal button' do
                   expect(page).to have_terminal_button
diff --git a/spec/features/projects/environments/environments_spec.rb b/spec/features/projects/environments/environments_spec.rb
index c2ed753c409e6877d94e25bf7aa1cc52cdc37f3a..f0890018286f659ef797492d1bdd1f544a0b6b8d 100644
--- a/spec/features/projects/environments/environments_spec.rb
+++ b/spec/features/projects/environments/environments_spec.rb
@@ -229,8 +229,8 @@ def stop_button_selector
 
         context 'when kubernetes terminal is available' do
           shared_examples 'same behavior between KubernetesService and Platform::Kubernetes' do
-            context 'for project master' do
-              let(:role) { :master }
+            context 'for project maintainer' do
+              let(:role) { :maintainer }
 
               it 'shows the terminal button' do
                 expect(page).to have_terminal_button
diff --git a/spec/features/projects/features_visibility_spec.rb b/spec/features/projects/features_visibility_spec.rb
index b0eb7c5b42acad9385d858fbfbc792a8c0ba6f8c..ab16fdee88350eaaa1cae9dbe25f436c925dd919 100644
--- a/spec/features/projects/features_visibility_spec.rb
+++ b/spec/features/projects/features_visibility_spec.rb
@@ -8,7 +8,7 @@
 
   describe 'project features visibility selectors', :js do
     before do
-      project.add_master(member)
+      project.add_maintainer(member)
       sign_in(member)
     end
 
@@ -165,7 +165,7 @@
 
   describe 'repository visibility', :js do
     before do
-      project.add_master(member)
+      project.add_maintainer(member)
       sign_in(member)
       visit edit_project_path(project)
     end
diff --git a/spec/features/projects/files/project_owner_creates_license_file_spec.rb b/spec/features/projects/files/project_owner_creates_license_file_spec.rb
index b410199fd1fc3338fe4d4387f7150a17ce4dc57c..ac6c8c337fa4d7753e07b84078f5d1aab9c6653e 100644
--- a/spec/features/projects/files/project_owner_creates_license_file_spec.rb
+++ b/spec/features/projects/files/project_owner_creates_license_file_spec.rb
@@ -2,16 +2,16 @@
 
 describe 'Projects > Files > Project owner creates a license file', :js do
   let(:project) { create(:project, :repository) }
-  let(:project_master) { project.owner }
+  let(:project_maintainer) { project.owner }
 
   before do
-    project.repository.delete_file(project_master, 'LICENSE',
+    project.repository.delete_file(project_maintainer, 'LICENSE',
       message: 'Remove LICENSE', branch_name: 'master')
-    sign_in(project_master)
+    sign_in(project_maintainer)
     visit project_path(project)
   end
 
-  it 'project master creates a license file manually from a template' do
+  it 'project maintainer creates a license file manually from a template' do
     visit project_tree_path(project, project.repository.root_ref)
     find('.add-to-tree').click
     click_link 'New file'
@@ -35,7 +35,7 @@
     expect(page).to have_content("Copyright (c) #{Time.now.year} #{project.namespace.human_name}")
   end
 
-  it 'project master creates a license file from the "Add license" link' do
+  it 'project maintainer creates a license file from the "Add license" link' do
     click_link 'Add License'
 
     expect(page).to have_content('New file')
diff --git a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
index 53d8ace7c946a6598ea8331a9a3655e0db5562b9..801291c1f77356ea65232f77a9d5d03a122afc81 100644
--- a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
+++ b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
@@ -2,13 +2,13 @@
 
 describe 'Projects > Files > Project owner sees a link to create a license file in empty project', :js do
   let(:project) { create(:project_empty_repo) }
-  let(:project_master) { project.owner }
+  let(:project_maintainer) { project.owner }
 
   before do
-    sign_in(project_master)
+    sign_in(project_maintainer)
   end
 
-  it 'project master creates a license file from a template' do
+  it 'project maintainer creates a license file from a template' do
     visit project_path(project)
     click_on 'Add License'
     expect(page).to have_content('New file')
diff --git a/spec/features/projects/files/template_selector_menu_spec.rb b/spec/features/projects/files/template_selector_menu_spec.rb
index b7e1e172af988fcffb2b38383e4da28c734cc927..6b313824acd2a5e9e46a83b2bb509f22cbe2dca2 100644
--- a/spec/features/projects/files/template_selector_menu_spec.rb
+++ b/spec/features/projects/files/template_selector_menu_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in user
   end
 
diff --git a/spec/features/projects/files/user_creates_files_spec.rb b/spec/features/projects/files/user_creates_files_spec.rb
index 208cc8d81f76eefa89c10732e1063b92554f4b1a..d4dda43c823b9fd8e3d567ec5a8a6665927b8a18 100644
--- a/spec/features/projects/files/user_creates_files_spec.rb
+++ b/spec/features/projects/files/user_creates_files_spec.rb
@@ -12,7 +12,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/files/user_deletes_files_spec.rb b/spec/features/projects/files/user_deletes_files_spec.rb
index 36d3e001a64e60a4d2f99bf1e68e4c0b45d6b763..0e9f83a16cef91ef22b1bee7a7feda89fd90c0da 100644
--- a/spec/features/projects/files/user_deletes_files_spec.rb
+++ b/spec/features/projects/files/user_deletes_files_spec.rb
@@ -17,7 +17,7 @@
 
   context 'when an user has write access' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       visit(project_tree_path_root_ref)
     end
 
diff --git a/spec/features/projects/files/user_edits_files_spec.rb b/spec/features/projects/files/user_edits_files_spec.rb
index dc6e4fd27cbdd3690aae70ad9b6c9a10f2841358..ccc1bc1bc103728395d13dfbca79b683b597eeb2 100644
--- a/spec/features/projects/files/user_edits_files_spec.rb
+++ b/spec/features/projects/files/user_edits_files_spec.rb
@@ -31,7 +31,7 @@
 
   context 'when an user has write access' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       visit(project_tree_path_root_ref)
     end
 
diff --git a/spec/features/projects/files/user_find_file_spec.rb b/spec/features/projects/files/user_find_file_spec.rb
index df405e70dd42dde9ae50efaae3fb7f98a283428a..e2d881b34d22f4939620cd705335eb334ce9b00d 100644
--- a/spec/features/projects/files/user_find_file_spec.rb
+++ b/spec/features/projects/files/user_find_file_spec.rb
@@ -6,7 +6,7 @@
 
   before do
     sign_in(user)
-    project.add_master(user)
+    project.add_maintainer(user)
 
     visit project_tree_path(project, project.repository.root_ref)
   end
diff --git a/spec/features/projects/files/user_reads_pipeline_status_spec.rb b/spec/features/projects/files/user_reads_pipeline_status_spec.rb
index 2d0b447913e227adad8cde8e806329356e2ab13d..ff0aa933a3e14b1dd22505a6bf07925097128492 100644
--- a/spec/features/projects/files/user_reads_pipeline_status_spec.rb
+++ b/spec/features/projects/files/user_reads_pipeline_status_spec.rb
@@ -7,7 +7,7 @@
   let(:x110_pipeline) { create_pipeline('x1.1.0', 'failed') }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     project.repository.add_tag(user, 'x1.1.0', 'v1.1.0')
     v110_pipeline
diff --git a/spec/features/projects/files/user_replaces_files_spec.rb b/spec/features/projects/files/user_replaces_files_spec.rb
index 9ac3417b671d7be6eba2b9380bc715d6c54b0c2c..3a81e77c4ba947a7f94460c1b245e6e8bd3edf6b 100644
--- a/spec/features/projects/files/user_replaces_files_spec.rb
+++ b/spec/features/projects/files/user_replaces_files_spec.rb
@@ -19,7 +19,7 @@
 
   context 'when an user has write access' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       visit(project_tree_path_root_ref)
     end
 
diff --git a/spec/features/projects/files/user_uploads_files_spec.rb b/spec/features/projects/files/user_uploads_files_spec.rb
index 8b212faa29d6b344991de56de784de3f27a053d7..af3fc528a207dd7bbf12aabbaed5b7b4db3e2c61 100644
--- a/spec/features/projects/files/user_uploads_files_spec.rb
+++ b/spec/features/projects/files/user_uploads_files_spec.rb
@@ -14,7 +14,7 @@
   let(:project2_tree_path_root_ref) { project_tree_path(project2, project2.repository.root_ref) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/fork_spec.rb b/spec/features/projects/fork_spec.rb
index 1743b1e083f355c3400aa037ab4a85dc49371230..cd5fef8238e8b3ed1f76b8a08414d3510883fa1d 100644
--- a/spec/features/projects/fork_spec.rb
+++ b/spec/features/projects/fork_spec.rb
@@ -129,11 +129,11 @@
     end
   end
 
-  context 'master in group' do
+  context 'maintainer in group' do
     let(:group) { create(:group) }
 
     before do
-      group.add_master(user)
+      group.add_maintainer(user)
     end
 
     it 'allows user to fork project to group or to user namespace' do
diff --git a/spec/features/projects/graph_spec.rb b/spec/features/projects/graph_spec.rb
index 335174b77291d4764f4258af1120e7179f16fa3f..9665f1755d6ca1ac22b5345db690988167baf049 100644
--- a/spec/features/projects/graph_spec.rb
+++ b/spec/features/projects/graph_spec.rb
@@ -6,7 +6,7 @@
   let(:branch_name) { 'master' }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/features/projects/hook_logs/user_reads_log_spec.rb b/spec/features/projects/hook_logs/user_reads_log_spec.rb
index c3bc35565f690c2ddd0da93e707238e29a6b2f0c..086cd4b9f030ef72b8caa87ab9ef281feb649024 100644
--- a/spec/features/projects/hook_logs/user_reads_log_spec.rb
+++ b/spec/features/projects/hook_logs/user_reads_log_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
   end
diff --git a/spec/features/projects/issuable_templates_spec.rb b/spec/features/projects/issuable_templates_spec.rb
index 9cd4af2de805503fb619de234182a8a76437afb1..a57edc394f926a97e0a8f2df2b975d6a8b2e553e 100644
--- a/spec/features/projects/issuable_templates_spec.rb
+++ b/spec/features/projects/issuable_templates_spec.rb
@@ -8,7 +8,7 @@
   let(:issue_form_location) { '#content-body .issuable-details .detail-page-description' }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in user
   end
 
diff --git a/spec/features/projects/jobs/user_browses_job_spec.rb b/spec/features/projects/jobs/user_browses_job_spec.rb
index ce0b38b7239653311a8993913007fa17793b3fde..50e957bf12b3db15481a35689d22a9affecbb4b0 100644
--- a/spec/features/projects/jobs/user_browses_job_spec.rb
+++ b/spec/features/projects/jobs/user_browses_job_spec.rb
@@ -8,7 +8,7 @@
   let!(:build) { create(:ci_build, :success, :trace_artifact, :coverage, pipeline: pipeline) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.enable_ci
 
     sign_in(user)
diff --git a/spec/features/projects/jobs/user_browses_jobs_spec.rb b/spec/features/projects/jobs/user_browses_jobs_spec.rb
index 786ec327b92c5cb1ad7fc96006b857f1da313c90..08786fe163086a5d0e31f4a5beeaaa65d73ea8c7 100644
--- a/spec/features/projects/jobs/user_browses_jobs_spec.rb
+++ b/spec/features/projects/jobs/user_browses_jobs_spec.rb
@@ -7,7 +7,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.enable_ci
     project.update_attribute(:build_coverage_regex, /Coverage (\d+)%/)
 
diff --git a/spec/features/projects/labels/user_creates_labels_spec.rb b/spec/features/projects/labels/user_creates_labels_spec.rb
index 9fd7f3ee77582337954254e56e22eed64efa8cb0..c71b04fea09a50e9282ecaeb355349d3d933906c 100644
--- a/spec/features/projects/labels/user_creates_labels_spec.rb
+++ b/spec/features/projects/labels/user_creates_labels_spec.rb
@@ -18,7 +18,7 @@
 
   context "in project" do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
 
       visit(new_project_label_path(project))
@@ -69,7 +69,7 @@
     before do
       create(:label, project: project, title: "bug") # Create label for `project` (not `another_project`) project.
 
-      another_project.add_master(user)
+      another_project.add_maintainer(user)
       sign_in(user)
 
       visit(new_project_label_path(another_project))
diff --git a/spec/features/projects/labels/user_edits_labels_spec.rb b/spec/features/projects/labels/user_edits_labels_spec.rb
index d1041ff5c1e05fd91d504f38b6e09cda7c7fdcde..0708bbd40cec288d331a8001bbb130398324aed3 100644
--- a/spec/features/projects/labels/user_edits_labels_spec.rb
+++ b/spec/features/projects/labels/user_edits_labels_spec.rb
@@ -6,7 +6,7 @@
   set(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(edit_project_label_path(project, label))
diff --git a/spec/features/projects/labels/user_removes_labels_spec.rb b/spec/features/projects/labels/user_removes_labels_spec.rb
index efa74015c6e2484929135a4390e827f3a76065bb..b0ce03a1c31eea6639348350e0f1f1df8ec7628b 100644
--- a/spec/features/projects/labels/user_removes_labels_spec.rb
+++ b/spec/features/projects/labels/user_removes_labels_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/members/anonymous_user_sees_members_spec.rb b/spec/features/projects/members/anonymous_user_sees_members_spec.rb
index 19e52294a381c4c3b7e8ce086c6da4b19680685e..b3ed725f6020ddb5d3523b3dcb0b60686748aff9 100644
--- a/spec/features/projects/members/anonymous_user_sees_members_spec.rb
+++ b/spec/features/projects/members/anonymous_user_sees_members_spec.rb
@@ -6,7 +6,7 @@
   let(:project) { create(:project, :public) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     create(:project_group_link, project: project, group: group)
   end
 
diff --git a/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb b/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb
index 7bc53345ddf4e9e14d58d7118c7a0d42315f11b2..bb475ea95e54aba4cb2364a73634773823e2cffa 100644
--- a/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb
+++ b/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb
@@ -12,8 +12,8 @@
     expect(page).not_to have_content 'Request Access'
   end
 
-  it 'master does not see the request access button' do
-    group.add_master(user)
+  it 'maintainer does not see the request access button' do
+    group.add_maintainer(user)
     login_and_visit_project_page(user)
 
     expect(page).not_to have_content 'Request Access'
diff --git a/spec/features/projects/members/groups_with_access_list_spec.rb b/spec/features/projects/members/groups_with_access_list_spec.rb
index b65c46b345f29085b9b0bd61c79e48db0a362a02..c0b5d943e966174507cfbf702b3ae7d5748251f6 100644
--- a/spec/features/projects/members/groups_with_access_list_spec.rb
+++ b/spec/features/projects/members/groups_with_access_list_spec.rb
@@ -6,7 +6,7 @@
   let(:project) { create(:project, :public) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     @group_link = create(:project_group_link, project: project, group: group)
 
     sign_in(user)
diff --git a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb
index 90f09bf6264abe505514f0f8ccf1051269d6fb57..26de6fb33fddf1823925ef37a15c715722f83186 100644
--- a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb
+++ b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb
@@ -1,16 +1,16 @@
 require 'spec_helper'
 
-describe 'Projects > Members > Master adds member with expiration date', :js do
+describe 'Projects > Members > Maintainer adds member with expiration date', :js do
   include Select2Helper
   include ActiveSupport::Testing::TimeHelpers
 
-  let(:master) { create(:user) }
+  let(:maintainer) { create(:user) }
   let(:project) { create(:project) }
   let!(:new_member) { create(:user) }
 
   before do
-    project.add_master(master)
-    sign_in(master)
+    project.add_maintainer(maintainer)
+    sign_in(maintainer)
   end
 
   it 'expiration date is displayed in the members list' do
diff --git a/spec/features/projects/members/master_manages_access_requests_spec.rb b/spec/features/projects/members/master_manages_access_requests_spec.rb
index 112b06c047dd70e26cc358ff2e8471ca833bf52a..adc8202cde786937509c47f44ebee82f6252d6a2 100644
--- a/spec/features/projects/members/master_manages_access_requests_spec.rb
+++ b/spec/features/projects/members/master_manages_access_requests_spec.rb
@@ -1,7 +1,7 @@
 require 'spec_helper'
 
-describe 'Projects > Members > Master manages access requests' do
-  it_behaves_like 'Master manages access requests' do
+describe 'Projects > Members > Maintainer manages access requests' do
+  it_behaves_like 'Maintainer manages access requests' do
     let(:entity) { create(:project, :public, :access_requestable) }
     let(:members_page_path) { project_project_members_path(entity) }
   end
diff --git a/spec/features/projects/members/share_with_group_spec.rb b/spec/features/projects/members/share_with_group_spec.rb
index b126f0c6cb134b811961ef3332e441c1fa7f31f6..c6d85e5d22fb2ee52172293e4368eb40c927b0a8 100644
--- a/spec/features/projects/members/share_with_group_spec.rb
+++ b/spec/features/projects/members/share_with_group_spec.rb
@@ -4,7 +4,7 @@
   include Select2Helper
   include ActionView::Helpers::DateHelper
 
-  let(:master) { create(:user) }
+  let(:maintainer) { create(:user) }
 
   describe 'Share with group lock' do
     shared_examples 'the project can be shared with groups' do
@@ -27,8 +27,8 @@
       let(:project) { create(:project, namespace: create(:group)) }
 
       before do
-        project.add_master(master)
-        sign_in(master)
+        project.add_maintainer(maintainer)
+        sign_in(maintainer)
       end
 
       context 'when the group has "Share with group lock" disabled' do
@@ -65,8 +65,8 @@
       let(:project) { create(:project, namespace: subgroup) }
 
       before do
-        project.add_master(master)
-        sign_in(master)
+        project.add_maintainer(maintainer)
+        sign_in(maintainer)
       end
 
       context 'when the root_group has "Share with group lock" disabled' do
@@ -112,8 +112,8 @@
     end
 
     before do
-      project.add_master(master)
-      sign_in(master)
+      project.add_maintainer(maintainer)
+      sign_in(maintainer)
 
       visit project_settings_members_path(project)
 
@@ -142,11 +142,11 @@
       let(:project) { create(:project) }
 
       before do
-        project.add_master(master)
-        sign_in(master)
+        project.add_maintainer(maintainer)
+        sign_in(maintainer)
 
-        create(:group).add_owner(master)
-        create(:group).add_owner(master)
+        create(:group).add_owner(maintainer)
+        create(:group).add_owner(maintainer)
 
         visit project_settings_members_path(project)
 
@@ -174,10 +174,10 @@
       let!(:project) { create(:project, namespace: nested_group) }
 
       before do
-        project.add_master(master)
-        sign_in(master)
-        group.add_master(master)
-        group_to_share_with.add_master(master)
+        project.add_maintainer(maintainer)
+        sign_in(maintainer)
+        group.add_maintainer(maintainer)
+        group_to_share_with.add_maintainer(maintainer)
       end
 
       it 'the groups dropdown does not show ancestors', :nested_groups do
diff --git a/spec/features/projects/members/sorting_spec.rb b/spec/features/projects/members/sorting_spec.rb
index 1e1071348c32e61e6a9fec369e6a10e7882768b8..220775b514d4f85f5a0f935904cae8c4ec3da749 100644
--- a/spec/features/projects/members/sorting_spec.rb
+++ b/spec/features/projects/members/sorting_spec.rb
@@ -1,20 +1,20 @@
 require 'spec_helper'
 
 describe 'Projects > Members > Sorting' do
-  let(:master)    { create(:user, name: 'John Doe') }
+  let(:maintainer) { create(:user, name: 'John Doe') }
   let(:developer) { create(:user, name: 'Mary Jane', last_sign_in_at: 5.days.ago) }
-  let(:project)   { create(:project, namespace: master.namespace, creator: master) }
+  let(:project) { create(:project, namespace: maintainer.namespace, creator: maintainer) }
 
   before do
     create(:project_member, :developer, user: developer, project: project, created_at: 3.days.ago)
 
-    sign_in(master)
+    sign_in(maintainer)
   end
 
   it 'sorts alphabetically by default' do
     visit_members_list(sort: nil)
 
-    expect(first_member).to include(master.name)
+    expect(first_member).to include(maintainer.name)
     expect(second_member).to include(developer.name)
     expect(page).to have_css('.member-sort-dropdown .dropdown-toggle-text', text: 'Name, ascending')
   end
@@ -23,14 +23,14 @@
     visit_members_list(sort: :access_level_asc)
 
     expect(first_member).to include(developer.name)
-    expect(second_member).to include(master.name)
+    expect(second_member).to include(maintainer.name)
     expect(page).to have_css('.member-sort-dropdown .dropdown-toggle-text', text: 'Access level, ascending')
   end
 
   it 'sorts by access level descending' do
     visit_members_list(sort: :access_level_desc)
 
-    expect(first_member).to include(master.name)
+    expect(first_member).to include(maintainer.name)
     expect(second_member).to include(developer.name)
     expect(page).to have_css('.member-sort-dropdown .dropdown-toggle-text', text: 'Access level, descending')
   end
@@ -38,7 +38,7 @@
   it 'sorts by last joined' do
     visit_members_list(sort: :last_joined)
 
-    expect(first_member).to include(master.name)
+    expect(first_member).to include(maintainer.name)
     expect(second_member).to include(developer.name)
     expect(page).to have_css('.member-sort-dropdown .dropdown-toggle-text', text: 'Last joined')
   end
@@ -47,14 +47,14 @@
     visit_members_list(sort: :oldest_joined)
 
     expect(first_member).to include(developer.name)
-    expect(second_member).to include(master.name)
+    expect(second_member).to include(maintainer.name)
     expect(page).to have_css('.member-sort-dropdown .dropdown-toggle-text', text: 'Oldest joined')
   end
 
   it 'sorts by name ascending' do
     visit_members_list(sort: :name_asc)
 
-    expect(first_member).to include(master.name)
+    expect(first_member).to include(maintainer.name)
     expect(second_member).to include(developer.name)
     expect(page).to have_css('.member-sort-dropdown .dropdown-toggle-text', text: 'Name, ascending')
   end
@@ -63,14 +63,14 @@
     visit_members_list(sort: :name_desc)
 
     expect(first_member).to include(developer.name)
-    expect(second_member).to include(master.name)
+    expect(second_member).to include(maintainer.name)
     expect(page).to have_css('.member-sort-dropdown .dropdown-toggle-text', text: 'Name, descending')
   end
 
   it 'sorts by recent sign in', :clean_gitlab_redis_shared_state do
     visit_members_list(sort: :recent_sign_in)
 
-    expect(first_member).to include(master.name)
+    expect(first_member).to include(maintainer.name)
     expect(second_member).to include(developer.name)
     expect(page).to have_css('.member-sort-dropdown .dropdown-toggle-text', text: 'Recent sign in')
   end
@@ -79,7 +79,7 @@
     visit_members_list(sort: :oldest_sign_in)
 
     expect(first_member).to include(developer.name)
-    expect(second_member).to include(master.name)
+    expect(second_member).to include(maintainer.name)
     expect(page).to have_css('.member-sort-dropdown .dropdown-toggle-text', text: 'Oldest sign in')
   end
 
diff --git a/spec/features/projects/members/user_requests_access_spec.rb b/spec/features/projects/members/user_requests_access_spec.rb
index 5599cc9bf1b8d2db70276080ecb615c884943cac..50ba67f0ffc39fe4af4821ad01c4b2aee11ff2ef 100644
--- a/spec/features/projects/members/user_requests_access_spec.rb
+++ b/spec/features/projects/members/user_requests_access_spec.rb
@@ -3,7 +3,7 @@
 describe 'Projects > Members > User requests access', :js do
   let(:user) { create(:user) }
   let(:project) { create(:project, :public, :access_requestable, :repository) }
-  let(:master) { project.owner }
+  let(:maintainer) { project.owner }
 
   before do
     sign_in(user)
@@ -20,7 +20,7 @@
   it 'user can request access to a project' do
     perform_enqueued_jobs { click_link 'Request Access' }
 
-    expect(ActionMailer::Base.deliveries.last.to).to eq [master.notification_email]
+    expect(ActionMailer::Base.deliveries.last.to).to eq [maintainer.notification_email]
     expect(ActionMailer::Base.deliveries.last.subject).to eq "Request to join the #{project.full_name} project"
 
     expect(project.requesters.exists?(user_id: user)).to be_truthy
diff --git a/spec/features/projects/merge_requests/user_closes_merge_request_spec.rb b/spec/features/projects/merge_requests/user_closes_merge_request_spec.rb
index b257f447439d7c8a71d94221a5c14a3dabadaf38..2d12d690151140e5dba2f4335f062a0f656982d0 100644
--- a/spec/features/projects/merge_requests/user_closes_merge_request_spec.rb
+++ b/spec/features/projects/merge_requests/user_closes_merge_request_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(merge_request_path(merge_request))
diff --git a/spec/features/projects/merge_requests/user_comments_on_commit_spec.rb b/spec/features/projects/merge_requests/user_comments_on_commit_spec.rb
index 0a952cfc2a998d69815c6487e0118e440393422e..8ea358bcc70516208df72107258cc28d3b3de8ee 100644
--- a/spec/features/projects/merge_requests/user_comments_on_commit_spec.rb
+++ b/spec/features/projects/merge_requests/user_comments_on_commit_spec.rb
@@ -9,7 +9,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_commit_path(project, sample_commit.id))
diff --git a/spec/features/projects/merge_requests/user_comments_on_diff_spec.rb b/spec/features/projects/merge_requests/user_comments_on_diff_spec.rb
index 1828b60fec75fda11f162afd895e3437d19c203e..b1b62d04ac2f686b6b3952b464df4c137f5d70c6 100644
--- a/spec/features/projects/merge_requests/user_comments_on_diff_spec.rb
+++ b/spec/features/projects/merge_requests/user_comments_on_diff_spec.rb
@@ -11,7 +11,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(diffs_project_merge_request_path(project, merge_request))
diff --git a/spec/features/projects/merge_requests/user_comments_on_merge_request_spec.rb b/spec/features/projects/merge_requests/user_comments_on_merge_request_spec.rb
index f90aaba3cafd988342495c1c27c0fcdbed2900f5..69bdab85d81d74aa32f05b5e92be208ef402068a 100644
--- a/spec/features/projects/merge_requests/user_comments_on_merge_request_spec.rb
+++ b/spec/features/projects/merge_requests/user_comments_on_merge_request_spec.rb
@@ -8,7 +8,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(merge_request_path(merge_request))
diff --git a/spec/features/projects/merge_requests/user_creates_merge_request_spec.rb b/spec/features/projects/merge_requests/user_creates_merge_request_spec.rb
index 1f21ef7b3824b53770f2a6d7d08fc45060fad301..38b4e4a6d1bd0abd535bd562292908f9d576c1f9 100644
--- a/spec/features/projects/merge_requests/user_creates_merge_request_spec.rb
+++ b/spec/features/projects/merge_requests/user_creates_merge_request_spec.rb
@@ -8,7 +8,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/merge_requests/user_edits_merge_request_spec.rb b/spec/features/projects/merge_requests/user_edits_merge_request_spec.rb
index 3d19a2923b92658b070ed58d47cef38a005c8b68..7de0f9daac6cfb87cd96f19e995e7a40ab659e68 100644
--- a/spec/features/projects/merge_requests/user_edits_merge_request_spec.rb
+++ b/spec/features/projects/merge_requests/user_edits_merge_request_spec.rb
@@ -8,7 +8,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(edit_project_merge_request_path(project, merge_request))
diff --git a/spec/features/projects/merge_requests/user_manages_subscription_spec.rb b/spec/features/projects/merge_requests/user_manages_subscription_spec.rb
index f55eb5c66647e165146e2df8aca45a8550fe2eba..68a835e7f7729e64ea9bb1fafc839d9abb81a416 100644
--- a/spec/features/projects/merge_requests/user_manages_subscription_spec.rb
+++ b/spec/features/projects/merge_requests/user_manages_subscription_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(merge_request_path(merge_request))
diff --git a/spec/features/projects/merge_requests/user_reopens_merge_request_spec.rb b/spec/features/projects/merge_requests/user_reopens_merge_request_spec.rb
index ba3c9789da190123db8323af4bb691905c970dbb..745b4537e727a20b4505335e3875657479ef489b 100644
--- a/spec/features/projects/merge_requests/user_reopens_merge_request_spec.rb
+++ b/spec/features/projects/merge_requests/user_reopens_merge_request_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(merge_request_path(merge_request))
diff --git a/spec/features/projects/merge_requests/user_sorts_merge_requests_spec.rb b/spec/features/projects/merge_requests/user_sorts_merge_requests_spec.rb
index 305658f1b5d33a2c660f82f6e54dd695f1e9cef7..e401933aed2b3d581e19c813e69f0f5c35b933da 100644
--- a/spec/features/projects/merge_requests/user_sorts_merge_requests_spec.rb
+++ b/spec/features/projects/merge_requests/user_sorts_merge_requests_spec.rb
@@ -9,7 +9,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_merge_requests_path(project))
diff --git a/spec/features/projects/merge_requests/user_views_open_merge_request_spec.rb b/spec/features/projects/merge_requests/user_views_open_merge_request_spec.rb
index 3aac93eaf7c3ab192ecd469963e5fa7d7ee9604f..6ac495aa03d9f493d64f913fd7fe28ef32f20223 100644
--- a/spec/features/projects/merge_requests/user_views_open_merge_request_spec.rb
+++ b/spec/features/projects/merge_requests/user_views_open_merge_request_spec.rb
@@ -31,7 +31,7 @@
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
 
         visit(edit_project_merge_request_path(project, merge_request))
diff --git a/spec/features/projects/milestones/user_interacts_with_labels_spec.rb b/spec/features/projects/milestones/user_interacts_with_labels_spec.rb
index f6a82f80d65944a08c1f5ef0053d2d76903330fa..a6d58be7b135d47e4079818f1f167eb74e13f982 100644
--- a/spec/features/projects/milestones/user_interacts_with_labels_spec.rb
+++ b/spec/features/projects/milestones/user_interacts_with_labels_spec.rb
@@ -11,7 +11,7 @@
   let(:label_enhancement) { create(:label, project: project, title: 'enhancement') }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     issue1.labels << [label_bug, label_feature]
diff --git a/spec/features/projects/new_project_spec.rb b/spec/features/projects/new_project_spec.rb
index f23ec11a458687e6a712bc92e5f9c745dc3dbc5a..df8528e79dd3609a7a9e508aa6a6271f48bdd14e 100644
--- a/spec/features/projects/new_project_spec.rb
+++ b/spec/features/projects/new_project_spec.rb
@@ -94,7 +94,7 @@
       let(:subgroup) { create(:group, parent: group) }
 
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
         visit new_project_path(namespace_id: subgroup.id)
       end
 
diff --git a/spec/features/projects/pages_spec.rb b/spec/features/projects/pages_spec.rb
index 6bf65e162916dea1dd955e78e000922fb817415b..831f22a0e6997f2fa912feb9fc80ed65e0e0c216 100644
--- a/spec/features/projects/pages_spec.rb
+++ b/spec/features/projects/pages_spec.rb
@@ -3,7 +3,7 @@
 describe 'Pages' do
   let(:project) { create(:project) }
   let(:user) { create(:user) }
-  let(:role) { :master }
+  let(:role) { :maintainer }
 
   before do
     allow(Gitlab.config.pages).to receive(:enabled).and_return(true)
diff --git a/spec/features/projects/pipeline_schedules_spec.rb b/spec/features/projects/pipeline_schedules_spec.rb
index 220b3529c59deaca1920d63fccd306bd9b5a8b6e..ee6b67b2188080ccee6e2a59282d68032cea3ed4 100644
--- a/spec/features/projects/pipeline_schedules_spec.rb
+++ b/spec/features/projects/pipeline_schedules_spec.rb
@@ -9,9 +9,9 @@
   let(:scope) { nil }
   let!(:user) { create(:user) }
 
-  context 'logged in as master' do
+  context 'logged in as maintainer' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       gitlab_sign_in(user)
     end
 
diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb
index 7d47e342e9225aa167bf17b82b5e3fdb5efbbdbe..4a83bcc3efb0a131fcace083ff88a5bbb592476f 100644
--- a/spec/features/projects/pipelines/pipelines_spec.rb
+++ b/spec/features/projects/pipelines/pipelines_spec.rb
@@ -595,7 +595,7 @@ def create_build(stage, stage_idx, name, status)
 
       before do
         create(:ci_empty_pipeline, status: 'success', project: project, sha: project.commit.id, ref: 'master')
-        project.add_master(user)
+        project.add_maintainer(user)
         visit project_pipelines_path(project)
       end
 
diff --git a/spec/features/projects/remote_mirror_spec.rb b/spec/features/projects/remote_mirror_spec.rb
index 97db4a2b8f28b4e69df172368a8b312b186d52f9..5259a8942dc5d900ff88eb2a8c491377d3035a20 100644
--- a/spec/features/projects/remote_mirror_spec.rb
+++ b/spec/features/projects/remote_mirror_spec.rb
@@ -7,7 +7,7 @@
 
   describe 'On a project', :js do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in user
     end
 
diff --git a/spec/features/projects/services/user_activates_asana_spec.rb b/spec/features/projects/services/user_activates_asana_spec.rb
index db836d2985c7810a5315cd30959d0ba053a73d9a..c44e07dd3b4a572d7e7a3746c425c0ad4ff8c283 100644
--- a/spec/features/projects/services/user_activates_asana_spec.rb
+++ b/spec/features/projects/services/user_activates_asana_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_assembla_spec.rb b/spec/features/projects/services/user_activates_assembla_spec.rb
index f099b332785e5465080a796a590db80b755618d3..9c3884a7c74966252963ceaf19cd76c0d6e61245 100644
--- a/spec/features/projects/services/user_activates_assembla_spec.rb
+++ b/spec/features/projects/services/user_activates_assembla_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_atlassian_bamboo_ci_spec.rb b/spec/features/projects/services/user_activates_atlassian_bamboo_ci_spec.rb
index a00c2e0ad99c47268ee47a92f618bb6af6846459..195735652657983d54a39353dc6147861f8c9ebc 100644
--- a/spec/features/projects/services/user_activates_atlassian_bamboo_ci_spec.rb
+++ b/spec/features/projects/services/user_activates_atlassian_bamboo_ci_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_emails_on_push_spec.rb b/spec/features/projects/services/user_activates_emails_on_push_spec.rb
index 3769875b29c3b230826e190169930dd9838dc39f..cc55f7b20608f110094203103925e7f00739d7e7 100644
--- a/spec/features/projects/services/user_activates_emails_on_push_spec.rb
+++ b/spec/features/projects/services/user_activates_emails_on_push_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_flowdock_spec.rb b/spec/features/projects/services/user_activates_flowdock_spec.rb
index 5298d8acaf54c12798df8d05935f24844cc207f7..f981b7e9da9b1c63ea79ac21b62bd6b20fff85c3 100644
--- a/spec/features/projects/services/user_activates_flowdock_spec.rb
+++ b/spec/features/projects/services/user_activates_flowdock_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_hipchat_spec.rb b/spec/features/projects/services/user_activates_hipchat_spec.rb
index a9bf16642c79f5a69939b730864b5bff90780025..2f5313c91f91d0086d12730d6a6657973ee1d7b6 100644
--- a/spec/features/projects/services/user_activates_hipchat_spec.rb
+++ b/spec/features/projects/services/user_activates_hipchat_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_irker_spec.rb b/spec/features/projects/services/user_activates_irker_spec.rb
index 435663c818f6471989455bc52a97e698fd35d2ef..4c8e321b4116544aa3d0c5e8bb6438ed78d0602f 100644
--- a/spec/features/projects/services/user_activates_irker_spec.rb
+++ b/spec/features/projects/services/user_activates_irker_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_issue_tracker_spec.rb b/spec/features/projects/services/user_activates_issue_tracker_spec.rb
index e9502178bd74f72f4df08b22c04786bde7fb6fcd..7cd5b12802b019761d705a88ae60848d74518ca8 100644
--- a/spec/features/projects/services/user_activates_issue_tracker_spec.rb
+++ b/spec/features/projects/services/user_activates_issue_tracker_spec.rb
@@ -15,7 +15,7 @@ def fill_form(active = true)
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_settings_integrations_path(project)
diff --git a/spec/features/projects/services/user_activates_jetbrains_teamcity_ci_spec.rb b/spec/features/projects/services/user_activates_jetbrains_teamcity_ci_spec.rb
index 1048803fde8d1c4df62dece9ab10de4cc93d09d6..28d83a8b96100fa22147a772bd171ec482c08218 100644
--- a/spec/features/projects/services/user_activates_jetbrains_teamcity_ci_spec.rb
+++ b/spec/features/projects/services/user_activates_jetbrains_teamcity_ci_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_jira_spec.rb b/spec/features/projects/services/user_activates_jira_spec.rb
index 429128ec096c92b737a23c0a9bedb0baacdaef02..08e1855d034c472835d991268c75892c66b27ced 100644
--- a/spec/features/projects/services/user_activates_jira_spec.rb
+++ b/spec/features/projects/services/user_activates_jira_spec.rb
@@ -17,7 +17,7 @@ def fill_form(active = true)
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_settings_integrations_path(project)
diff --git a/spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb b/spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb
index d4a6417290d5e814d0aa7e294c81940dda5cb535..25b74cc481d44750bb7d485cc35d0f159509f1ef 100644
--- a/spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb
+++ b/spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb
@@ -8,7 +8,7 @@
 
   before do
     stub_mattermost_setting(enabled: mattermost_enabled)
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit edit_project_service_path(project, service)
   end
diff --git a/spec/features/projects/services/user_activates_packagist_spec.rb b/spec/features/projects/services/user_activates_packagist_spec.rb
index b0cc818f09390e87cd9d28ba1c9010acc1ceb19f..756e9b33c07c75d314ddbb5cdd01014eae970e8e 100644
--- a/spec/features/projects/services/user_activates_packagist_spec.rb
+++ b/spec/features/projects/services/user_activates_packagist_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_pivotaltracker_spec.rb b/spec/features/projects/services/user_activates_pivotaltracker_spec.rb
index d5d109ba48bcce7e10406c08af0741a08615ea79..1d6b19e0b0c03ad7a592dafe79a4bc183ee999e8 100644
--- a/spec/features/projects/services/user_activates_pivotaltracker_spec.rb
+++ b/spec/features/projects/services/user_activates_pivotaltracker_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_prometheus_spec.rb b/spec/features/projects/services/user_activates_prometheus_spec.rb
index 33f884eb148d3f0fea495828d44a9febcc5c52a1..61361c8a2e3b47cc926988850b60ce17395da62a 100644
--- a/spec/features/projects/services/user_activates_prometheus_spec.rb
+++ b/spec/features/projects/services/user_activates_prometheus_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_pushover_spec.rb b/spec/features/projects/services/user_activates_pushover_spec.rb
index 9b7e8d62792638c04e12318456a3a85fd544e7ba..24612ee14579dc3b85354cda6a7ec00d451ce0f4 100644
--- a/spec/features/projects/services/user_activates_pushover_spec.rb
+++ b/spec/features/projects/services/user_activates_pushover_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/services/user_activates_slack_notifications_spec.rb b/spec/features/projects/services/user_activates_slack_notifications_spec.rb
index 727b1fe2d11a44ce171d169e80aa5fac4ba3ba7c..24b5d5259dbc4d4fae25b7a37fcdc2c2ae638d21 100644
--- a/spec/features/projects/services/user_activates_slack_notifications_spec.rb
+++ b/spec/features/projects/services/user_activates_slack_notifications_spec.rb
@@ -6,7 +6,7 @@
   let(:project) { create(:project, slack_service: service) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/services/user_activates_slack_slash_command_spec.rb b/spec/features/projects/services/user_activates_slack_slash_command_spec.rb
index f540b76c7844dceeff75e127e7b862b74d91bceb..08cfddf7993ce1308b00779900c0714fc49b8371 100644
--- a/spec/features/projects/services/user_activates_slack_slash_command_spec.rb
+++ b/spec/features/projects/services/user_activates_slack_slash_command_spec.rb
@@ -6,7 +6,7 @@
   let(:service) { project.create_slack_slash_commands_service }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit edit_project_service_path(project, service)
   end
diff --git a/spec/features/projects/services/user_views_services_spec.rb b/spec/features/projects/services/user_views_services_spec.rb
index 5c5e8b666424786385bc4804e952eea4fb14866e..e9c8cf0fe34d5da32e04547c417a30fbc9cc1886 100644
--- a/spec/features/projects/services/user_views_services_spec.rb
+++ b/spec/features/projects/services/user_views_services_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_integrations_path(project))
diff --git a/spec/features/projects/settings/forked_project_settings_spec.rb b/spec/features/projects/settings/forked_project_settings_spec.rb
index a4d1b78b83b2eaba38026408cb447358c870fe91..df33d21560292cc321308866f7ca43bd321215fb 100644
--- a/spec/features/projects/settings/forked_project_settings_spec.rb
+++ b/spec/features/projects/settings/forked_project_settings_spec.rb
@@ -7,8 +7,8 @@
   let(:forked_project) { fork_project(original_project, user) }
 
   before do
-    original_project.add_master(user)
-    forked_project.add_master(user)
+    original_project.add_maintainer(user)
+    forked_project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/settings/integration_settings_spec.rb b/spec/features/projects/settings/integration_settings_spec.rb
index 5178d63050eb4b28427873f6a6939fd9a2987e67..8745ff72df0fb7d5cd820dce47812614f2573aa4 100644
--- a/spec/features/projects/settings/integration_settings_spec.rb
+++ b/spec/features/projects/settings/integration_settings_spec.rb
@@ -21,8 +21,8 @@
     end
   end
 
-  context 'for master' do
-    let(:role) { :master }
+  context 'for maintainer' do
+    let(:role) { :maintainer }
 
     context 'Webhooks' do
       let(:hook) { create(:project_hook, :all_events_enabled, enable_ssl_verification: true, project: project) }
diff --git a/spec/features/projects/settings/lfs_settings_spec.rb b/spec/features/projects/settings/lfs_settings_spec.rb
index 342be1d2a9dab83c1fea676ed4817223bbf83586..befb306b48d9ade4851a787eb7380e32fe739896 100644
--- a/spec/features/projects/settings/lfs_settings_spec.rb
+++ b/spec/features/projects/settings/lfs_settings_spec.rb
@@ -3,7 +3,7 @@
 describe 'Projects > Settings > LFS settings' do
   let(:project) { create(:project) }
   let(:user) { create(:user) }
-  let(:role) { :master }
+  let(:role) { :maintainer }
 
   context 'LFS enabled setting' do
     before do
@@ -13,8 +13,8 @@
       project.add_role(user, role)
     end
 
-    context 'for master' do
-      let(:role) { :master }
+    context 'for maintainer' do
+      let(:role) { :maintainer }
 
       it 'displays the correct elements', :js do
         visit edit_project_path(project)
diff --git a/spec/features/projects/settings/pipelines_settings_spec.rb b/spec/features/projects/settings/pipelines_settings_spec.rb
index cfdae246c09c6069a6b51e89e2b47953a04990bc..742ecf82c3823c291e326ee0138f84cbc4714330 100644
--- a/spec/features/projects/settings/pipelines_settings_spec.rb
+++ b/spec/features/projects/settings/pipelines_settings_spec.rb
@@ -21,8 +21,8 @@
     end
   end
 
-  context 'for master' do
-    let(:role) { :master }
+  context 'for maintainer' do
+    let(:role) { :maintainer }
 
     it 'be allowed to change' do
       visit project_settings_ci_cd_path(project)
diff --git a/spec/features/projects/settings/project_badges_spec.rb b/spec/features/projects/settings/project_badges_spec.rb
index e53da997c1d27fb6185f8308b1d16a7e6ace554c..2ec94274f80418797c61738027e500d5b58951ec 100644
--- a/spec/features/projects/settings/project_badges_spec.rb
+++ b/spec/features/projects/settings/project_badges_spec.rb
@@ -12,7 +12,7 @@
   let!(:group_badge) { create(:group_badge, group: group) }
 
   before do
-    group.add_master(user)
+    group.add_maintainer(user)
     sign_in(user)
 
     visit(project_settings_badges_path(project))
diff --git a/spec/features/projects/settings/repository_settings_spec.rb b/spec/features/projects/settings/repository_settings_spec.rb
index f085e1aa50a5b53257c972eb065fe13e1fdb20cc..a0f5b234ebc26e171e6bdaa04e0d3ec365b19e38 100644
--- a/spec/features/projects/settings/repository_settings_spec.rb
+++ b/spec/features/projects/settings/repository_settings_spec.rb
@@ -20,8 +20,8 @@
     end
   end
 
-  context 'for master' do
-    let(:role) { :master }
+  context 'for maintainer' do
+    let(:role) { :maintainer }
 
     context 'Deploy Keys', :js do
       let(:private_deploy_key) { create(:deploy_key, title: 'private_deploy_key', public: false) }
@@ -124,7 +124,7 @@
       let(:user2) { create(:user) }
 
       before do
-        project.add_master(user2)
+        project.add_maintainer(user2)
 
         visit project_settings_repository_path(project)
       end
diff --git a/spec/features/projects/settings/user_archives_project_spec.rb b/spec/features/projects/settings/user_archives_project_spec.rb
index 38c8a8c24682f1988e705cdd499e12cc79966b8b..5008eab4d39996ae23d0b8add767b11606a0e089 100644
--- a/spec/features/projects/settings/user_archives_project_spec.rb
+++ b/spec/features/projects/settings/user_archives_project_spec.rb
@@ -4,7 +4,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
 
diff --git a/spec/features/projects/settings/user_changes_avatar_spec.rb b/spec/features/projects/settings/user_changes_avatar_spec.rb
index 2dcc79d8a124b4e7436a1bc3e0ea3378375a45b0..64335163016db1e114e4b1adafa04fe3a9cc5167 100644
--- a/spec/features/projects/settings/user_changes_avatar_spec.rb
+++ b/spec/features/projects/settings/user_changes_avatar_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { project.creator }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
index 71a077039b75fd043e138485724ae874a54abf5f..ecfb49b9efe47a50c59fcd7ba23a1ef1162b2390 100644
--- a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
+++ b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
@@ -50,7 +50,7 @@
       before do
         create(:deploy_keys_project, project: another_project, deploy_key: deploy_key)
 
-        another_project.add_master(user)
+        another_project.add_maintainer(user)
       end
 
       it "shows deploy keys" do
@@ -110,7 +110,7 @@
       before do
         create(:deploy_keys_project, project: another_project, deploy_key: deploy_key)
 
-        another_project.add_master(user)
+        another_project.add_maintainer(user)
       end
 
       it_behaves_like "attaches a key"
diff --git a/spec/features/projects/settings/user_manages_group_links_spec.rb b/spec/features/projects/settings/user_manages_group_links_spec.rb
index 92ce2ca83c74c9337a48cc11a8313fc0478fdcd3..2f1824d7849d3668593711bdcd1a2b62d0be3a43 100644
--- a/spec/features/projects/settings/user_manages_group_links_spec.rb
+++ b/spec/features/projects/settings/user_manages_group_links_spec.rb
@@ -9,10 +9,10 @@
   let(:group_market) { create(:group, name: 'Market', path: 'market') }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
-    share_link = project.project_group_links.new(group_access: Gitlab::Access::MASTER)
+    share_link = project.project_group_links.new(group_access: Gitlab::Access::MAINTAINER)
     share_link.group_id = group_ops.id
     share_link.save!
 
diff --git a/spec/features/projects/settings/user_manages_project_members_spec.rb b/spec/features/projects/settings/user_manages_project_members_spec.rb
index d3003753ae6c761203f499c464bf6521dba35b29..b8ca11d53f0fda230de698f0b146f726de0b1732 100644
--- a/spec/features/projects/settings/user_manages_project_members_spec.rb
+++ b/spec/features/projects/settings/user_manages_project_members_spec.rb
@@ -9,7 +9,7 @@
   let(:user_mike) { create(:user, name: 'Mike') }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user_dmitriy)
     sign_in(user)
   end
@@ -30,7 +30,7 @@
   end
 
   it 'imports a team from another project' do
-    project2.add_master(user)
+    project2.add_maintainer(user)
     project2.add_reporter(user_mike)
 
     visit(project_project_members_path(project))
@@ -54,7 +54,7 @@
     group.add_owner(user)
     group.add_developer(user_dmitriy)
 
-    share_link = project.project_group_links.new(group_access: Gitlab::Access::MASTER)
+    share_link = project.project_group_links.new(group_access: Gitlab::Access::MAINTAINER)
     share_link.group_id = group.id
     share_link.save!
 
diff --git a/spec/features/projects/settings/visibility_settings_spec.rb b/spec/features/projects/settings/visibility_settings_spec.rb
index 2ec6990313ff7576bd1ae0815c2e23ea015b91e6..1fbc108697f7dc95d75314214017e8712eab6b63 100644
--- a/spec/features/projects/settings/visibility_settings_spec.rb
+++ b/spec/features/projects/settings/visibility_settings_spec.rb
@@ -59,12 +59,12 @@
     end
   end
 
-  context 'as master' do
-    let(:master_user) { create(:user) }
+  context 'as maintainer' do
+    let(:maintainer_user) { create(:user) }
 
     before do
-      project.add_master(master_user)
-      sign_in(master_user)
+      project.add_maintainer(maintainer_user)
+      sign_in(maintainer_user)
       visit edit_project_path(project)
     end
 
diff --git a/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb b/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
index 7b9242f0631f7b4010e8995b068efbb32abc59fc..0405e21a0d7ad09df2addda8f22bca8abdc22d8b 100644
--- a/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
+++ b/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
@@ -38,9 +38,9 @@
       end
     end
 
-    describe 'as a master' do
+    describe 'as a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
 
         visit project_path(project)
@@ -138,10 +138,10 @@
       end
     end
 
-    describe 'as a master' do
+    describe 'as a maintainer' do
       before do
         allow_any_instance_of(AutoDevopsHelper).to receive(:show_auto_devops_callout?).and_return(false)
-        project.add_master(user)
+        project.add_maintainer(user)
         sign_in(user)
       end
 
diff --git a/spec/features/projects/snippets/create_snippet_spec.rb b/spec/features/projects/snippets/create_snippet_spec.rb
index 2388feeb98026e87c00daf2c79324b5f59c5f889..6d8a72dd6a3adacaa2659ea1d30c04f7ab1e87dc 100644
--- a/spec/features/projects/snippets/create_snippet_spec.rb
+++ b/spec/features/projects/snippets/create_snippet_spec.rb
@@ -16,7 +16,7 @@ def fill_form
 
   context 'when a user is authenticated' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
 
       visit project_snippets_path(project)
diff --git a/spec/features/projects/snippets/show_spec.rb b/spec/features/projects/snippets/show_spec.rb
index 004ac55b65607554eb97ad9cf4d6b9202b1fbd92..3cc797277ddfc58d3a5b06d0409e7602dbac8750 100644
--- a/spec/features/projects/snippets/show_spec.rb
+++ b/spec/features/projects/snippets/show_spec.rb
@@ -6,7 +6,7 @@
   let(:snippet) { create(:project_snippet, project: project, file_name: file_name, content: content) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/snippets/user_comments_on_snippet_spec.rb b/spec/features/projects/snippets/user_comments_on_snippet_spec.rb
index 01cf9740d1f5cf454c98f64b795ec7cf27800c34..d82e350e0f7ca2dbb723cfdb24a00ca41daffefa 100644
--- a/spec/features/projects/snippets/user_comments_on_snippet_spec.rb
+++ b/spec/features/projects/snippets/user_comments_on_snippet_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_snippet_path(project, snippet))
diff --git a/spec/features/projects/snippets/user_deletes_snippet_spec.rb b/spec/features/projects/snippets/user_deletes_snippet_spec.rb
index e64837ad59ec6ac24d67d57c2af5d8e4ea6704aa..2bd8bb9d5513ba66a6b3cf87f49dc73de99858fc 100644
--- a/spec/features/projects/snippets/user_deletes_snippet_spec.rb
+++ b/spec/features/projects/snippets/user_deletes_snippet_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_snippet_path(project, snippet))
diff --git a/spec/features/projects/snippets/user_updates_snippet_spec.rb b/spec/features/projects/snippets/user_updates_snippet_spec.rb
index eaedbbf32b6ce977fa17be73bd1dc00940b2562e..33f77d55f89cb3299396e4a2ded3c061f3f75c4f 100644
--- a/spec/features/projects/snippets/user_updates_snippet_spec.rb
+++ b/spec/features/projects/snippets/user_updates_snippet_spec.rb
@@ -6,7 +6,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_snippet_path(project, snippet))
diff --git a/spec/features/projects/snippets/user_views_snippets_spec.rb b/spec/features/projects/snippets/user_views_snippets_spec.rb
index 376b76e0001a259b1b3fd5b3bd913b3c94ea046f..1243db9d9f7e367afc4fe97a733d1e0bb2498b57 100644
--- a/spec/features/projects/snippets/user_views_snippets_spec.rb
+++ b/spec/features/projects/snippets/user_views_snippets_spec.rb
@@ -8,7 +8,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_snippets_path(project))
diff --git a/spec/features/projects/sub_group_issuables_spec.rb b/spec/features/projects/sub_group_issuables_spec.rb
index eb2d3ff50a03430616a6f1fc75a190bb9fd8323e..50e7e934cf6cf99772b911fea5a19ac3223ea97e 100644
--- a/spec/features/projects/sub_group_issuables_spec.rb
+++ b/spec/features/projects/sub_group_issuables_spec.rb
@@ -7,7 +7,7 @@
   let(:user)      { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in user
   end
 
diff --git a/spec/features/projects/tree/create_directory_spec.rb b/spec/features/projects/tree/create_directory_spec.rb
index d0902bce7f34cbca8669f5139384f5f001310da0..057b49cc68c65f22a4df2e64d2cb858eb1e268f2 100644
--- a/spec/features/projects/tree/create_directory_spec.rb
+++ b/spec/features/projects/tree/create_directory_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project, :repository) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_tree_path(project, :master)
diff --git a/spec/features/projects/tree/create_file_spec.rb b/spec/features/projects/tree/create_file_spec.rb
index 03a29fae0bd783206488ef78775185b7ab977294..b324ab013837cffc6ee925573048550d423fc43f 100644
--- a/spec/features/projects/tree/create_file_spec.rb
+++ b/spec/features/projects/tree/create_file_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project, :repository) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_path(project)
diff --git a/spec/features/projects/tree/tree_show_spec.rb b/spec/features/projects/tree/tree_show_spec.rb
index dc59666ffcea7d6ba0b20dd9d5f9622047398bcf..9e15163fd7295de5df9dc53c160f297d171bd52a 100644
--- a/spec/features/projects/tree/tree_show_spec.rb
+++ b/spec/features/projects/tree/tree_show_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project, :repository) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_tree_path(project, 'master')
diff --git a/spec/features/projects/tree/upload_file_spec.rb b/spec/features/projects/tree/upload_file_spec.rb
index 804a4450ae209376ca9644c359c072df2dd711c5..28da0a87f226110c108c36a2d6df719aae849df8 100644
--- a/spec/features/projects/tree/upload_file_spec.rb
+++ b/spec/features/projects/tree/upload_file_spec.rb
@@ -7,7 +7,7 @@
   let(:img_file) { File.join(Rails.root, 'spec', 'fixtures', 'dk.png') }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_tree_path(project, :master)
diff --git a/spec/features/projects/user_uses_shortcuts_spec.rb b/spec/features/projects/user_uses_shortcuts_spec.rb
index c8b3104b9fe1e48bfeefd8b5f72073cdf790f484..df9ee69aadbad99d500f763a8d601715d29c5693 100644
--- a/spec/features/projects/user_uses_shortcuts_spec.rb
+++ b/spec/features/projects/user_uses_shortcuts_spec.rb
@@ -5,7 +5,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_path(project))
diff --git a/spec/features/projects/user_views_empty_project_spec.rb b/spec/features/projects/user_views_empty_project_spec.rb
index 7b982301ffcc4a4959bd7a4abd1559fc20aaa43a..b7c0834d33a3cbf4ec3bbb7572c7579ebe70292a 100644
--- a/spec/features/projects/user_views_empty_project_spec.rb
+++ b/spec/features/projects/user_views_empty_project_spec.rb
@@ -15,9 +15,9 @@
     end
   end
 
-  describe 'as a master' do
+  describe 'as a maintainer' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it_behaves_like 'allowing push to default branch'
diff --git a/spec/features/projects/view_on_env_spec.rb b/spec/features/projects/view_on_env_spec.rb
index 84ec32b3fac6a853b952ac26a00b9923b95bf6b0..a48ad94e9fa568a301cd3eb35cbdb788025695c8 100644
--- a/spec/features/projects/view_on_env_spec.rb
+++ b/spec/features/projects/view_on_env_spec.rb
@@ -7,7 +7,7 @@
   let(:user) { project.creator }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   context 'when the branch has a route map' do
diff --git a/spec/features/projects/wiki/markdown_preview_spec.rb b/spec/features/projects/wiki/markdown_preview_spec.rb
index 0bec5f185d682549ea25401379a4111d4d6302b4..ed5f8105487c9149303c62cea2489ba6f1670d32 100644
--- a/spec/features/projects/wiki/markdown_preview_spec.rb
+++ b/spec/features/projects/wiki/markdown_preview_spec.rb
@@ -14,7 +14,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
 
diff --git a/spec/features/projects/wiki/user_creates_wiki_page_spec.rb b/spec/features/projects/wiki/user_creates_wiki_page_spec.rb
index 733e6c89de708be306d0b838952f94b827a248ad..830565620d67d023d76003a05ba91181223293ee 100644
--- a/spec/features/projects/wiki/user_creates_wiki_page_spec.rb
+++ b/spec/features/projects/wiki/user_creates_wiki_page_spec.rb
@@ -4,7 +4,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(project_wikis_path(project))
diff --git a/spec/features/projects/wiki/user_updates_wiki_page_spec.rb b/spec/features/projects/wiki/user_updates_wiki_page_spec.rb
index 2ccbc15b6da5736fe7ac4c3f60be63a7e8763b60..2840d28cf30ffcd59fdb605a189b1fedf73464e6 100644
--- a/spec/features/projects/wiki/user_updates_wiki_page_spec.rb
+++ b/spec/features/projects/wiki/user_updates_wiki_page_spec.rb
@@ -4,7 +4,7 @@
   shared_examples 'wiki page user update' do
     let(:user) { create(:user) }
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
     end
 
diff --git a/spec/features/projects/wiki/user_views_wiki_in_project_page_spec.rb b/spec/features/projects/wiki/user_views_wiki_in_project_page_spec.rb
index 92b5016947682220e5fa81cfcc08ad667a62184b..fb0ebe22bf7c37b285209ad6ddea7a9724dcac52 100644
--- a/spec/features/projects/wiki/user_views_wiki_in_project_page_spec.rb
+++ b/spec/features/projects/wiki/user_views_wiki_in_project_page_spec.rb
@@ -4,7 +4,7 @@
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/projects/wiki/user_views_wiki_page_spec.rb b/spec/features/projects/wiki/user_views_wiki_page_spec.rb
index 1de7d9a56a8636f6c3bb11da4be25eccc6d74fb0..0ef7f35f64a1926cb5a4b627b3ac48a79afcd044 100644
--- a/spec/features/projects/wiki/user_views_wiki_page_spec.rb
+++ b/spec/features/projects/wiki/user_views_wiki_page_spec.rb
@@ -11,7 +11,7 @@
     end
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
     end
 
diff --git a/spec/features/projects_spec.rb b/spec/features/projects_spec.rb
index 8636d17f2c4f6ad360fd91d739487c6038ed92cc..00946bccd9af7d66e0edacedf6f54429dae6d0e5 100644
--- a/spec/features/projects_spec.rb
+++ b/spec/features/projects_spec.rb
@@ -151,7 +151,7 @@
 
     before do
       sign_in(user)
-      project.add_master(user)
+      project.add_maintainer(user)
       visit edit_project_path(project)
     end
 
@@ -169,7 +169,7 @@
     let(:project) { create(:forked_project_with_submodules) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in user
       visit project_path(project)
     end
@@ -198,7 +198,7 @@
     let(:project) { create(:project, :repository) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in user
       visit project_path(project)
     end
diff --git a/spec/features/protected_branches_spec.rb b/spec/features/protected_branches_spec.rb
index 83a5f88f0b57455d5e266e63e5486f25733d19ff..63c38a25f4bb80f8d762072fa4e20ca6d4d81232 100644
--- a/spec/features/protected_branches_spec.rb
+++ b/spec/features/protected_branches_spec.rb
@@ -28,9 +28,9 @@
     end
   end
 
-  context 'logged in as master' do
+  context 'logged in as maintainer' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
     end
 
diff --git a/spec/features/reportable_note/commit_spec.rb b/spec/features/reportable_note/commit_spec.rb
index 9b6864eb90f0c1e4477f287b5b53ff4a2cb917a1..54ebda9dcab41e4f18ca150b5b77361815cc6a42 100644
--- a/spec/features/reportable_note/commit_spec.rb
+++ b/spec/features/reportable_note/commit_spec.rb
@@ -7,7 +7,7 @@
   let(:project) { create(:project, :repository) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/reportable_note/issue_spec.rb b/spec/features/reportable_note/issue_spec.rb
index f5a1950e48e8772cb407183e25bb08e357032960..bce1f7a3780e24327c958d06e0d29b25fd74b9f8 100644
--- a/spec/features/reportable_note/issue_spec.rb
+++ b/spec/features/reportable_note/issue_spec.rb
@@ -7,7 +7,7 @@
   let!(:note) { create(:note_on_issue, noteable: issue, project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_issue_path(project, issue)
diff --git a/spec/features/reportable_note/merge_request_spec.rb b/spec/features/reportable_note/merge_request_spec.rb
index 1f69257f7ed7c4b2ad38fcd187e6c86bf2afdc5c..d00324156c49587329ef709f99f279955b438342 100644
--- a/spec/features/reportable_note/merge_request_spec.rb
+++ b/spec/features/reportable_note/merge_request_spec.rb
@@ -6,7 +6,7 @@
   let(:merge_request) { create(:merge_request, source_project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit project_merge_request_path(project, merge_request)
diff --git a/spec/features/reportable_note/snippets_spec.rb b/spec/features/reportable_note/snippets_spec.rb
index 98ef50b78de1777971c2107e4e53fd177673eb0e..06218d9b286089949cc5127522ffe7e3419086cc 100644
--- a/spec/features/reportable_note/snippets_spec.rb
+++ b/spec/features/reportable_note/snippets_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/runners_spec.rb b/spec/features/runners_spec.rb
index 443c2b9acaeae36349b6ed2b10edb1106d93b362..0c6cf3dc477bcc84123a331f19b3df6e78f3c13c 100644
--- a/spec/features/runners_spec.rb
+++ b/spec/features/runners_spec.rb
@@ -11,7 +11,7 @@
     let(:project) { create(:project) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it 'user can see a button to install runners on kubernetes clusters' do
@@ -25,7 +25,7 @@
     let(:project) { create(:project) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'when a project_type runner is activated on the project' do
@@ -125,7 +125,7 @@
       let!(:specific_runner) { create(:ci_runner, :project, projects: [another_project]) }
 
       before do
-        another_project.add_master(user)
+        another_project.add_maintainer(user)
       end
 
       it 'user enables and disables a specific runner' do
@@ -165,7 +165,7 @@
     let(:project) { create(:project, shared_runners_enabled: false) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it 'user enables shared runners' do
@@ -179,14 +179,14 @@
 
   context 'group runners in project settings' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     let(:group) { create :group }
 
     context 'as project and group maintainer' do
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       context 'project with a group but no group runner' do
@@ -260,7 +260,7 @@
   context 'group runners in group settings' do
     let(:group) { create(:group) }
     before do
-      group.add_master(user)
+      group.add_maintainer(user)
     end
 
     context 'group with no runners' do
diff --git a/spec/features/search/user_searches_for_code_spec.rb b/spec/features/search/user_searches_for_code_spec.rb
index 9e089c5a6cb2b1da9e68bd57777624a18d0ecd8c..ecec2f3e04316d68145bef2e7efa17b1ffc7d1d3 100644
--- a/spec/features/search/user_searches_for_code_spec.rb
+++ b/spec/features/search/user_searches_for_code_spec.rb
@@ -6,7 +6,7 @@
 
   context 'when signed in' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
     end
 
diff --git a/spec/features/search/user_searches_for_issues_spec.rb b/spec/features/search/user_searches_for_issues_spec.rb
index d6120ff8517ea48282e715060389aa9a8f902f0c..4bff269f89e87cfcb18bb4ad1650e3e4d1a5da44 100644
--- a/spec/features/search/user_searches_for_issues_spec.rb
+++ b/spec/features/search/user_searches_for_issues_spec.rb
@@ -8,7 +8,7 @@
 
   context 'when signed in' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       sign_in(user)
 
       visit(search_path)
diff --git a/spec/features/search/user_searches_for_merge_requests_spec.rb b/spec/features/search/user_searches_for_merge_requests_spec.rb
index 68e2f7a857dfd4ed6c9bebf7f8dd4d3aaf829c25..75d44e413cb55cb4b84951a6628c0ccc3a8f9969 100644
--- a/spec/features/search/user_searches_for_merge_requests_spec.rb
+++ b/spec/features/search/user_searches_for_merge_requests_spec.rb
@@ -7,7 +7,7 @@
   let!(:merge_request2) { create(:merge_request, :simple, title: 'Bar', source_project: project, target_project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(search_path)
diff --git a/spec/features/search/user_searches_for_milestones_spec.rb b/spec/features/search/user_searches_for_milestones_spec.rb
index fc6cd81eb68a056ce8c74fcdfb221b7afb9f9a32..7d52c4c8bcca1a62d6b9d2c46be708c8bcf9823e 100644
--- a/spec/features/search/user_searches_for_milestones_spec.rb
+++ b/spec/features/search/user_searches_for_milestones_spec.rb
@@ -7,7 +7,7 @@
   let!(:milestone2) { create(:milestone, title: 'Bar', project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(search_path)
diff --git a/spec/features/search/user_searches_for_wiki_pages_spec.rb b/spec/features/search/user_searches_for_wiki_pages_spec.rb
index 5098fb49ee1302bfddb98e638bf6051f892ad077..3ee753b7d230d85f853522567c1dd7e21ca5e522 100644
--- a/spec/features/search/user_searches_for_wiki_pages_spec.rb
+++ b/spec/features/search/user_searches_for_wiki_pages_spec.rb
@@ -6,7 +6,7 @@
   let!(:wiki_page) { create(:wiki_page, wiki: project.wiki, attrs: { title: 'test_wiki', content: 'Some Wiki content' }) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
 
     visit(search_path)
diff --git a/spec/features/security/group/internal_access_spec.rb b/spec/features/security/group/internal_access_spec.rb
index 5067f0b0a49df8657e260d4bb610c4521c154c75..51b32ba6c0316eee76cd5d72b5a6b9c823073b11 100644
--- a/spec/features/security/group/internal_access_spec.rb
+++ b/spec/features/security/group/internal_access_spec.rb
@@ -23,7 +23,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -38,7 +38,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -54,7 +54,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -69,7 +69,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -84,7 +84,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_denied_for(:master).of(group) }
+    it { is_expected.to be_denied_for(:maintainer).of(group) }
     it { is_expected.to be_denied_for(:developer).of(group) }
     it { is_expected.to be_denied_for(:reporter).of(group) }
     it { is_expected.to be_denied_for(:guest).of(group) }
diff --git a/spec/features/security/group/private_access_spec.rb b/spec/features/security/group/private_access_spec.rb
index ff32413dc7e4f3ff83f6eea93c0f53f9e5d9c117..4705cd12d236270420584c838fec8dd1bde5cd25 100644
--- a/spec/features/security/group/private_access_spec.rb
+++ b/spec/features/security/group/private_access_spec.rb
@@ -23,7 +23,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -38,7 +38,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -54,7 +54,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -69,7 +69,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -84,7 +84,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_denied_for(:master).of(group) }
+    it { is_expected.to be_denied_for(:maintainer).of(group) }
     it { is_expected.to be_denied_for(:developer).of(group) }
     it { is_expected.to be_denied_for(:reporter).of(group) }
     it { is_expected.to be_denied_for(:guest).of(group) }
diff --git a/spec/features/security/group/public_access_spec.rb b/spec/features/security/group/public_access_spec.rb
index 16d114fb3f7df5bc42acf4231484aa4c074421fa..3a53c3c2bc72708ab4a144f82982a6d0f3ac7279 100644
--- a/spec/features/security/group/public_access_spec.rb
+++ b/spec/features/security/group/public_access_spec.rb
@@ -23,7 +23,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -38,7 +38,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -54,7 +54,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -69,7 +69,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_allowed_for(:master).of(group) }
+    it { is_expected.to be_allowed_for(:maintainer).of(group) }
     it { is_expected.to be_allowed_for(:developer).of(group) }
     it { is_expected.to be_allowed_for(:reporter).of(group) }
     it { is_expected.to be_allowed_for(:guest).of(group) }
@@ -84,7 +84,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(group) }
-    it { is_expected.to be_denied_for(:master).of(group) }
+    it { is_expected.to be_denied_for(:maintainer).of(group) }
     it { is_expected.to be_denied_for(:developer).of(group) }
     it { is_expected.to be_denied_for(:reporter).of(group) }
     it { is_expected.to be_denied_for(:guest).of(group) }
diff --git a/spec/features/security/project/internal_access_spec.rb b/spec/features/security/project/internal_access_spec.rb
index a7928857b7df78d03d3dfc54e12bde0f10abd254..001e6c10eb2a1bfce1d11cef0d78d01cb48cdf13 100644
--- a/spec/features/security/project/internal_access_spec.rb
+++ b/spec/features/security/project/internal_access_spec.rb
@@ -17,7 +17,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -31,7 +31,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -45,7 +45,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -59,7 +59,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -73,7 +73,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -87,7 +87,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -101,7 +101,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -115,7 +115,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -130,7 +130,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -144,7 +144,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -158,7 +158,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -172,7 +172,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -187,7 +187,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -201,7 +201,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -215,7 +215,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -229,7 +229,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -243,7 +243,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -262,7 +262,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -281,7 +281,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -295,7 +295,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -309,7 +309,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -324,7 +324,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -343,7 +343,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -359,7 +359,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_denied_for(:guest).of(project) }
@@ -381,7 +381,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -397,7 +397,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_denied_for(:guest).of(project) }
@@ -419,7 +419,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -435,7 +435,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_denied_for(:guest).of(project) }
@@ -450,7 +450,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -464,7 +464,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -479,7 +479,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -494,7 +494,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -508,7 +508,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -530,7 +530,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
diff --git a/spec/features/security/project/private_access_spec.rb b/spec/features/security/project/private_access_spec.rb
index a4396b20afdf32a397a4f361e3d144cb1375adb0..c6618355eea1fb31b48db52e421365124cc436ff 100644
--- a/spec/features/security/project/private_access_spec.rb
+++ b/spec/features/security/project/private_access_spec.rb
@@ -17,7 +17,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -31,7 +31,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -45,7 +45,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -59,7 +59,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -73,7 +73,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -87,7 +87,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -101,7 +101,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -115,7 +115,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -130,7 +130,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -144,7 +144,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -158,7 +158,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -172,7 +172,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -187,7 +187,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -201,7 +201,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -215,7 +215,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -234,7 +234,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -253,7 +253,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -267,7 +267,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -281,7 +281,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -308,7 +308,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -334,7 +334,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -362,7 +362,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -395,7 +395,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -425,7 +425,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -440,7 +440,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -455,7 +455,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -469,7 +469,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -483,7 +483,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -497,7 +497,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -511,7 +511,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -533,7 +533,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
diff --git a/spec/features/security/project/public_access_spec.rb b/spec/features/security/project/public_access_spec.rb
index fccdeb0e5b7d0d0ee9a606c9554190b3e3503349..3717dc13f1edfe765f7e149af5833259789e7e64 100644
--- a/spec/features/security/project/public_access_spec.rb
+++ b/spec/features/security/project/public_access_spec.rb
@@ -17,7 +17,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -31,7 +31,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -45,7 +45,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -59,7 +59,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -73,7 +73,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -87,7 +87,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -101,7 +101,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -115,7 +115,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -129,7 +129,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -144,7 +144,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -163,7 +163,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -179,7 +179,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_denied_for(:guest).of(project) }
@@ -201,7 +201,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -217,7 +217,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_denied_for(:guest).of(project) }
@@ -239,7 +239,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -255,7 +255,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_denied_for(:guest).of(project) }
@@ -270,7 +270,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -284,7 +284,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -299,7 +299,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -314,7 +314,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -328,7 +328,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -344,7 +344,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -357,7 +357,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -371,7 +371,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -385,7 +385,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -400,7 +400,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -414,7 +414,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -428,7 +428,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -442,7 +442,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -456,7 +456,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -475,7 +475,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -494,7 +494,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -508,7 +508,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_denied_for(:developer).of(project) }
     it { is_expected.to be_denied_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -530,7 +530,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
diff --git a/spec/features/security/project/snippet/internal_access_spec.rb b/spec/features/security/project/snippet/internal_access_spec.rb
index d7dc99c0a570d64cd74c178eb67b88d1d9edcc4a..b87eb86b88b6a597b696da3559cfe071b56b8ef2 100644
--- a/spec/features/security/project/snippet/internal_access_spec.rb
+++ b/spec/features/security/project/snippet/internal_access_spec.rb
@@ -13,7 +13,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -27,7 +27,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -42,7 +42,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -56,7 +56,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -72,7 +72,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -86,7 +86,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
diff --git a/spec/features/security/project/snippet/private_access_spec.rb b/spec/features/security/project/snippet/private_access_spec.rb
index 3ec1a3881859b432cdc18a77b49dfa13bd1d15b8..ead91d9a5faeb4a44a6c8a9539e56f28bdd70a88 100644
--- a/spec/features/security/project/snippet/private_access_spec.rb
+++ b/spec/features/security/project/snippet/private_access_spec.rb
@@ -12,7 +12,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -26,7 +26,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -40,7 +40,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -54,7 +54,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
diff --git a/spec/features/security/project/snippet/public_access_spec.rb b/spec/features/security/project/snippet/public_access_spec.rb
index 39b104bfe2743f21a921629a1c498d929f1c8d87..9bab3a474b8d07ef057ae80818b1445cbccbe89d 100644
--- a/spec/features/security/project/snippet/public_access_spec.rb
+++ b/spec/features/security/project/snippet/public_access_spec.rb
@@ -14,7 +14,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -28,7 +28,7 @@
 
     it { is_expected.to be_allowed_for(:admin) }
     it { is_expected.to be_allowed_for(:owner).of(project) }
-    it { is_expected.to be_allowed_for(:master).of(project) }
+    it { is_expected.to be_allowed_for(:maintainer).of(project) }
     it { is_expected.to be_allowed_for(:developer).of(project) }
     it { is_expected.to be_allowed_for(:reporter).of(project) }
     it { is_expected.to be_denied_for(:guest).of(project) }
@@ -43,7 +43,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -57,7 +57,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -71,7 +71,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -87,7 +87,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -101,7 +101,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
@@ -115,7 +115,7 @@
 
       it { is_expected.to be_allowed_for(:admin) }
       it { is_expected.to be_allowed_for(:owner).of(project) }
-      it { is_expected.to be_allowed_for(:master).of(project) }
+      it { is_expected.to be_allowed_for(:maintainer).of(project) }
       it { is_expected.to be_allowed_for(:developer).of(project) }
       it { is_expected.to be_allowed_for(:reporter).of(project) }
       it { is_expected.to be_allowed_for(:guest).of(project) }
diff --git a/spec/features/signed_commits_spec.rb b/spec/features/signed_commits_spec.rb
index bc9443c609398bede2748160ccc07f66d279e399..3d05474dca2052b6b1707226d5b23aa014f4d76a 100644
--- a/spec/features/signed_commits_spec.rb
+++ b/spec/features/signed_commits_spec.rb
@@ -5,7 +5,7 @@
 
   it 'changes from unverified to verified when the user changes his email to match the gpg key' do
     user = create :user, email: 'unrelated.user@example.org'
-    project.add_master(user)
+    project.add_maintainer(user)
 
     Sidekiq::Testing.inline! do
       create :gpg_key, key: GpgHelpers::User1.public_key, user: user
@@ -36,7 +36,7 @@
 
   it 'changes from unverified to verified when the user adds the missing gpg key' do
     user = create :user, email: GpgHelpers::User1.emails.first
-    project.add_master(user)
+    project.add_maintainer(user)
 
     sign_in(user)
 
@@ -86,7 +86,7 @@
 
     before do
       user = create :user
-      project.add_master(user)
+      project.add_maintainer(user)
 
       sign_in(user)
     end
diff --git a/spec/features/tags/master_creates_tag_spec.rb b/spec/features/tags/master_creates_tag_spec.rb
index b4e8253057bbaf5efc35806978974908d34186f9..db2970f33401e66955802f463de2eed0653bbdc1 100644
--- a/spec/features/tags/master_creates_tag_spec.rb
+++ b/spec/features/tags/master_creates_tag_spec.rb
@@ -1,11 +1,11 @@
 require 'spec_helper'
 
-describe 'Master creates tag' do
+describe 'Maintainer creates tag' do
   let(:user) { create(:user) }
   let(:project) { create(:project, :repository, namespace: user.namespace) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/tags/master_deletes_tag_spec.rb b/spec/features/tags/master_deletes_tag_spec.rb
index 1443e259ed9b2e25ec56cd95e21b3fcc232163f8..8d567e925ef8b82d8984c0a8220d28a6d83ceab9 100644
--- a/spec/features/tags/master_deletes_tag_spec.rb
+++ b/spec/features/tags/master_deletes_tag_spec.rb
@@ -1,11 +1,11 @@
 require 'spec_helper'
 
-describe 'Master deletes tag' do
+describe 'Maintainer deletes tag' do
   let(:user) { create(:user) }
   let(:project) { create(:project, :repository, namespace: user.namespace) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit project_tags_path(project)
   end
diff --git a/spec/features/tags/master_updates_tag_spec.rb b/spec/features/tags/master_updates_tag_spec.rb
index 4c0be6be96c66cfd43f73aff7397de43d190759d..d8b5b3c4cc4ce1dd550e1b9c06a0c58b275964ec 100644
--- a/spec/features/tags/master_updates_tag_spec.rb
+++ b/spec/features/tags/master_updates_tag_spec.rb
@@ -1,11 +1,11 @@
 require 'spec_helper'
 
-describe 'Master updates tag' do
+describe 'Maintainer updates tag' do
   let(:user) { create(:user) }
   let(:project) { create(:project, :repository, namespace: user.namespace) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
     visit project_tags_path(project)
   end
diff --git a/spec/features/tags/master_views_tags_spec.rb b/spec/features/tags/master_views_tags_spec.rb
index 02ce0242614309ad9ab082e8446b10666cbcf659..3f4fe549f3e79aad194814b1252ee8c2bb15eed2 100644
--- a/spec/features/tags/master_views_tags_spec.rb
+++ b/spec/features/tags/master_views_tags_spec.rb
@@ -1,10 +1,10 @@
 require 'spec_helper'
 
-describe 'Master views tags' do
+describe 'Maintainer views tags' do
   let(:user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/features/task_lists_spec.rb b/spec/features/task_lists_spec.rb
index 64d05c57d3c155bf3912724cb8f93ac1fa49b8bf..9c9127980a1593ac3dba5a6d82f0cc4c80946e3c 100644
--- a/spec/features/task_lists_spec.rb
+++ b/spec/features/task_lists_spec.rb
@@ -65,7 +65,7 @@
   before do
     Warden.test_mode!
 
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_guest(user2)
 
     login_as(user)
diff --git a/spec/features/triggers_spec.rb b/spec/features/triggers_spec.rb
index 36dafccd186837d4c96dc906651e35c54cafb2de..919859c145ac7e2404fc75c4386a743587bbe7f7 100644
--- a/spec/features/triggers_spec.rb
+++ b/spec/features/triggers_spec.rb
@@ -10,8 +10,8 @@
     sign_in(user)
 
     @project = create(:project)
-    @project.add_master(user)
-    @project.add_master(user2)
+    @project.add_maintainer(user)
+    @project.add_maintainer(user2)
     @project.add_guest(guest_user)
 
     visit project_settings_ci_cd_path(@project)
diff --git a/spec/features/users/user_browses_projects_on_user_page_spec.rb b/spec/features/users/user_browses_projects_on_user_page_spec.rb
index 5478e38ce70404632d400c99873a707f69fe755f..6a9b281fb4c7d40a6e255dbef4dd600285220f3f 100644
--- a/spec/features/users/user_browses_projects_on_user_page_spec.rb
+++ b/spec/features/users/user_browses_projects_on_user_page_spec.rb
@@ -4,19 +4,19 @@
   let!(:user) { create :user }
   let!(:private_project) do
     create :project, :private, name: 'private', namespace: user.namespace do |project|
-      project.add_master(user)
+      project.add_maintainer(user)
     end
   end
 
   let!(:internal_project) do
     create :project, :internal, name: 'internal', namespace: user.namespace do |project|
-      project.add_master(user)
+      project.add_maintainer(user)
     end
   end
 
   let!(:public_project) do
     create :project, :public, name: 'public', namespace: user.namespace do |project|
-      project.add_master(user)
+      project.add_maintainer(user)
     end
   end
 
diff --git a/spec/finders/access_requests_finder_spec.rb b/spec/finders/access_requests_finder_spec.rb
index 650f7229647647a4cf2963bbc6bb25cda6f52b78..605777462bba82e87e084a8c0266a3836fe52d61 100644
--- a/spec/finders/access_requests_finder_spec.rb
+++ b/spec/finders/access_requests_finder_spec.rb
@@ -51,7 +51,7 @@
 
     context 'when current user can see access requests' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         group.add_owner(user)
       end
 
@@ -78,7 +78,7 @@
 
     context 'when current user can see access requests' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         group.add_owner(user)
       end
 
diff --git a/spec/finders/admin/projects_finder_spec.rb b/spec/finders/admin/projects_finder_spec.rb
index 7901d5fee2821edade5d485f255d2309e81752e0..44cc8debd0487aefa0c347db61d63069f865d0f2 100644
--- a/spec/finders/admin/projects_finder_spec.rb
+++ b/spec/finders/admin/projects_finder_spec.rb
@@ -54,7 +54,7 @@
 
     context 'filter by visibility_level' do
       before do
-        private_project.add_master(user)
+        private_project.add_maintainer(user)
       end
 
       context 'private' do
diff --git a/spec/finders/concerns/finder_with_cross_project_access_spec.rb b/spec/finders/concerns/finder_with_cross_project_access_spec.rb
index c784fb87972513489d35de59fefcdff75b597e81..1ff65a8101be99149ea9d2b513662d1c0d1d1e92 100644
--- a/spec/finders/concerns/finder_with_cross_project_access_spec.rb
+++ b/spec/finders/concerns/finder_with_cross_project_access_spec.rb
@@ -25,7 +25,7 @@ def execute
   let!(:result) { create(:issue) }
 
   before do
-    result.project.add_master(user)
+    result.project.add_maintainer(user)
   end
 
   def expect_access_check_on_result
diff --git a/spec/finders/contributed_projects_finder_spec.rb b/spec/finders/contributed_projects_finder_spec.rb
index 60ea98e61c72acbd2a384e369c5fefa5a36f0106..9155a8d6fe9870b03eb2b542c5217945d44b4f89 100644
--- a/spec/finders/contributed_projects_finder_spec.rb
+++ b/spec/finders/contributed_projects_finder_spec.rb
@@ -10,9 +10,9 @@
   let!(:private_project) { create(:project, :private) }
 
   before do
-    private_project.add_master(source_user)
+    private_project.add_maintainer(source_user)
     private_project.add_developer(current_user)
-    public_project.add_master(source_user)
+    public_project.add_maintainer(source_user)
 
     create(:push_event, project: public_project, author: source_user)
     create(:push_event, project: private_project, author: source_user)
diff --git a/spec/finders/environments_finder_spec.rb b/spec/finders/environments_finder_spec.rb
index 3a8a1e7de744f0a0ada81755bbfd6719b93ae862..3cd421f22ebe31409cc78c631be6ddf7171dd713 100644
--- a/spec/finders/environments_finder_spec.rb
+++ b/spec/finders/environments_finder_spec.rb
@@ -7,7 +7,7 @@
     let(:environment) { create(:environment, project: project) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'tagged deployment' do
diff --git a/spec/finders/group_members_finder_spec.rb b/spec/finders/group_members_finder_spec.rb
index 63e15b365a443e7968f60b4b7e2f708e6b3dc94c..f545da3aee4f291536fb5b2b06c2887213036bb8 100644
--- a/spec/finders/group_members_finder_spec.rb
+++ b/spec/finders/group_members_finder_spec.rb
@@ -9,9 +9,9 @@
   let(:user4)        { create(:user) }
 
   it 'returns members for top-level group' do
-    member1 = group.add_master(user1)
-    member2 = group.add_master(user2)
-    member3 = group.add_master(user3)
+    member1 = group.add_maintainer(user1)
+    member2 = group.add_maintainer(user2)
+    member3 = group.add_maintainer(user3)
 
     result = described_class.new(group).execute
 
@@ -19,11 +19,11 @@
   end
 
   it 'returns members for nested group', :nested_groups do
-    group.add_master(user2)
+    group.add_maintainer(user2)
     nested_group.request_access(user4)
-    member1 = group.add_master(user1)
-    member3 = nested_group.add_master(user2)
-    member4 = nested_group.add_master(user3)
+    member1 = group.add_maintainer(user1)
+    member3 = nested_group.add_maintainer(user2)
+    member4 = nested_group.add_maintainer(user3)
 
     result = described_class.new(nested_group).execute
 
@@ -31,11 +31,11 @@
   end
 
   it 'returns members for descendant groups if requested', :nested_groups do
-    member1 = group.add_master(user2)
-    member2 = group.add_master(user1)
-    nested_group.add_master(user2)
-    member3 = nested_group.add_master(user3)
-    member4 = nested_group.add_master(user4)
+    member1 = group.add_maintainer(user2)
+    member2 = group.add_maintainer(user1)
+    nested_group.add_maintainer(user2)
+    member3 = nested_group.add_maintainer(user3)
+    member4 = nested_group.add_maintainer(user4)
 
     result = described_class.new(group).execute(include_descendants: true)
 
diff --git a/spec/finders/group_projects_finder_spec.rb b/spec/finders/group_projects_finder_spec.rb
index 0a69c03e4911a7403df9a206b70de884cf3d4ae7..d6d95906f5eaf0719f3b6ed798ed3367ee6b988a 100644
--- a/spec/finders/group_projects_finder_spec.rb
+++ b/spec/finders/group_projects_finder_spec.rb
@@ -17,16 +17,16 @@
   let!(:subgroup_private_project) { create(:project, :private, path: '7', group: subgroup) }
 
   before do
-    shared_project_1.project_group_links.create(group_access: Gitlab::Access::MASTER, group: group)
-    shared_project_2.project_group_links.create(group_access: Gitlab::Access::MASTER, group: group)
-    shared_project_3.project_group_links.create(group_access: Gitlab::Access::MASTER, group: group)
+    shared_project_1.project_group_links.create(group_access: Gitlab::Access::MAINTAINER, group: group)
+    shared_project_2.project_group_links.create(group_access: Gitlab::Access::MAINTAINER, group: group)
+    shared_project_3.project_group_links.create(group_access: Gitlab::Access::MAINTAINER, group: group)
   end
 
   subject { finder.execute }
 
   describe 'with a group member current user' do
     before do
-      group.add_master(current_user)
+      group.add_maintainer(current_user)
     end
 
     context "only shared" do
@@ -68,7 +68,7 @@
 
   describe 'without group member current_user' do
     before do
-      shared_project_2.add_master(current_user)
+      shared_project_2.add_maintainer(current_user)
       current_user.reload
     end
 
@@ -93,8 +93,8 @@
 
       context "without external user" do
         before do
-          private_project.add_master(current_user)
-          subgroup_private_project.add_master(current_user)
+          private_project.add_maintainer(current_user)
+          subgroup_private_project.add_maintainer(current_user)
         end
 
         context 'with subgroups projects', :nested_groups do
diff --git a/spec/finders/issues_finder_spec.rb b/spec/finders/issues_finder_spec.rb
index 74e91b02f0fbb45410cf5a3ee60f11c2435314c6..07a2fa86dd7621a42a6eb852d20ed0ce1b40f070 100644
--- a/spec/finders/issues_finder_spec.rb
+++ b/spec/finders/issues_finder_spec.rb
@@ -26,7 +26,7 @@
     let(:issues) { described_class.new(search_user, params.reverse_merge(scope: scope, state: 'opened')).execute }
 
     before(:context) do
-      project1.add_master(user)
+      project1.add_maintainer(user)
       project2.add_developer(user)
       project2.add_developer(user2)
       project3.add_developer(user)
diff --git a/spec/finders/joined_groups_finder_spec.rb b/spec/finders/joined_groups_finder_spec.rb
index 7f77a713b12f437a5b6c5a23db24183eeec0ba79..ae3e55f90f16c4cd2d9b4a1e9be33436f3fe7a2e 100644
--- a/spec/finders/joined_groups_finder_spec.rb
+++ b/spec/finders/joined_groups_finder_spec.rb
@@ -15,7 +15,7 @@
 
     context 'without a user' do
       before do
-        public_group.add_master(profile_owner)
+        public_group.add_maintainer(profile_owner)
       end
 
       it 'only shows public groups from profile owner' do
@@ -25,9 +25,9 @@
 
     context "with a user" do
       before do
-        private_group.add_master(profile_owner)
-        internal_group.add_master(profile_owner)
-        public_group.add_master(profile_owner)
+        private_group.add_maintainer(profile_owner)
+        internal_group.add_maintainer(profile_owner)
+        public_group.add_maintainer(profile_owner)
       end
 
       context "when the profile visitor is in the private group" do
@@ -64,7 +64,7 @@
 
         context "if authorized" do
           before do
-            internal_group.add_master(profile_visitor)
+            internal_group.add_maintainer(profile_visitor)
           end
 
           it "shows internal groups if authorized" do
diff --git a/spec/finders/members_finder_spec.rb b/spec/finders/members_finder_spec.rb
index 2fc5299b0f4cd5060caf77a92d390c18cd3cd606..db48f00cd7422e51ec4ed4ba58a0f11fa643599e 100644
--- a/spec/finders/members_finder_spec.rb
+++ b/spec/finders/members_finder_spec.rb
@@ -11,9 +11,9 @@
 
   it 'returns members for project and parent groups', :nested_groups do
     nested_group.request_access(user1)
-    member1 = group.add_master(user2)
-    member2 = nested_group.add_master(user3)
-    member3 = project.add_master(user4)
+    member1 = group.add_maintainer(user2)
+    member2 = nested_group.add_maintainer(user3)
+    member3 = project.add_maintainer(user4)
 
     result = described_class.new(project, user2).execute
 
@@ -23,9 +23,9 @@
   it 'includes nested group members if asked', :nested_groups do
     project = create(:project, namespace: group)
     nested_group.request_access(user1)
-    member1 = group.add_master(user2)
-    member2 = nested_group.add_master(user3)
-    member3 = project.add_master(user4)
+    member1 = group.add_maintainer(user2)
+    member2 = nested_group.add_maintainer(user3)
+    member3 = project.add_maintainer(user4)
 
     result = described_class.new(project, user2).execute(include_descendants: true)
 
diff --git a/spec/finders/merge_requests_finder_spec.rb b/spec/finders/merge_requests_finder_spec.rb
index 669ec602f1155321233e39688bbc437276a8eab0..35d0eeda8f61c92b0cde90ef61835ca2850779de 100644
--- a/spec/finders/merge_requests_finder_spec.rb
+++ b/spec/finders/merge_requests_finder_spec.rb
@@ -24,7 +24,7 @@
   let!(:merge_request5) { create(:merge_request, :simple, author: user, source_project: project4, target_project: project4) }
 
   before do
-    project1.add_master(user)
+    project1.add_maintainer(user)
     project2.add_developer(user)
     project3.add_developer(user)
     project2.add_developer(user2)
@@ -142,7 +142,7 @@
       end
 
       before do
-        new_project.add_master(user)
+        new_project.add_maintainer(user)
       end
 
       it 'filters by created_after' do
diff --git a/spec/finders/move_to_project_finder_spec.rb b/spec/finders/move_to_project_finder_spec.rb
index e1faf3d569c3bae5418184d601f6d6112255d85b..1511cb0e04c6d279606bb0e3e30069fefdd29dac 100644
--- a/spec/finders/move_to_project_finder_spec.rb
+++ b/spec/finders/move_to_project_finder_spec.rb
@@ -8,7 +8,7 @@
   let(:guest_project) { create(:project) }
   let(:reporter_project) { create(:project) }
   let(:developer_project) { create(:project) }
-  let(:master_project) { create(:project) }
+  let(:maintainer_project) { create(:project) }
 
   subject { described_class.new(user) }
 
@@ -23,9 +23,9 @@
       it 'returns projects equal or above Gitlab::Access::REPORTER ordered by id in descending order' do
         reporter_project.add_reporter(user)
         developer_project.add_developer(user)
-        master_project.add_master(user)
+        maintainer_project.add_maintainer(user)
 
-        expect(subject.execute(project).to_a).to eq([master_project, developer_project, reporter_project])
+        expect(subject.execute(project).to_a).to eq([maintainer_project, developer_project, reporter_project])
       end
 
       it 'does not include the source project' do
@@ -57,9 +57,9 @@
 
         reporter_project.add_reporter(user)
         developer_project.add_developer(user)
-        master_project.add_master(user)
+        maintainer_project.add_maintainer(user)
 
-        expect(subject.execute(project).to_a).to eq([master_project, developer_project])
+        expect(subject.execute(project).to_a).to eq([maintainer_project, developer_project])
       end
 
       it 'returns projects after the given offset id' do
@@ -67,9 +67,9 @@
 
         reporter_project.add_reporter(user)
         developer_project.add_developer(user)
-        master_project.add_master(user)
+        maintainer_project.add_maintainer(user)
 
-        expect(subject.execute(project, search: nil, offset_id: master_project.id).to_a).to eq([developer_project, reporter_project])
+        expect(subject.execute(project, search: nil, offset_id: maintainer_project.id).to_a).to eq([developer_project, reporter_project])
         expect(subject.execute(project, search: nil, offset_id: developer_project.id).to_a).to eq([reporter_project])
         expect(subject.execute(project, search: nil, offset_id: reporter_project.id).to_a).to be_empty
       end
@@ -84,10 +84,10 @@
 
       it 'returns projects matching a search query' do
         foo_project = create(:project)
-        foo_project.add_master(user)
+        foo_project.add_maintainer(user)
 
         wadus_project = create(:project, name: 'wadus')
-        wadus_project.add_master(user)
+        wadus_project.add_maintainer(user)
 
         expect(subject.execute(project).to_a).to eq([wadus_project, foo_project])
         expect(subject.execute(project, search: 'wadus').to_a).to eq([wadus_project])
diff --git a/spec/finders/notes_finder_spec.rb b/spec/finders/notes_finder_spec.rb
index 232f35c86f97adee5d6dad1e5e23351cc9d14895..b776e9d856ab969d7f7064127d63f35b78ae7fb4 100644
--- a/spec/finders/notes_finder_spec.rb
+++ b/spec/finders/notes_finder_spec.rb
@@ -5,7 +5,7 @@
   let(:project) { create(:project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe '#execute' do
diff --git a/spec/finders/projects_finder_spec.rb b/spec/finders/projects_finder_spec.rb
index 0dfe6ba9c323922478fb2a9c4bf31087a51b3019..7931ad9b9f06adf04f8a37d8edbede659b903af4 100644
--- a/spec/finders/projects_finder_spec.rb
+++ b/spec/finders/projects_finder_spec.rb
@@ -41,7 +41,7 @@
 
       describe 'with private projects' do
         before do
-          private_project.add_master(user)
+          private_project.add_maintainer(user)
         end
 
         it { is_expected.to match_array([public_project, internal_project, private_project]) }
@@ -56,7 +56,7 @@
 
     describe 'filter by visibility_level' do
       before do
-        private_project.add_master(user)
+        private_project.add_maintainer(user)
       end
 
       context 'private' do
diff --git a/spec/fixtures/trace/sample_trace b/spec/fixtures/trace/sample_trace
index c65cf05d5ca74e9fad5bc1a4a08ad40513f35015..7bfe3f83b7bd9629b96d09f336da62a002e6d534 100644
--- a/spec/fixtures/trace/sample_trace
+++ b/spec/fixtures/trace/sample_trace
@@ -41,7 +41,7 @@ From https://gitlab.com/gitlab-org/gitlab-ce
 section_end:1522927113:get_sources
 section_start:1522927113:restore_cache
 Checking cache for ruby-2.3.6-with-yarn...
-Downloading cache.zip from http://runners-cache-5-internal.gitlab.com:444/runner/project/13083/ruby-2.3.6-with-yarn 
+Downloading cache.zip from http://runners-cache-5-internal.gitlab.com:444/runner/project/13083/ruby-2.3.6-with-yarn
 Successfully extracted cache
 section_end:1522927128:restore_cache
 section_start:1522927128:download_artifacts
@@ -51,7 +51,7 @@ Downloading artifacts from coordinator... ok        id=61303215 respon
 Downloading artifacts from coordinator... ok        id=61303216 responseStatus=200 OK token=iy2yYbq8
 Downloading artifacts for setup-test-env (61303217)...
 Downloading artifacts from coordinator... ok        id=61303217 responseStatus=200 OK token=ur1g79-4
-WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 
+WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats)
 section_end:1522927141:download_artifacts
 section_start:1522927141:build_script
 $ bundle --version
@@ -1486,7 +1486,7 @@ Gitlab::ImportExport::ProjectTreeSaver
         overrides the project description
       group members
         does not export group members if it has no permission
-        does not export group members as master
+        does not export group members as maintainer
         exports group members as group owner
         as admin
           exports group members as admin
@@ -1690,7 +1690,7 @@ GroupsController
         and logged in as Developer
           behaves like member without ability to create subgroups
             renders the 404 page (PENDING: around hook at ./spec/spec_helper.rb:186 did not execute the example)
-        and logged in as Master
+        and logged in as Maintainer
           behaves like member without ability to create subgroups
             renders the 404 page (PENDING: around hook at ./spec/spec_helper.rb:186 did not execute the example)
       and can_create_group is false
@@ -1706,7 +1706,7 @@ GroupsController
         and logged in as Developer
           behaves like member without ability to create subgroups
             renders the 404 page (PENDING: around hook at ./spec/spec_helper.rb:186 did not execute the example)
-        and logged in as Master
+        and logged in as Maintainer
           behaves like member without ability to create subgroups
             renders the 404 page (PENDING: around hook at ./spec/spec_helper.rb:186 did not execute the example)
   GET #activity
@@ -2324,7 +2324,7 @@ Editing file blob
         shows blob editor with same branch
       with protected branch
         shows blob editor with patch branch
-    as master
+    as maintainer
       shows blob editor with same branch
 
 Boards::Lists::MoveService
@@ -2880,7 +2880,7 @@ API::V3::Environments
     won't update the external_url if only the name is passed
     returns a 404 if the environment does not exist
   DELETE /projects/:id/environments/:environment_id
-    as a master
+    as a maintainer
       returns a 200 for an existing environment
       returns a 404 for non existing id
     a non member
@@ -3001,11 +3001,11 @@ LfsFileLock
   #can_be_unlocked_by?
     when it's forced
       can be unlocked by the author
-      can be unlocked by a master
+      can be unlocked by a maintainer
       can't be unlocked by other user
     when it isn't forced
       can be unlocked by the author
-      can't be unlocked by a master
+      can't be unlocked by a maintainer
       can't be unlocked by other user
 
 Gitlab::Ci::Config::Entry::Boolean
@@ -3069,7 +3069,7 @@ Pending: (Failures listed here are expected and do not affect your suite's statu
      # around hook at ./spec/spec_helper.rb:186 did not execute the example
      # ./spec/controllers/groups_controller_spec.rb:25
 
-  5) GroupsController GET #new when creating subgroups and can_create_group is true and logged in as Master behaves like member without ability to create subgroups renders the 404 page
+  5) GroupsController GET #new when creating subgroups and can_create_group is true and logged in as Maintainer behaves like member without ability to create subgroups renders the 404 page
      # around hook at ./spec/spec_helper.rb:186 did not execute the example
      # ./spec/controllers/groups_controller_spec.rb:25
 
@@ -3089,7 +3089,7 @@ Pending: (Failures listed here are expected and do not affect your suite's statu
      # around hook at ./spec/spec_helper.rb:186 did not execute the example
      # ./spec/controllers/groups_controller_spec.rb:25
 
-  10) GroupsController GET #new when creating subgroups and can_create_group is false and logged in as Master behaves like member without ability to create subgroups renders the 404 page
+  10) GroupsController GET #new when creating subgroups and can_create_group is false and logged in as Maintainer behaves like member without ability to create subgroups renders the 404 page
      # around hook at ./spec/spec_helper.rb:186 did not execute the example
      # ./spec/controllers/groups_controller_spec.rb:25
 
@@ -3237,7 +3237,7 @@ Pending: (Failures listed here are expected and do not affect your suite's statu
      # around hook at ./spec/spec_helper.rb:190 did not execute the example
      # ./spec/services/groups/transfer_service_spec.rb:212
 
-  47) Groups::TransferService#execute when transferring a subgroup into another group when the group is allowed to be transferred should update parent group to the new parent 
+  47) Groups::TransferService#execute when transferring a subgroup into another group when the group is allowed to be transferred should update parent group to the new parent
      # around hook at ./spec/spec_helper.rb:190 did not execute the example
      # ./spec/services/groups/transfer_service_spec.rb:216
 
@@ -3435,10 +3435,10 @@ section_end:1522927515:after_script
 section_end:1522927516:archive_cache
 section_start:1522927516:upload_artifacts
 Uploading artifacts...
-coverage/: found 5 matching files                  
-knapsack/: found 5 matching files                  
-rspec_flaky/: found 4 matching files               
-WARNING: tmp/capybara/: no matching files          
+coverage/: found 5 matching files                 
+knapsack/: found 5 matching files                 
+rspec_flaky/: found 4 matching files              
+WARNING: tmp/capybara/: no matching files         
 Uploading artifacts to coordinator... ok            id=61303283 responseStatus=201 Created token=rusBKvxM
 section_end:1522927520:upload_artifacts
 Job succeeded
diff --git a/spec/helpers/markup_helper_spec.rb b/spec/helpers/markup_helper_spec.rb
index d5ed5c59c61eb03fa8ba12d78a22f8675bd90c29..597648b064de1f2f92037c7cf839c29b5b90b411 100644
--- a/spec/helpers/markup_helper_spec.rb
+++ b/spec/helpers/markup_helper_spec.rb
@@ -11,7 +11,7 @@
 
   before do
     # Ensure the generated reference links aren't redacted
-    project.add_master(user)
+    project.add_maintainer(user)
 
     # Helper expects a @project instance variable
     helper.instance_variable_set(:@project, project)
diff --git a/spec/helpers/notes_helper_spec.rb b/spec/helpers/notes_helper_spec.rb
index b992bdb4a5eb1637e81141e57cd6265f676261d6..21461e46cf4c40faea74d7d295c9b4bd7ae42030 100644
--- a/spec/helpers/notes_helper_spec.rb
+++ b/spec/helpers/notes_helper_spec.rb
@@ -6,18 +6,18 @@
   let(:owner) { create(:owner) }
   let(:group) { create(:group) }
   let(:project) { create(:project, namespace: group) }
-  let(:master) { create(:user) }
+  let(:maintainer) { create(:user) }
   let(:reporter) { create(:user) }
   let(:guest) { create(:user) }
 
   let(:owner_note) { create(:note, author: owner, project: project) }
-  let(:master_note) { create(:note, author: master, project: project) }
+  let(:maintainer_note) { create(:note, author: maintainer, project: project) }
   let(:reporter_note) { create(:note, author: reporter, project: project) }
-  let!(:notes) { [owner_note, master_note, reporter_note] }
+  let!(:notes) { [owner_note, maintainer_note, reporter_note] }
 
   before do
     group.add_owner(owner)
-    project.add_master(master)
+    project.add_maintainer(maintainer)
     project.add_reporter(reporter)
     project.add_guest(guest)
   end
@@ -25,16 +25,16 @@
   describe "#notes_max_access_for_users" do
     it 'returns access levels' do
       expect(helper.note_max_access_for_user(owner_note)).to eq(Gitlab::Access::OWNER)
-      expect(helper.note_max_access_for_user(master_note)).to eq(Gitlab::Access::MASTER)
+      expect(helper.note_max_access_for_user(maintainer_note)).to eq(Gitlab::Access::MAINTAINER)
       expect(helper.note_max_access_for_user(reporter_note)).to eq(Gitlab::Access::REPORTER)
     end
 
     it 'handles access in different projects' do
       second_project = create(:project)
-      second_project.add_reporter(master)
-      other_note = create(:note, author: master, project: second_project)
+      second_project.add_reporter(maintainer)
+      other_note = create(:note, author: maintainer, project: second_project)
 
-      expect(helper.note_max_access_for_user(master_note)).to eq(Gitlab::Access::MASTER)
+      expect(helper.note_max_access_for_user(maintainer_note)).to eq(Gitlab::Access::MAINTAINER)
       expect(helper.note_max_access_for_user(other_note)).to eq(Gitlab::Access::REPORTER)
     end
   end
diff --git a/spec/javascripts/fixtures/commit.rb b/spec/javascripts/fixtures/commit.rb
index 351db6ba184eed20a232981b7fd433fbc16c80df..24ab8159a1882f5bce2c2707055cfb2836b150d8 100644
--- a/spec/javascripts/fixtures/commit.rb
+++ b/spec/javascripts/fixtures/commit.rb
@@ -14,7 +14,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     sign_in(user)
   end
 
diff --git a/spec/javascripts/fixtures/groups.rb b/spec/javascripts/fixtures/groups.rb
index 35be52fbf97490912f2c70771acd1e343a4a6d56..a2035ceae15c26ea37d2e439ff8b1e43e2d265ed 100644
--- a/spec/javascripts/fixtures/groups.rb
+++ b/spec/javascripts/fixtures/groups.rb
@@ -13,7 +13,7 @@
   end
 
   before do
-    group.add_master(admin)
+    group.add_maintainer(admin)
     sign_in(admin)
   end
 
diff --git a/spec/javascripts/fixtures/projects.rb b/spec/javascripts/fixtures/projects.rb
index e8865b04874b5132dd1e5e433b43664c3f6b7489..57c78182abc96518bb453fa7feeda067d13500d4 100644
--- a/spec/javascripts/fixtures/projects.rb
+++ b/spec/javascripts/fixtures/projects.rb
@@ -17,7 +17,7 @@
   end
 
   before do
-    project.add_master(admin)
+    project.add_maintainer(admin)
     sign_in(admin)
   end
 
diff --git a/spec/lib/banzai/filter/redactor_filter_spec.rb b/spec/lib/banzai/filter/redactor_filter_spec.rb
index 9a2e521fdcfd8b93cce54ca350a9888de4a4c50f..919825a6102699d84390427c04d41101fb4993fb 100644
--- a/spec/lib/banzai/filter/redactor_filter_spec.rb
+++ b/spec/lib/banzai/filter/redactor_filter_spec.rb
@@ -46,7 +46,7 @@ def reference_link(data)
       it 'allows permitted Project references' do
         user = create(:user)
         project = create(:project)
-        project.add_master(user)
+        project.add_maintainer(user)
 
         link = reference_link(project: project.id, reference_type: 'test')
         doc = filter(link, current_user: user)
diff --git a/spec/lib/gitlab/checks/change_access_spec.rb b/spec/lib/gitlab/checks/change_access_spec.rb
index 1cb8143a9e972543ad25ef84f7197a0b252733c3..7c04aa27971c0a59bb467043b274f83b71c3e9d1 100644
--- a/spec/lib/gitlab/checks/change_access_spec.rb
+++ b/spec/lib/gitlab/checks/change_access_spec.rb
@@ -54,7 +54,7 @@
 
         context 'as maintainer' do
           before do
-            project.add_master(user)
+            project.add_maintainer(user)
           end
 
           context 'deletion' do
@@ -144,7 +144,7 @@
 
           context 'if the user is allowed to delete protected branches' do
             before do
-              project.add_master(user)
+              project.add_maintainer(user)
             end
 
             context 'through the web interface' do
diff --git a/spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb
index a973ccda8de1903fbce8ee1309f41d7a894c58e0..8ba56d738384eb300dd3f5082191038caee0822b 100644
--- a/spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb
@@ -99,9 +99,9 @@
       end
     end
 
-    context 'when user is a master' do
+    context 'when user is a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it { is_expected.to be_truthy }
diff --git a/spec/lib/gitlab/ci/status/build/play_spec.rb b/spec/lib/gitlab/ci/status/build/play_spec.rb
index e2bb378f663c3adf71a6dfb0dffbeab5d3c34d37..02f8c4c114bd7dee986c6e27031020f444cd5106 100644
--- a/spec/lib/gitlab/ci/status/build/play_spec.rb
+++ b/spec/lib/gitlab/ci/status/build/play_spec.rb
@@ -46,7 +46,7 @@
       context 'when user can not push to the branch' do
         before do
           build.project.add_developer(user)
-          create(:protected_branch, :masters_can_push,
+          create(:protected_branch, :maintainers_can_push,
                  name: build.ref, project: project)
         end
 
diff --git a/spec/lib/gitlab/ci/status/stage/common_spec.rb b/spec/lib/gitlab/ci/status/stage/common_spec.rb
index 6ec35f8da7ed2b8e8b4789ddcc28b6f0c99b2347..bb2d0a2c75cffcb5f78aa076742f9552e65af6f6 100644
--- a/spec/lib/gitlab/ci/status/stage/common_spec.rb
+++ b/spec/lib/gitlab/ci/status/stage/common_spec.rb
@@ -27,7 +27,7 @@
 
   context 'when user has permission to read pipeline' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it 'has details' do
diff --git a/spec/lib/gitlab/closing_issue_extractor_spec.rb b/spec/lib/gitlab/closing_issue_extractor_spec.rb
index 8d4862932b298f312af0574297749aa1abf52229..3a0688b7cbb005b3597dbb0757d980819870e936 100644
--- a/spec/lib/gitlab/closing_issue_extractor_spec.rb
+++ b/spec/lib/gitlab/closing_issue_extractor_spec.rb
@@ -15,7 +15,7 @@
   before do
     project.add_developer(project.creator)
     project.add_developer(project2.creator)
-    project2.add_master(project.creator)
+    project2.add_maintainer(project.creator)
   end
 
   describe "#closed_by_message" do
@@ -298,7 +298,7 @@
       context 'with an external issue tracker reference' do
         it 'extracts the referenced issue' do
           jira_project = create(:jira_project, name: 'JIRA_EXT1')
-          jira_project.add_master(jira_project.creator)
+          jira_project.add_maintainer(jira_project.creator)
           jira_issue = ExternalIssue.new("#{jira_project.name}-1", project: jira_project)
           closing_issue_extractor = described_class.new(jira_project, jira_project.creator)
           message = "Resolve #{jira_issue.to_reference}"
diff --git a/spec/lib/gitlab/cycle_analytics/permissions_spec.rb b/spec/lib/gitlab/cycle_analytics/permissions_spec.rb
index 6de4bd3dc7cf0cc657ff4e0c0330503eb8195e72..f670c7f6c7541fd376c699e1758a1b7e18830f7c 100644
--- a/spec/lib/gitlab/cycle_analytics/permissions_spec.rb
+++ b/spec/lib/gitlab/cycle_analytics/permissions_spec.rb
@@ -36,9 +36,9 @@
     end
   end
 
-  context 'user is master' do
+  context 'user is maintainer' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it 'has permissions to issue stage' do
diff --git a/spec/lib/gitlab/git_access_spec.rb b/spec/lib/gitlab/git_access_spec.rb
index 6d11efb42c87426a4ea636815d33b6981e647928..832db2bd9065ae0acc511e67c880e4ebac441316 100644
--- a/spec/lib/gitlab/git_access_spec.rb
+++ b/spec/lib/gitlab/git_access_spec.rb
@@ -40,7 +40,7 @@ def disable_protocol(protocol)
 
       before do
         disable_protocol('http')
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it 'blocks http push and pull' do
@@ -105,7 +105,7 @@ def disable_protocol(protocol)
         context 'when actor is a User' do
           context 'when the User can read the project' do
             before do
-              project.add_master(user)
+              project.add_maintainer(user)
             end
 
             it 'allows push and pull access' do
@@ -246,7 +246,7 @@ def disable_protocol(protocol)
 
   shared_examples '#check with a key that is not valid' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'key is too small' do
@@ -299,7 +299,7 @@ def disable_protocol(protocol)
 
   describe '#add_project_moved_message!', :clean_gitlab_redis_shared_state do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'when a redirect was not followed to find the project' do
@@ -327,7 +327,7 @@ def disable_protocol(protocol)
 
   describe '#check_authentication_abilities!' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'when download' do
@@ -373,7 +373,7 @@ def disable_protocol(protocol)
 
   describe '#check_command_disabled!' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'over http' do
@@ -521,8 +521,8 @@ def disable_protocol(protocol)
   end
 
   describe '#check_download_access!' do
-    it 'allows masters to pull' do
-      project.add_master(user)
+    it 'allows maintainers to pull' do
+      project.add_maintainer(user)
 
       expect { pull_access_check }.not_to raise_error
     end
@@ -534,7 +534,7 @@ def disable_protocol(protocol)
     end
 
     it 'disallows blocked users to pull' do
-      project.add_master(user)
+      project.add_maintainer(user)
       user.block
 
       expect { pull_access_check }.to raise_unauthorized('Your account has been blocked.')
@@ -805,7 +805,7 @@ def self.run_permission_checks(permissions_matrix)
         merge_into_protected_branch: true
       },
 
-      master: {
+      maintainer: {
         push_new_branch: true,
         push_master: true,
         push_protected_branch: true,
@@ -910,7 +910,7 @@ def self.run_permission_checks(permissions_matrix)
         end
 
         run_permission_checks(permissions_matrix.deep_merge(developer: { push_protected_branch: false, push_all: false, merge_into_protected_branch: false },
-                                                            master: { push_protected_branch: false, push_all: false, merge_into_protected_branch: false },
+                                                            maintainer: { push_protected_branch: false, push_all: false, merge_into_protected_branch: false },
                                                             admin: { push_protected_branch: false, push_all: false, merge_into_protected_branch: false }))
       end
     end
@@ -982,7 +982,7 @@ def self.run_permission_checks(permissions_matrix)
     let(:project) { create(:project, :repository, :read_only) }
 
     it 'denies push access' do
-      project.add_master(user)
+      project.add_maintainer(user)
 
       expect { push_access_check }.to raise_unauthorized('The repository is temporarily read-only. Please try again later.')
     end
@@ -1112,9 +1112,9 @@ def self.run_permission_checks(permissions_matrix)
       it_behaves_like 'access after accepting terms'
     end
 
-    describe 'as a master of the project' do
+    describe 'as a maintainer of the project' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like 'access after accepting terms'
diff --git a/spec/lib/gitlab/google_code_import/importer_spec.rb b/spec/lib/gitlab/google_code_import/importer_spec.rb
index 017facd0f5e906fcda01b7de0c7206170e7a7423..031f57dbc65cb6daadebcbf624abca89235f00e5 100644
--- a/spec/lib/gitlab/google_code_import/importer_spec.rb
+++ b/spec/lib/gitlab/google_code_import/importer_spec.rb
@@ -15,7 +15,7 @@
   subject { described_class.new(project) }
 
   before do
-    project.add_master(project.creator)
+    project.add_maintainer(project.creator)
     project.create_import_data(data: import_data)
   end
 
diff --git a/spec/lib/gitlab/import_export/members_mapper_spec.rb b/spec/lib/gitlab/import_export/members_mapper_spec.rb
index 246f009ad2775a8cf1134c01cace99cb5e1c4a9c..67e4c2899063f2910d107abc8b12c8da203a48ba 100644
--- a/spec/lib/gitlab/import_export/members_mapper_spec.rb
+++ b/spec/lib/gitlab/import_export/members_mapper_spec.rb
@@ -111,7 +111,7 @@
       end
 
       it 'maps the project member if it already exists' do
-        project.add_master(user2)
+        project.add_maintainer(user2)
 
         expect(members_mapper.map[exported_user_id]).to eq(user2.id)
       end
diff --git a/spec/lib/gitlab/import_export/project_tree_saver_spec.rb b/spec/lib/gitlab/import_export/project_tree_saver_spec.rb
index 2b8a11ce8f951e18fe87f1a938c58f5af76cad96..fec8a2af9ab5ce70dccba2c4196593c215396427 100644
--- a/spec/lib/gitlab/import_export/project_tree_saver_spec.rb
+++ b/spec/lib/gitlab/import_export/project_tree_saver_spec.rb
@@ -9,7 +9,7 @@
     let!(:project) { setup_project }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       allow_any_instance_of(Gitlab::ImportExport).to receive(:storage_path).and_return(export_path)
       allow_any_instance_of(MergeRequest).to receive(:source_branch_sha).and_return('ABCD')
       allow_any_instance_of(MergeRequest).to receive(:target_branch_sha).and_return('DCBA')
@@ -217,8 +217,8 @@
           expect(member_emails).not_to include('group@member.com')
         end
 
-        it 'does not export group members as master' do
-          Group.first.add_master(user)
+        it 'does not export group members as maintainer' do
+          Group.first.add_maintainer(user)
 
           expect(member_emails).not_to include('group@member.com')
         end
diff --git a/spec/lib/gitlab/import_export/repo_saver_spec.rb b/spec/lib/gitlab/import_export/repo_saver_spec.rb
index 187ec8fcfa2ff9bff80aad4017b047d30a33e61b..5a646b4aac8194d21a3a027c24dd0c6327b85ddf 100644
--- a/spec/lib/gitlab/import_export/repo_saver_spec.rb
+++ b/spec/lib/gitlab/import_export/repo_saver_spec.rb
@@ -9,7 +9,7 @@
     let(:bundler) { described_class.new(project: project, shared: shared) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       allow_any_instance_of(Gitlab::ImportExport).to receive(:storage_path).and_return(export_path)
     end
 
diff --git a/spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb b/spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb
index 24bc231d5a0a0f02521c5ff32c498175830cc1d7..441aa1defe6e244e7205fd378e5370a11651a5de 100644
--- a/spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb
+++ b/spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb
@@ -10,7 +10,7 @@
     let!(:project_wiki) { ProjectWiki.new(project, user) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       allow_any_instance_of(Gitlab::ImportExport).to receive(:storage_path).and_return(export_path)
       project_wiki.wiki
       project_wiki.create_page("index", "test content")
diff --git a/spec/lib/gitlab/middleware/go_spec.rb b/spec/lib/gitlab/middleware/go_spec.rb
index b24c9882c0ca20aa4f62ed2cc8edbda8545d98a4..7a3a9ab875b0c74af6941c69447c24f850561eb3 100644
--- a/spec/lib/gitlab/middleware/go_spec.rb
+++ b/spec/lib/gitlab/middleware/go_spec.rb
@@ -79,7 +79,7 @@
                 let(:current_user) { project.creator }
 
                 before do
-                  project.team.add_master(current_user)
+                  project.team.add_maintainer(current_user)
                 end
 
                 shared_examples 'authenticated' do
diff --git a/spec/lib/gitlab/project_authorizations_spec.rb b/spec/lib/gitlab/project_authorizations_spec.rb
index f3cd6961e9439424017dcfdcf54909f5dc7fc7eb..00c62c7bf96f09fcb97765513567e3bc3ace9332 100644
--- a/spec/lib/gitlab/project_authorizations_spec.rb
+++ b/spec/lib/gitlab/project_authorizations_spec.rb
@@ -41,7 +41,7 @@ def map_access_levels(rows)
   it 'includes the correct access levels' do
     mapping = map_access_levels(authorizations)
 
-    expect(mapping[owned_project.id]).to eq(Gitlab::Access::MASTER)
+    expect(mapping[owned_project.id]).to eq(Gitlab::Access::MAINTAINER)
     expect(mapping[other_project.id]).to eq(Gitlab::Access::REPORTER)
     expect(mapping[group_project.id]).to eq(Gitlab::Access::DEVELOPER)
   end
@@ -62,11 +62,11 @@ def map_access_levels(rows)
       end
 
       it 'uses the greatest access level when a user is a member of a nested group' do
-        nested_group.add_master(user)
+        nested_group.add_maintainer(user)
 
         mapping = map_access_levels(authorizations)
 
-        expect(mapping[nested_project.id]).to eq(Gitlab::Access::MASTER)
+        expect(mapping[nested_project.id]).to eq(Gitlab::Access::MAINTAINER)
       end
     end
   end
diff --git a/spec/lib/gitlab/project_search_results_spec.rb b/spec/lib/gitlab/project_search_results_spec.rb
index 50224bde7227ee9508204e016a31e3bdcebc8cc6..767a3092c73bcbfbf8036d0ff190582cdc9b4a78 100644
--- a/spec/lib/gitlab/project_search_results_spec.rb
+++ b/spec/lib/gitlab/project_search_results_spec.rb
@@ -385,7 +385,7 @@
       let!(:private_project) { create(:project, :private, :repository, creator: creator, namespace: creator.namespace) }
       let(:team_master) do
         user = create(:user, username: 'private-project-master')
-        private_project.add_master(user)
+        private_project.add_maintainer(user)
         user
       end
       let(:team_reporter) do
diff --git a/spec/lib/gitlab/slash_commands/issue_move_spec.rb b/spec/lib/gitlab/slash_commands/issue_move_spec.rb
index d41441c9472a44a8ed64c4bef995a3e84c93f351..9a990e1fad7db0d8584d9998f95f8d6270341382 100644
--- a/spec/lib/gitlab/slash_commands/issue_move_spec.rb
+++ b/spec/lib/gitlab/slash_commands/issue_move_spec.rb
@@ -27,7 +27,7 @@
     set(:other_project) { create(:project, namespace: project.namespace) }
 
     before do
-      [project, other_project].each { |prj| prj.add_master(user) }
+      [project, other_project].each { |prj| prj.add_maintainer(user) }
     end
 
     subject { described_class.new(project, chat_name) }
diff --git a/spec/lib/gitlab/slash_commands/issue_new_spec.rb b/spec/lib/gitlab/slash_commands/issue_new_spec.rb
index 8e7df946529d1ed3a466c081e2076a84199394fa..724c76ade6e78916e9e9790846215454eb2d1c5f 100644
--- a/spec/lib/gitlab/slash_commands/issue_new_spec.rb
+++ b/spec/lib/gitlab/slash_commands/issue_new_spec.rb
@@ -8,7 +8,7 @@
     let(:regex_match) { described_class.match("issue create bird is the word") }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     subject do
diff --git a/spec/lib/gitlab/slash_commands/issue_search_spec.rb b/spec/lib/gitlab/slash_commands/issue_search_spec.rb
index 189e9592f1b144c0e3e7c27a2da166bce8146ae6..47787307990c36ed699535303e4b250647c0697e 100644
--- a/spec/lib/gitlab/slash_commands/issue_search_spec.rb
+++ b/spec/lib/gitlab/slash_commands/issue_search_spec.rb
@@ -22,7 +22,7 @@
 
     context 'the user has access' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it 'returns all results' do
diff --git a/spec/lib/gitlab/slash_commands/issue_show_spec.rb b/spec/lib/gitlab/slash_commands/issue_show_spec.rb
index b1db1638237a5ff7e886c1bbd6213a71ee7cebfb..5c4ba2736bad8dd2e94d78735058e604ef2f73b5 100644
--- a/spec/lib/gitlab/slash_commands/issue_show_spec.rb
+++ b/spec/lib/gitlab/slash_commands/issue_show_spec.rb
@@ -9,7 +9,7 @@
     let(:regex_match) { described_class.match("issue show #{issue.iid}") }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     subject do
diff --git a/spec/lib/gitlab/user_access_spec.rb b/spec/lib/gitlab/user_access_spec.rb
index 0469d984a4072a553ad2f68f73953b4e33ec0fc4..9da06bb40f42eebc4d670c8672317e30cffcca98 100644
--- a/spec/lib/gitlab/user_access_spec.rb
+++ b/spec/lib/gitlab/user_access_spec.rb
@@ -9,8 +9,8 @@
 
   describe '#can_push_to_branch?' do
     describe 'push to none protected branch' do
-      it 'returns true if user is a master' do
-        project.add_master(user)
+      it 'returns true if user is a maintainer' do
+        project.add_maintainer(user)
 
         expect(access.can_push_to_branch?('random_branch')).to be_truthy
       end
@@ -38,8 +38,8 @@
         expect(access.can_push_to_branch?('master')).to be_truthy
       end
 
-      it 'returns true if user is master' do
-        empty_project.add_master(user)
+      it 'returns true if user is maintainer' do
+        empty_project.add_maintainer(user)
 
         expect(project_access.can_push_to_branch?('master')).to be_truthy
       end
@@ -83,8 +83,8 @@
         expect(access.can_push_to_branch?(branch.name)).to be_truthy
       end
 
-      it 'returns true if user is a master' do
-        project.add_master(user)
+      it 'returns true if user is a maintainer' do
+        project.add_maintainer(user)
 
         expect(access.can_push_to_branch?(branch.name)).to be_truthy
       end
@@ -113,8 +113,8 @@
         @branch = create :protected_branch, :developers_can_push, project: project
       end
 
-      it 'returns true if user is a master' do
-        project.add_master(user)
+      it 'returns true if user is a maintainer' do
+        project.add_maintainer(user)
 
         expect(access.can_push_to_branch?(@branch.name)).to be_truthy
       end
@@ -170,8 +170,8 @@
         @branch = create :protected_branch, :developers_can_merge, project: project
       end
 
-      it 'returns true if user is a master' do
-        project.add_master(user)
+      it 'returns true if user is a maintainer' do
+        project.add_maintainer(user)
 
         expect(access.can_merge_to_branch?(@branch.name)).to be_truthy
       end
@@ -192,8 +192,8 @@
 
   describe '#can_create_tag?' do
     describe 'push to none protected tag' do
-      it 'returns true if user is a master' do
-        project.add_user(user, :master)
+      it 'returns true if user is a maintainer' do
+        project.add_user(user, :maintainer)
 
         expect(access.can_create_tag?('random_tag')).to be_truthy
       end
@@ -215,8 +215,8 @@
       let(:tag) { create(:protected_tag, project: project, name: "test") }
       let(:not_existing_tag) { create :protected_tag, project: project }
 
-      it 'returns true if user is a master' do
-        project.add_user(user, :master)
+      it 'returns true if user is a maintainer' do
+        project.add_user(user, :maintainer)
 
         expect(access.can_create_tag?(tag.name)).to be_truthy
       end
@@ -239,8 +239,8 @@
         @tag = create(:protected_tag, :developers_can_create, project: project)
       end
 
-      it 'returns true if user is a master' do
-        project.add_user(user, :master)
+      it 'returns true if user is a maintainer' do
+        project.add_user(user, :maintainer)
 
         expect(access.can_create_tag?(@tag.name)).to be_truthy
       end
@@ -261,8 +261,8 @@
 
   describe '#can_delete_branch?' do
     describe 'delete unprotected branch' do
-      it 'returns true if user is a master' do
-        project.add_user(user, :master)
+      it 'returns true if user is a maintainer' do
+        project.add_user(user, :maintainer)
 
         expect(access.can_delete_branch?('random_branch')).to be_truthy
       end
@@ -283,8 +283,8 @@
     describe 'delete protected branch' do
       let(:branch) { create(:protected_branch, project: project, name: "test") }
 
-      it 'returns true if user is a master' do
-        project.add_user(user, :master)
+      it 'returns true if user is a maintainer' do
+        project.add_user(user, :maintainer)
 
         expect(access.can_delete_branch?(branch.name)).to be_truthy
       end
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index effbfb1ba8498a39caf746a45e85efe55f80f3aa..581132b66720da33e1e8ce08ab104b33d6cd9f34 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -552,7 +552,7 @@ def have_referable_subject(referable, reply: false)
     describe 'project access requested' do
       let(:project) do
         create(:project, :public, :access_requestable) do |project|
-          project.add_master(project.owner)
+          project.add_maintainer(project.owner)
         end
       end
 
@@ -627,8 +627,8 @@ def invite_to_project(project, inviter:)
     end
 
     describe 'project invitation' do
-      let(:master) { create(:user).tap { |u| project.add_master(u) } }
-      let(:project_member) { invite_to_project(project, inviter: master) }
+      let(:maintainer) { create(:user).tap { |u| project.add_maintainer(u) } }
+      let(:project_member) { invite_to_project(project, inviter: maintainer) }
 
       subject { described_class.member_invited_email('project', project_member.id, project_member.invite_token) }
 
@@ -647,9 +647,9 @@ def invite_to_project(project, inviter:)
 
     describe 'project invitation accepted' do
       let(:invited_user) { create(:user, name: 'invited user') }
-      let(:master) { create(:user).tap { |u| project.add_master(u) } }
+      let(:maintainer) { create(:user).tap { |u| project.add_maintainer(u) } }
       let(:project_member) do
-        invitee = invite_to_project(project, inviter: master)
+        invitee = invite_to_project(project, inviter: maintainer)
         invitee.accept_invite!(invited_user)
         invitee
       end
@@ -670,14 +670,14 @@ def invite_to_project(project, inviter:)
     end
 
     describe 'project invitation declined' do
-      let(:master) { create(:user).tap { |u| project.add_master(u) } }
+      let(:maintainer) { create(:user).tap { |u| project.add_maintainer(u) } }
       let(:project_member) do
-        invitee = invite_to_project(project, inviter: master)
+        invitee = invite_to_project(project, inviter: maintainer)
         invitee.decline_invite!
         invitee
       end
 
-      subject { described_class.member_invite_declined_email('project', project.id, project_member.invite_email, master.id) }
+      subject { described_class.member_invite_declined_email('project', project.id, project_member.invite_email, maintainer.id) }
 
       it_behaves_like 'an email sent from GitLab'
       it_behaves_like 'it should not have Gmail Actions links'
diff --git a/spec/models/concerns/issuable_spec.rb b/spec/models/concerns/issuable_spec.rb
index 1cfd526834c5629c205746d95711d339941af2e8..ec6374f3963a5824de9d3df36c981548c9bc2a54 100644
--- a/spec/models/concerns/issuable_spec.rb
+++ b/spec/models/concerns/issuable_spec.rb
@@ -549,7 +549,7 @@ def spend_time(seconds)
     let(:project) { create(:project, namespace: group) }
     let(:other_project) { create(:project) }
     let(:owner) { create(:owner) }
-    let(:master) { create(:user) }
+    let(:maintainer) { create(:user) }
     let(:reporter) { create(:user) }
     let(:guest) { create(:user) }
 
@@ -558,7 +558,7 @@ def spend_time(seconds)
 
     before do
       group.add_owner(owner)
-      project.add_master(master)
+      project.add_maintainer(maintainer)
       project.add_reporter(reporter)
       project.add_guest(guest)
       project.add_guest(contributor)
@@ -570,8 +570,8 @@ def spend_time(seconds)
     let(:merged_mr_other_project) { create(:merge_request, :merged, author: first_time_contributor, target_project: other_project, source_project: other_project) }
 
     context "for merge requests" do
-      it "is false for MASTER" do
-        mr = create(:merge_request, author: master, target_project: project, source_project: project)
+      it "is false for MAINTAINER" do
+        mr = create(:merge_request, author: maintainer, target_project: project, source_project: project)
 
         expect(mr).not_to be_first_contribution
       end
diff --git a/spec/models/concerns/protected_ref_access_spec.rb b/spec/models/concerns/protected_ref_access_spec.rb
index a62ca391e25318d108fa4920ee90193cce16cdb3..ce602337647da8eea357cd860a4df764e963f7f0 100644
--- a/spec/models/concerns/protected_ref_access_spec.rb
+++ b/spec/models/concerns/protected_ref_access_spec.rb
@@ -2,7 +2,7 @@
 
 describe ProtectedRefAccess do
   subject(:protected_ref_access) do
-    create(:protected_branch, :masters_can_push).push_access_levels.first
+    create(:protected_branch, :maintainers_can_push).push_access_levels.first
   end
 
   let(:project) { protected_ref_access.project }
@@ -14,11 +14,11 @@
       expect(protected_ref_access.check_access(admin)).to be_truthy
     end
 
-    it 'is true for masters' do
-      master = create(:user)
-      project.add_master(master)
+    it 'is true for maintainers' do
+      maintainer = create(:user)
+      project.add_maintainer(maintainer)
 
-      expect(protected_ref_access.check_access(master)).to be_truthy
+      expect(protected_ref_access.check_access(maintainer)).to be_truthy
     end
 
     it 'is for developers of the project' do
diff --git a/spec/models/concerns/resolvable_discussion_spec.rb b/spec/models/concerns/resolvable_discussion_spec.rb
index 2f9f63ce7e0eac46bda6a332a11eccf938eef5df..97b046b0f210be8987822bbe78071d2ebdb2eb89 100644
--- a/spec/models/concerns/resolvable_discussion_spec.rb
+++ b/spec/models/concerns/resolvable_discussion_spec.rb
@@ -190,7 +190,7 @@
 
         context "when the signed in user can push to the project" do
           before do
-            subject.project.add_master(current_user)
+            subject.project.add_maintainer(current_user)
           end
 
           it "returns true" do
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index aeec485358e2dc4efc283182124ab281567e1c9c..0729eb99e781a756b599f588828b36c7f88d36ef 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -177,7 +177,7 @@
 
     describe 'when the user has access to a group' do
       before do
-        group.add_user(user, Gitlab::Access::MASTER)
+        group.add_user(user, Gitlab::Access::MAINTAINER)
       end
 
       it { is_expected.to eq([group]) }
@@ -229,10 +229,10 @@
     let(:user) { create(:user) }
 
     before do
-      group.add_user(user, GroupMember::MASTER)
+      group.add_user(user, GroupMember::MAINTAINER)
     end
 
-    it { expect(group.group_members.masters.map(&:user)).to include(user) }
+    it { expect(group.group_members.maintainers.map(&:user)).to include(user) }
   end
 
   describe '#add_users' do
@@ -254,7 +254,7 @@
     let(:user) { create(:user) }
 
     before do
-      group.add_user(user, GroupMember::MASTER)
+      group.add_user(user, GroupMember::MAINTAINER)
     end
 
     it "is true if avatar is image" do
@@ -274,7 +274,7 @@
 
     context 'when avatar file is uploaded' do
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       it 'shows correct avatar url' do
@@ -317,7 +317,7 @@
     end
 
     it { expect(group.has_owner?(@members[:owner])).to be_truthy }
-    it { expect(group.has_owner?(@members[:master])).to be_falsey }
+    it { expect(group.has_owner?(@members[:maintainer])).to be_falsey }
     it { expect(group.has_owner?(@members[:developer])).to be_falsey }
     it { expect(group.has_owner?(@members[:reporter])).to be_falsey }
     it { expect(group.has_owner?(@members[:guest])).to be_falsey }
@@ -325,19 +325,19 @@
     it { expect(group.has_owner?(nil)).to be_falsey }
   end
 
-  describe '#has_master?' do
+  describe '#has_maintainer?' do
     before do
       @members = setup_group_members(group)
-      create(:group_member, :invited, :master, group: group)
+      create(:group_member, :invited, :maintainer, group: group)
     end
 
-    it { expect(group.has_master?(@members[:owner])).to be_falsey }
-    it { expect(group.has_master?(@members[:master])).to be_truthy }
-    it { expect(group.has_master?(@members[:developer])).to be_falsey }
-    it { expect(group.has_master?(@members[:reporter])).to be_falsey }
-    it { expect(group.has_master?(@members[:guest])).to be_falsey }
-    it { expect(group.has_master?(@members[:requester])).to be_falsey }
-    it { expect(group.has_master?(nil)).to be_falsey }
+    it { expect(group.has_maintainer?(@members[:owner])).to be_falsey }
+    it { expect(group.has_maintainer?(@members[:maintainer])).to be_truthy }
+    it { expect(group.has_maintainer?(@members[:developer])).to be_falsey }
+    it { expect(group.has_maintainer?(@members[:reporter])).to be_falsey }
+    it { expect(group.has_maintainer?(@members[:guest])).to be_falsey }
+    it { expect(group.has_maintainer?(@members[:requester])).to be_falsey }
+    it { expect(group.has_maintainer?(nil)).to be_falsey }
   end
 
   describe '#lfs_enabled?' do
@@ -401,7 +401,7 @@
   def setup_group_members(group)
     members = {
       owner: create(:user),
-      master: create(:user),
+      maintainer: create(:user),
       developer: create(:user),
       reporter: create(:user),
       guest: create(:user),
@@ -409,7 +409,7 @@ def setup_group_members(group)
     }
 
     group.add_user(members[:owner], GroupMember::OWNER)
-    group.add_user(members[:master], GroupMember::MASTER)
+    group.add_user(members[:maintainer], GroupMember::MAINTAINER)
     group.add_user(members[:developer], GroupMember::DEVELOPER)
     group.add_user(members[:reporter], GroupMember::REPORTER)
     group.add_user(members[:guest], GroupMember::GUEST)
@@ -439,25 +439,25 @@ def setup_group_members(group)
 
   describe '#members_with_parents', :nested_groups do
     let!(:group) { create(:group, :nested) }
-    let!(:master) { group.parent.add_user(create(:user), GroupMember::MASTER) }
+    let!(:maintainer) { group.parent.add_user(create(:user), GroupMember::MAINTAINER) }
     let!(:developer) { group.add_user(create(:user), GroupMember::DEVELOPER) }
 
     it 'returns parents members' do
       expect(group.members_with_parents).to include(developer)
-      expect(group.members_with_parents).to include(master)
+      expect(group.members_with_parents).to include(maintainer)
     end
   end
 
   describe '#direct_and_indirect_members', :nested_groups do
     let!(:group) { create(:group, :nested) }
     let!(:sub_group) { create(:group, parent: group) }
-    let!(:master) { group.parent.add_user(create(:user), GroupMember::MASTER) }
+    let!(:maintainer) { group.parent.add_user(create(:user), GroupMember::MAINTAINER) }
     let!(:developer) { group.add_user(create(:user), GroupMember::DEVELOPER) }
     let!(:other_developer) { group.add_user(create(:user), GroupMember::DEVELOPER) }
 
     it 'returns parents members' do
       expect(group.direct_and_indirect_members).to include(developer)
-      expect(group.direct_and_indirect_members).to include(master)
+      expect(group.direct_and_indirect_members).to include(maintainer)
     end
 
     it 'returns descendant members' do
@@ -539,14 +539,14 @@ def setup_group_members(group)
 
   describe '#user_ids_for_project_authorizations' do
     it 'returns the user IDs for which to refresh authorizations' do
-      master = create(:user)
+      maintainer = create(:user)
       developer = create(:user)
 
-      group.add_user(master, GroupMember::MASTER)
+      group.add_user(maintainer, GroupMember::MAINTAINER)
       group.add_user(developer, GroupMember::DEVELOPER)
 
       expect(group.user_ids_for_project_authorizations)
-        .to include(master.id, developer.id)
+        .to include(maintainer.id, developer.id)
     end
   end
 
diff --git a/spec/models/hooks/system_hook_spec.rb b/spec/models/hooks/system_hook_spec.rb
index 8bc45715dcd72b510e1a9b2f2cf4a2c39f4d6371..01129df11076ad8a682ccaf0e47cb9464d6e2b55 100644
--- a/spec/models/hooks/system_hook_spec.rb
+++ b/spec/models/hooks/system_hook_spec.rb
@@ -63,7 +63,7 @@
     end
 
     it "project_create hook" do
-      project.add_master(user)
+      project.add_maintainer(user)
 
       expect(WebMock).to have_requested(:post, system_hook.url).with(
         body: /user_add_to_team/,
@@ -72,7 +72,7 @@
     end
 
     it "project_destroy hook" do
-      project.add_master(user)
+      project.add_maintainer(user)
       project.project_members.destroy_all
 
       expect(WebMock).to have_requested(:post, system_hook.url).with(
@@ -100,7 +100,7 @@
     end
 
     it 'group member create hook' do
-      group.add_master(user)
+      group.add_maintainer(user)
 
       expect(WebMock).to have_requested(:post, system_hook.url).with(
         body: /user_add_to_group/,
@@ -109,7 +109,7 @@
     end
 
     it 'group member destroy hook' do
-      group.add_master(user)
+      group.add_maintainer(user)
       group.group_members.destroy_all
 
       expect(WebMock).to have_requested(:post, system_hook.url).with(
diff --git a/spec/models/issue_spec.rb b/spec/models/issue_spec.rb
index e818fbeb9cfcfd4bee0b41f12a440314005aa600..84edfc3ff009cb99f53943a6d563fab02d258999 100644
--- a/spec/models/issue_spec.rb
+++ b/spec/models/issue_spec.rb
@@ -669,7 +669,7 @@
 
         context 'when the user is the project owner' do
           before do
-            project.add_master(user)
+            project.add_maintainer(user)
           end
 
           it 'returns true for a regular issue' do
diff --git a/spec/models/lfs_file_lock_spec.rb b/spec/models/lfs_file_lock_spec.rb
index ce87b01b49cd430c8967b7b21385ff2a5adb5e61..e74f342d3eb733b97a52738fd3e4b4c760f9939a 100644
--- a/spec/models/lfs_file_lock_spec.rb
+++ b/spec/models/lfs_file_lock_spec.rb
@@ -13,13 +13,13 @@
 
   describe '#can_be_unlocked_by?' do
     let(:developer) { create(:user) }
-    let(:master)    { create(:user) }
+    let(:maintainer)    { create(:user) }
 
     before do
       project = lfs_file_lock.project
 
       project.add_developer(developer)
-      project.add_master(master)
+      project.add_maintainer(maintainer)
     end
 
     context "when it's forced" do
@@ -29,8 +29,8 @@
         expect(lfs_file_lock.can_be_unlocked_by?(user, true)).to eq(true)
       end
 
-      it 'can be unlocked by a master' do
-        expect(lfs_file_lock.can_be_unlocked_by?(master, true)).to eq(true)
+      it 'can be unlocked by a maintainer' do
+        expect(lfs_file_lock.can_be_unlocked_by?(maintainer, true)).to eq(true)
       end
 
       it "can't be unlocked by other user" do
@@ -45,8 +45,8 @@
         expect(lfs_file_lock.can_be_unlocked_by?(user)).to eq(true)
       end
 
-      it "can't be unlocked by a master" do
-        expect(lfs_file_lock.can_be_unlocked_by?(master)).to eq(false)
+      it "can't be unlocked by a maintainer" do
+        expect(lfs_file_lock.can_be_unlocked_by?(maintainer)).to eq(false)
       end
 
       it "can't be unlocked by other user" do
diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb
index c64cdf8f81228048c15b307b68ef5ab0c3d6c259..fca1b1f90d9fb797aa063f54c9fbe4607c6aeadd 100644
--- a/spec/models/member_spec.rb
+++ b/spec/models/member_spec.rb
@@ -62,16 +62,16 @@
       @owner_user = create(:user).tap { |u| group.add_owner(u) }
       @owner = group.members.find_by(user_id: @owner_user.id)
 
-      @master_user = create(:user).tap { |u| project.add_master(u) }
-      @master = project.members.find_by(user_id: @master_user.id)
+      @maintainer_user = create(:user).tap { |u| project.add_maintainer(u) }
+      @maintainer = project.members.find_by(user_id: @maintainer_user.id)
 
       @blocked_user = create(:user).tap do |u|
-        project.add_master(u)
+        project.add_maintainer(u)
         project.add_developer(u)
 
         u.block!
       end
-      @blocked_master = project.members.find_by(user_id: @blocked_user.id, access_level: Gitlab::Access::MASTER)
+      @blocked_maintainer = project.members.find_by(user_id: @blocked_user.id, access_level: Gitlab::Access::MAINTAINER)
       @blocked_developer = project.members.find_by(user_id: @blocked_user.id, access_level: Gitlab::Access::DEVELOPER)
 
       @invited_member = create(:project_member, :developer,
@@ -95,10 +95,10 @@
 
     describe '.access_for_user_ids' do
       it 'returns the right access levels' do
-        users = [@owner_user.id, @master_user.id, @blocked_user.id]
+        users = [@owner_user.id, @maintainer_user.id, @blocked_user.id]
         expected = {
           @owner_user.id => Gitlab::Access::OWNER,
-          @master_user.id => Gitlab::Access::MASTER
+          @maintainer_user.id => Gitlab::Access::MAINTAINER
         }
 
         expect(described_class.access_for_user_ids(users)).to eq(expected)
@@ -106,7 +106,7 @@
     end
 
     describe '.invite' do
-      it { expect(described_class.invite).not_to include @master }
+      it { expect(described_class.invite).not_to include @maintainer }
       it { expect(described_class.invite).to include @invited_member }
       it { expect(described_class.invite).not_to include @accepted_invite_member }
       it { expect(described_class.invite).not_to include @requested_member }
@@ -114,7 +114,7 @@
     end
 
     describe '.non_invite' do
-      it { expect(described_class.non_invite).to include @master }
+      it { expect(described_class.non_invite).to include @maintainer }
       it { expect(described_class.non_invite).not_to include @invited_member }
       it { expect(described_class.non_invite).to include @accepted_invite_member }
       it { expect(described_class.non_invite).to include @requested_member }
@@ -122,7 +122,7 @@
     end
 
     describe '.request' do
-      it { expect(described_class.request).not_to include @master }
+      it { expect(described_class.request).not_to include @maintainer }
       it { expect(described_class.request).not_to include @invited_member }
       it { expect(described_class.request).not_to include @accepted_invite_member }
       it { expect(described_class.request).to include @requested_member }
@@ -130,7 +130,7 @@
     end
 
     describe '.non_request' do
-      it { expect(described_class.non_request).to include @master }
+      it { expect(described_class.non_request).to include @maintainer }
       it { expect(described_class.non_request).to include @invited_member }
       it { expect(described_class.non_request).to include @accepted_invite_member }
       it { expect(described_class.non_request).not_to include @requested_member }
@@ -141,35 +141,35 @@
       subject { described_class.developers.to_a }
 
       it { is_expected.not_to include @owner }
-      it { is_expected.not_to include @master }
+      it { is_expected.not_to include @maintainer }
       it { is_expected.to include @invited_member }
       it { is_expected.to include @accepted_invite_member }
       it { is_expected.not_to include @requested_member }
       it { is_expected.to include @accepted_request_member }
-      it { is_expected.not_to include @blocked_master }
+      it { is_expected.not_to include @blocked_maintainer }
       it { is_expected.not_to include @blocked_developer }
     end
 
-    describe '.owners_and_masters' do
-      it { expect(described_class.owners_and_masters).to include @owner }
-      it { expect(described_class.owners_and_masters).to include @master }
-      it { expect(described_class.owners_and_masters).not_to include @invited_member }
-      it { expect(described_class.owners_and_masters).not_to include @accepted_invite_member }
-      it { expect(described_class.owners_and_masters).not_to include @requested_member }
-      it { expect(described_class.owners_and_masters).not_to include @accepted_request_member }
-      it { expect(described_class.owners_and_masters).not_to include @blocked_master }
+    describe '.owners_and_maintainers' do
+      it { expect(described_class.owners_and_maintainers).to include @owner }
+      it { expect(described_class.owners_and_maintainers).to include @maintainer }
+      it { expect(described_class.owners_and_maintainers).not_to include @invited_member }
+      it { expect(described_class.owners_and_maintainers).not_to include @accepted_invite_member }
+      it { expect(described_class.owners_and_maintainers).not_to include @requested_member }
+      it { expect(described_class.owners_and_maintainers).not_to include @accepted_request_member }
+      it { expect(described_class.owners_and_maintainers).not_to include @blocked_maintainer }
     end
 
     describe '.has_access' do
       subject { described_class.has_access.to_a }
 
       it { is_expected.to include @owner }
-      it { is_expected.to include @master }
+      it { is_expected.to include @maintainer }
       it { is_expected.to include @invited_member }
       it { is_expected.to include @accepted_invite_member }
       it { is_expected.not_to include @requested_member }
       it { is_expected.to include @accepted_request_member }
-      it { is_expected.not_to include @blocked_master }
+      it { is_expected.not_to include @blocked_maintainer }
       it { is_expected.not_to include @blocked_developer }
     end
   end
@@ -187,20 +187,20 @@
         let!(:admin) { create(:admin) }
 
         it 'returns a <Source>Member object' do
-          member = described_class.add_user(source, user, :master)
+          member = described_class.add_user(source, user, :maintainer)
 
           expect(member).to be_a "#{source_type.classify}Member".constantize
           expect(member).to be_persisted
         end
 
         it 'sets members.created_by to the given current_user' do
-          member = described_class.add_user(source, user, :master, current_user: admin)
+          member = described_class.add_user(source, user, :maintainer, current_user: admin)
 
           expect(member.created_by).to eq(admin)
         end
 
         it 'sets members.expires_at to the given expires_at' do
-          member = described_class.add_user(source, user, :master, expires_at: Date.new(2016, 9, 22))
+          member = described_class.add_user(source, user, :maintainer, expires_at: Date.new(2016, 9, 22))
 
           expect(member.expires_at).to eq(Date.new(2016, 9, 22))
         end
@@ -230,7 +230,7 @@
             it 'adds the user as a member' do
               expect(source.users).not_to include(user)
 
-              described_class.add_user(source, user.id, :master)
+              described_class.add_user(source, user.id, :maintainer)
 
               expect(source.users.reload).to include(user)
             end
@@ -240,7 +240,7 @@
             it 'adds the user as a member' do
               expect(source.users).not_to include(user)
 
-              described_class.add_user(source, 42, :master)
+              described_class.add_user(source, 42, :maintainer)
 
               expect(source.users.reload).not_to include(user)
             end
@@ -250,7 +250,7 @@
             it 'adds the user as a member' do
               expect(source.users).not_to include(user)
 
-              described_class.add_user(source, user, :master)
+              described_class.add_user(source, user, :maintainer)
 
               expect(source.users.reload).to include(user)
             end
@@ -265,7 +265,7 @@
               expect(source.users).not_to include(user)
               expect(source.requesters.exists?(user_id: user)).to be_truthy
 
-              expect { described_class.add_user(source, user, :master) }
+              expect { described_class.add_user(source, user, :maintainer) }
                 .to raise_error(Gitlab::Access::AccessDeniedError)
 
               expect(source.users.reload).not_to include(user)
@@ -277,7 +277,7 @@
             it 'adds the user as a member' do
               expect(source.users).not_to include(user)
 
-              described_class.add_user(source, user.email, :master)
+              described_class.add_user(source, user.email, :maintainer)
 
               expect(source.users.reload).to include(user)
             end
@@ -287,7 +287,7 @@
             it 'creates an invited member' do
               expect(source.users).not_to include(user)
 
-              described_class.add_user(source, 'user@example.com', :master)
+              described_class.add_user(source, 'user@example.com', :maintainer)
 
               expect(source.members.invite.pluck(:invite_email)).to include('user@example.com')
             end
@@ -298,7 +298,7 @@
           it 'creates the member' do
             expect(source.users).not_to include(user)
 
-            described_class.add_user(source, user, :master, current_user: admin)
+            described_class.add_user(source, user, :maintainer, current_user: admin)
 
             expect(source.users.reload).to include(user)
           end
@@ -312,7 +312,7 @@
               expect(source.users).not_to include(user)
               expect(source.requesters.exists?(user_id: user)).to be_truthy
 
-              described_class.add_user(source, user, :master, current_user: admin)
+              described_class.add_user(source, user, :maintainer, current_user: admin)
 
               expect(source.users.reload).to include(user)
               expect(source.requesters.reload.exists?(user_id: user)).to be_falsy
@@ -324,7 +324,7 @@
           it 'does not create the member' do
             expect(source.users).not_to include(user)
 
-            member = described_class.add_user(source, user, :master, current_user: user)
+            member = described_class.add_user(source, user, :maintainer, current_user: user)
 
             expect(source.users.reload).not_to include(user)
             expect(member).not_to be_persisted
@@ -339,7 +339,7 @@
               expect(source.users).not_to include(user)
               expect(source.requesters.exists?(user_id: user)).to be_truthy
 
-              described_class.add_user(source, user, :master, current_user: user)
+              described_class.add_user(source, user, :maintainer, current_user: user)
 
               expect(source.users.reload).not_to include(user)
               expect(source.requesters.exists?(user_id: user)).to be_truthy
@@ -356,9 +356,9 @@
             it 'updates the member' do
               expect(source.users).to include(user)
 
-              described_class.add_user(source, user, :master)
+              described_class.add_user(source, user, :maintainer)
 
-              expect(source.members.find_by(user_id: user).access_level).to eq(Gitlab::Access::MASTER)
+              expect(source.members.find_by(user_id: user).access_level).to eq(Gitlab::Access::MAINTAINER)
             end
           end
 
@@ -366,9 +366,9 @@
             it 'updates the member' do
               expect(source.users).to include(user)
 
-              described_class.add_user(source, user, :master, current_user: admin)
+              described_class.add_user(source, user, :maintainer, current_user: admin)
 
-              expect(source.members.find_by(user_id: user).access_level).to eq(Gitlab::Access::MASTER)
+              expect(source.members.find_by(user_id: user).access_level).to eq(Gitlab::Access::MAINTAINER)
             end
           end
 
@@ -376,7 +376,7 @@
             it 'does not update the member' do
               expect(source.users).to include(user)
 
-              described_class.add_user(source, user, :master, current_user: user)
+              described_class.add_user(source, user, :maintainer, current_user: user)
 
               expect(source.members.find_by(user_id: user).access_level).to eq(Gitlab::Access::DEVELOPER)
             end
@@ -395,7 +395,7 @@
         let(:user2) { create(:user) }
 
         it 'returns a <Source>Member objects' do
-          members = described_class.add_users(source, [user1, user2], :master)
+          members = described_class.add_users(source, [user1, user2], :maintainer)
 
           expect(members).to be_a Array
           expect(members.size).to eq(2)
@@ -404,7 +404,7 @@
         end
 
         it 'returns an empty array' do
-          members = described_class.add_users(source, [], :master)
+          members = described_class.add_users(source, [], :maintainer)
 
           expect(members).to be_a Array
           expect(members).to be_empty
@@ -413,7 +413,7 @@
         it 'supports differents formats' do
           list = ['joe@local.test', admin, user1.id, user2.id.to_s]
 
-          members = described_class.add_users(source, list, :master)
+          members = described_class.add_users(source, list, :maintainer)
 
           expect(members.size).to eq(4)
           expect(members.first).to be_invite
diff --git a/spec/models/members/group_member_spec.rb b/spec/models/members/group_member_spec.rb
index ffc78015f943154cdd23d6f7acdd48f8a52e340a..97959ed430482ce37965d904ada087d26f1e816b 100644
--- a/spec/models/members/group_member_spec.rb
+++ b/spec/models/members/group_member_spec.rb
@@ -21,7 +21,7 @@
       described_class.add_users(
         group,
         [users.first.id, users.second],
-        described_class::MASTER
+        described_class::MAINTAINER
       )
 
       expect(group.users).to include(users.first, users.second)
diff --git a/spec/models/members/project_member_spec.rb b/spec/models/members/project_member_spec.rb
index 574eb468e4cd3de68f7fd45d215ce6f2803cb1a4..334d4f95f53265dc058c882cbeb4662e5480aae0 100644
--- a/spec/models/members/project_member_spec.rb
+++ b/spec/models/members/project_member_spec.rb
@@ -28,7 +28,7 @@
 
       expect(project.users).not_to include(user)
 
-      described_class.add_user(project, user, :master, current_user: project.owner)
+      described_class.add_user(project, user, :maintainer, current_user: project.owner)
 
       expect(project.users.reload).to include(user)
     end
@@ -41,9 +41,9 @@
   end
 
   describe "#destroy" do
-    let(:owner)   { create(:project_member, access_level: ProjectMember::MASTER) }
+    let(:owner)   { create(:project_member, access_level: ProjectMember::MAINTAINER) }
     let(:project) { owner.project }
-    let(:master)  { create(:project_member, project: project) }
+    let(:maintainer)  { create(:project_member, project: project) }
 
     it "creates an expired event when left due to expiry" do
       expired = create(:project_member, project: project, expires_at: Time.now - 6.days)
@@ -52,7 +52,7 @@
     end
 
     it "creates a left event when left due to leave" do
-      master.destroy
+      maintainer.destroy
       expect(Event.recent.first.action).to eq(Event::LEFT)
     end
   end
@@ -95,7 +95,7 @@
       described_class.add_users_to_projects(
         [projects.first.id, projects.second.id],
         [users.first.id, users.second],
-        described_class::MASTER)
+        described_class::MAINTAINER)
 
       expect(projects.first.users).to include(users.first)
       expect(projects.first.users).to include(users.second)
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index c7eead2bdaa8f094a64421ed8647a282e09f41f3..b0d9d03bf6cec6be14567eb2f3e0c83efce41913 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -724,7 +724,7 @@ def set_compare(merge_request)
     subject { merge_request }
 
     before do
-      subject.source_project.add_master(user)
+      subject.source_project.add_maintainer(user)
     end
 
     it "can't be removed when its a protected branch" do
@@ -1199,7 +1199,7 @@ def set_compare(merge_request)
         end
 
         before do
-          project.add_master(current_user)
+          project.add_maintainer(current_user)
 
           ProcessCommitWorker.new.perform(project.id,
                                           current_user.id,
@@ -1569,8 +1569,8 @@ def set_compare(merge_request)
     let(:merge_request) { create(:merge_request, source_project: project) }
 
     before do
-      merge_request.source_project.add_master(user)
-      merge_request.target_project.add_master(user)
+      merge_request.source_project.add_maintainer(user)
+      merge_request.target_project.add_maintainer(user)
     end
 
     context 'with multiple environments' do
diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb
index a2cb716cb935772eeb5637005c1911598add71fb..947be44c903b904a4df65326646dd00051f661d1 100644
--- a/spec/models/note_spec.rb
+++ b/spec/models/note_spec.rb
@@ -144,8 +144,8 @@ def retrieve_participants
     describe 'admin' do
       before do
         @p1.project_members.create(user: @u1, access_level: ProjectMember::REPORTER)
-        @p1.project_members.create(user: @u2, access_level: ProjectMember::MASTER)
-        @p2.project_members.create(user: @u3, access_level: ProjectMember::MASTER)
+        @p1.project_members.create(user: @u2, access_level: ProjectMember::MAINTAINER)
+        @p2.project_members.create(user: @u3, access_level: ProjectMember::MAINTAINER)
       end
 
       it { expect(Ability.allowed?(@u1, :admin_note, @p1)).to be_falsey }
@@ -225,7 +225,7 @@ def retrieve_participants
 
   describe "cross_reference_not_visible_for?" do
     let(:private_user)    { create(:user) }
-    let(:private_project) { create(:project, namespace: private_user.namespace) { |p| p.add_master(private_user) } }
+    let(:private_project) { create(:project, namespace: private_user.namespace) { |p| p.add_maintainer(private_user) } }
     let(:private_issue)   { create(:issue, project: private_project) }
 
     let(:ext_proj)  { create(:project, :public) }
diff --git a/spec/models/project_authorization_spec.rb b/spec/models/project_authorization_spec.rb
index 9e7e525b2c0d3b365f8f2ab63cd503b8bca4a66f..c289ee0859a7f3c4b229db25903927568845e073 100644
--- a/spec/models/project_authorization_spec.rb
+++ b/spec/models/project_authorization_spec.rb
@@ -8,15 +8,15 @@
   describe '.insert_authorizations' do
     it 'inserts the authorizations' do
       described_class
-        .insert_authorizations([[user.id, project1.id, Gitlab::Access::MASTER]])
+        .insert_authorizations([[user.id, project1.id, Gitlab::Access::MAINTAINER]])
 
       expect(user.project_authorizations.count).to eq(1)
     end
 
     it 'inserts rows in batches' do
       described_class.insert_authorizations([
-        [user.id, project1.id, Gitlab::Access::MASTER],
-        [user.id, project2.id, Gitlab::Access::MASTER]
+        [user.id, project1.id, Gitlab::Access::MAINTAINER],
+        [user.id, project2.id, Gitlab::Access::MAINTAINER]
       ], 1)
 
       expect(user.project_authorizations.count).to eq(2)
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index bbf37ca59b9f146e17aeda42c55436cfbd77530c..c01c7bc47b5bb1e67596473a7370930d5154cde9 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -336,7 +336,7 @@
   end
 
   describe 'delegation' do
-    [:add_guest, :add_reporter, :add_developer, :add_master, :add_user, :add_users].each do |method|
+    [:add_guest, :add_reporter, :add_developer, :add_maintainer, :add_user, :add_users].each do |method|
       it { is_expected.to delegate_method(method).to(:team) }
     end
 
@@ -1130,7 +1130,7 @@ def create_pipeline
 
     describe 'when a user has access to a project' do
       before do
-        project.add_user(user, Gitlab::Access::MASTER)
+        project.add_user(user, Gitlab::Access::MAINTAINER)
       end
 
       it { is_expected.to eq([project]) }
@@ -3496,8 +3496,8 @@ def domain_variable
 
         expect(project.protected_branches).not_to be_empty
         expect(project.default_branch).to eq(project.protected_branches.first.name)
-        expect(project.protected_branches.first.push_access_levels.map(&:access_level)).to eq([Gitlab::Access::MASTER])
-        expect(project.protected_branches.first.merge_access_levels.map(&:access_level)).to eq([Gitlab::Access::MASTER])
+        expect(project.protected_branches.first.push_access_levels.map(&:access_level)).to eq([Gitlab::Access::MAINTAINER])
+        expect(project.protected_branches.first.merge_access_levels.map(&:access_level)).to eq([Gitlab::Access::MAINTAINER])
       end
     end
   end
@@ -3733,7 +3733,7 @@ def domain_variable
       end
 
       it 'does not allow access if the user cannot merge the merge request' do
-        create(:protected_branch, :masters_can_push, project: target_project, name: 'target-branch')
+        create(:protected_branch, :maintainers_can_push, project: target_project, name: 'target-branch')
 
         expect(project.branch_allows_collaboration?(user, 'awesome-feature-1'))
           .to be_falsy
diff --git a/spec/models/project_team_spec.rb b/spec/models/project_team_spec.rb
index 9978f3e95667b53543ee12a14372a7b561d877a9..c4af17f47264547991669cf6e3de17eb2ae3dad5 100644
--- a/spec/models/project_team_spec.rb
+++ b/spec/models/project_team_spec.rb
@@ -1,7 +1,7 @@
 require "spec_helper"
 
 describe ProjectTeam do
-  let(:master) { create(:user) }
+  let(:maintainer) { create(:user) }
   let(:reporter) { create(:user) }
   let(:guest) { create(:user) }
   let(:nonmember) { create(:user) }
@@ -10,23 +10,23 @@
     let(:project) { create(:project) }
 
     before do
-      project.add_master(master)
+      project.add_maintainer(maintainer)
       project.add_reporter(reporter)
       project.add_guest(guest)
     end
 
     describe 'members collection' do
-      it { expect(project.team.masters).to include(master) }
-      it { expect(project.team.masters).not_to include(guest) }
-      it { expect(project.team.masters).not_to include(reporter) }
-      it { expect(project.team.masters).not_to include(nonmember) }
+      it { expect(project.team.maintainers).to include(maintainer) }
+      it { expect(project.team.maintainers).not_to include(guest) }
+      it { expect(project.team.maintainers).not_to include(reporter) }
+      it { expect(project.team.maintainers).not_to include(nonmember) }
     end
 
     describe 'access methods' do
-      it { expect(project.team.master?(master)).to be_truthy }
-      it { expect(project.team.master?(guest)).to be_falsey }
-      it { expect(project.team.master?(reporter)).to be_falsey }
-      it { expect(project.team.master?(nonmember)).to be_falsey }
+      it { expect(project.team.maintainer?(maintainer)).to be_truthy }
+      it { expect(project.team.maintainer?(guest)).to be_falsey }
+      it { expect(project.team.maintainer?(reporter)).to be_falsey }
+      it { expect(project.team.maintainer?(nonmember)).to be_falsey }
       it { expect(project.team.member?(nonmember)).to be_falsey }
       it { expect(project.team.member?(guest)).to be_truthy }
       it { expect(project.team.member?(reporter, Gitlab::Access::REPORTER)).to be_truthy }
@@ -40,35 +40,35 @@
     let!(:project) { create(:project, group: group) }
 
     before do
-      group.add_master(master)
+      group.add_maintainer(maintainer)
       group.add_reporter(reporter)
       group.add_guest(guest)
 
       # If user is a group and a project member - GitLab uses highest permission
-      # So we add group guest as master and add group master as guest
+      # So we add group guest as maintainer and add group maintainer as guest
       # to this project to test highest access
-      project.add_master(guest)
-      project.add_guest(master)
+      project.add_maintainer(guest)
+      project.add_guest(maintainer)
     end
 
     describe 'members collection' do
       it { expect(project.team.reporters).to include(reporter) }
-      it { expect(project.team.masters).to include(master) }
-      it { expect(project.team.masters).to include(guest) }
-      it { expect(project.team.masters).not_to include(reporter) }
-      it { expect(project.team.masters).not_to include(nonmember) }
+      it { expect(project.team.maintainers).to include(maintainer) }
+      it { expect(project.team.maintainers).to include(guest) }
+      it { expect(project.team.maintainers).not_to include(reporter) }
+      it { expect(project.team.maintainers).not_to include(nonmember) }
     end
 
     describe 'access methods' do
       it { expect(project.team.reporter?(reporter)).to be_truthy }
-      it { expect(project.team.master?(master)).to be_truthy }
-      it { expect(project.team.master?(guest)).to be_truthy }
-      it { expect(project.team.master?(reporter)).to be_falsey }
-      it { expect(project.team.master?(nonmember)).to be_falsey }
+      it { expect(project.team.maintainer?(maintainer)).to be_truthy }
+      it { expect(project.team.maintainer?(guest)).to be_truthy }
+      it { expect(project.team.maintainer?(reporter)).to be_falsey }
+      it { expect(project.team.maintainer?(nonmember)).to be_falsey }
       it { expect(project.team.member?(nonmember)).to be_falsey }
       it { expect(project.team.member?(guest)).to be_truthy }
-      it { expect(project.team.member?(guest, Gitlab::Access::MASTER)).to be_truthy }
-      it { expect(project.team.member?(reporter, Gitlab::Access::MASTER)).to be_falsey }
+      it { expect(project.team.member?(guest, Gitlab::Access::MAINTAINER)).to be_truthy }
+      it { expect(project.team.member?(reporter, Gitlab::Access::MAINTAINER)).to be_falsey }
       it { expect(project.team.member?(nonmember, Gitlab::Access::GUEST)).to be_falsey }
     end
   end
@@ -145,13 +145,13 @@
       let(:requester) { create(:user) }
 
       before do
-        project.add_master(master)
+        project.add_maintainer(maintainer)
         project.add_reporter(reporter)
         project.add_guest(guest)
         project.request_access(requester)
       end
 
-      it { expect(project.team.find_member(master.id)).to be_a(ProjectMember) }
+      it { expect(project.team.find_member(maintainer.id)).to be_a(ProjectMember) }
       it { expect(project.team.find_member(reporter.id)).to be_a(ProjectMember) }
       it { expect(project.team.find_member(guest.id)).to be_a(ProjectMember) }
       it { expect(project.team.find_member(nonmember.id)).to be_nil }
@@ -164,13 +164,13 @@
       let(:requester) { create(:user) }
 
       before do
-        group.add_master(master)
+        group.add_maintainer(maintainer)
         group.add_reporter(reporter)
         group.add_guest(guest)
         group.request_access(requester)
       end
 
-      it { expect(project.team.find_member(master.id)).to be_a(GroupMember) }
+      it { expect(project.team.find_member(maintainer.id)).to be_a(GroupMember) }
       it { expect(project.team.find_member(reporter.id)).to be_a(GroupMember) }
       it { expect(project.team.find_member(guest.id)).to be_a(GroupMember) }
       it { expect(project.team.find_member(nonmember.id)).to be_nil }
@@ -184,7 +184,7 @@
       group = create(:group)
       project = create(:project, namespace: group)
 
-      group.add_master(user)
+      group.add_maintainer(user)
 
       expect(project.team.human_max_access(user.id)).to eq 'Maintainer'
     end
@@ -210,13 +210,13 @@
 
       context 'when project is not shared with group' do
         before do
-          project.add_master(master)
+          project.add_maintainer(maintainer)
           project.add_reporter(reporter)
           project.add_guest(guest)
           project.request_access(requester)
         end
 
-        it { expect(project.team.max_member_access(master.id)).to eq(Gitlab::Access::MASTER) }
+        it { expect(project.team.max_member_access(maintainer.id)).to eq(Gitlab::Access::MAINTAINER) }
         it { expect(project.team.max_member_access(reporter.id)).to eq(Gitlab::Access::REPORTER) }
         it { expect(project.team.max_member_access(guest.id)).to eq(Gitlab::Access::GUEST) }
         it { expect(project.team.max_member_access(nonmember.id)).to eq(Gitlab::Access::NO_ACCESS) }
@@ -230,11 +230,11 @@
             group: group,
             group_access: Gitlab::Access::DEVELOPER)
 
-          group.add_master(master)
+          group.add_maintainer(maintainer)
           group.add_reporter(reporter)
         end
 
-        it { expect(project.team.max_member_access(master.id)).to eq(Gitlab::Access::DEVELOPER) }
+        it { expect(project.team.max_member_access(maintainer.id)).to eq(Gitlab::Access::DEVELOPER) }
         it { expect(project.team.max_member_access(reporter.id)).to eq(Gitlab::Access::REPORTER) }
         it { expect(project.team.max_member_access(nonmember.id)).to eq(Gitlab::Access::NO_ACCESS) }
         it { expect(project.team.max_member_access(requester.id)).to eq(Gitlab::Access::NO_ACCESS) }
@@ -244,7 +244,7 @@
             project.namespace.update(share_with_group_lock: true)
           end
 
-          it { expect(project.team.max_member_access(master.id)).to eq(Gitlab::Access::NO_ACCESS) }
+          it { expect(project.team.max_member_access(maintainer.id)).to eq(Gitlab::Access::NO_ACCESS) }
           it { expect(project.team.max_member_access(reporter.id)).to eq(Gitlab::Access::NO_ACCESS) }
         end
       end
@@ -257,13 +257,13 @@
       end
 
       before do
-        group.add_master(master)
+        group.add_maintainer(maintainer)
         group.add_reporter(reporter)
         group.add_guest(guest)
         group.request_access(requester)
       end
 
-      it { expect(project.team.max_member_access(master.id)).to eq(Gitlab::Access::MASTER) }
+      it { expect(project.team.max_member_access(maintainer.id)).to eq(Gitlab::Access::MAINTAINER) }
       it { expect(project.team.max_member_access(reporter.id)).to eq(Gitlab::Access::REPORTER) }
       it { expect(project.team.max_member_access(guest.id)).to eq(Gitlab::Access::GUEST) }
       it { expect(project.team.max_member_access(nonmember.id)).to eq(Gitlab::Access::NO_ACCESS) }
@@ -274,7 +274,7 @@
   describe '#member?' do
     let(:group) { create(:group) }
     let(:developer) { create(:user) }
-    let(:master) { create(:user) }
+    let(:maintainer) { create(:user) }
 
     let(:personal_project) do
       create(:project, namespace: developer.namespace)
@@ -288,11 +288,11 @@
     let(:shared_project) { create(:project) }
 
     before do
-      group.add_master(master)
+      group.add_maintainer(maintainer)
       group.add_developer(developer)
 
       members_project.add_developer(developer)
-      members_project.add_master(master)
+      members_project.add_maintainer(maintainer)
 
       create(:project_group_link, project: shared_project, group: group)
     end
@@ -318,14 +318,14 @@
     end
 
     it 'checks for the correct minimum level access' do
-      expect(group_project.team.member?(developer, Gitlab::Access::MASTER)).to be(false)
-      expect(group_project.team.member?(master, Gitlab::Access::MASTER)).to be(true)
-      expect(members_project.team.member?(developer, Gitlab::Access::MASTER)).to be(false)
-      expect(members_project.team.member?(master, Gitlab::Access::MASTER)).to be(true)
-      expect(shared_project.team.member?(developer, Gitlab::Access::MASTER)).to be(false)
-      expect(shared_project.team.member?(master, Gitlab::Access::MASTER)).to be(false)
+      expect(group_project.team.member?(developer, Gitlab::Access::MAINTAINER)).to be(false)
+      expect(group_project.team.member?(maintainer, Gitlab::Access::MAINTAINER)).to be(true)
+      expect(members_project.team.member?(developer, Gitlab::Access::MAINTAINER)).to be(false)
+      expect(members_project.team.member?(maintainer, Gitlab::Access::MAINTAINER)).to be(true)
+      expect(shared_project.team.member?(developer, Gitlab::Access::MAINTAINER)).to be(false)
+      expect(shared_project.team.member?(maintainer, Gitlab::Access::MAINTAINER)).to be(false)
       expect(shared_project.team.member?(developer, Gitlab::Access::DEVELOPER)).to be(true)
-      expect(shared_project.team.member?(master, Gitlab::Access::DEVELOPER)).to be(true)
+      expect(shared_project.team.member?(maintainer, Gitlab::Access::DEVELOPER)).to be(true)
     end
   end
 
@@ -334,7 +334,7 @@
     let(:group) { create(:group) }
     let(:second_group) { create(:group) }
 
-    let(:master) { create(:user) }
+    let(:maintainer) { create(:user) }
     let(:reporter) { create(:user) }
     let(:guest) { create(:user) }
 
@@ -347,23 +347,23 @@
     let(:second_user_without_access) { create(:user) }
 
     let(:users) do
-      [master, reporter, promoted_guest, guest, group_developer, second_developer, user_without_access].map(&:id)
+      [maintainer, reporter, promoted_guest, guest, group_developer, second_developer, user_without_access].map(&:id)
     end
 
     let(:expected) do
       {
-        master.id => Gitlab::Access::MASTER,
+        maintainer.id => Gitlab::Access::MAINTAINER,
         reporter.id => Gitlab::Access::REPORTER,
         promoted_guest.id => Gitlab::Access::DEVELOPER,
         guest.id => Gitlab::Access::GUEST,
         group_developer.id => Gitlab::Access::DEVELOPER,
-        second_developer.id => Gitlab::Access::MASTER,
+        second_developer.id => Gitlab::Access::MAINTAINER,
         user_without_access.id => Gitlab::Access::NO_ACCESS
       }
     end
 
     before do
-      project.add_master(master)
+      project.add_maintainer(maintainer)
       project.add_reporter(reporter)
       project.add_guest(promoted_guest)
       project.add_guest(guest)
@@ -373,16 +373,16 @@
         group_access: Gitlab::Access::DEVELOPER
       )
 
-      group.add_master(promoted_guest)
+      group.add_maintainer(promoted_guest)
       group.add_developer(group_developer)
       group.add_developer(second_developer)
 
       project.project_group_links.create(
         group: second_group,
-        group_access: Gitlab::Access::MASTER
+        group_access: Gitlab::Access::MAINTAINER
       )
 
-      second_group.add_master(second_developer)
+      second_group.add_maintainer(second_developer)
     end
 
     it 'returns correct roles for different users' do
diff --git a/spec/models/protected_branch/merge_access_level_spec.rb b/spec/models/protected_branch/merge_access_level_spec.rb
index f70503eadbcc8da0bbe8c73be465aeeb5328186f..612e4a0e332914e2509c232163380c75e6e019d6 100644
--- a/spec/models/protected_branch/merge_access_level_spec.rb
+++ b/spec/models/protected_branch/merge_access_level_spec.rb
@@ -1,5 +1,5 @@
 require 'spec_helper'
 
 describe ProtectedBranch::MergeAccessLevel do
-  it { is_expected.to validate_inclusion_of(:access_level).in_array([Gitlab::Access::MASTER, Gitlab::Access::DEVELOPER, Gitlab::Access::NO_ACCESS]) }
+  it { is_expected.to validate_inclusion_of(:access_level).in_array([Gitlab::Access::MAINTAINER, Gitlab::Access::DEVELOPER, Gitlab::Access::NO_ACCESS]) }
 end
diff --git a/spec/models/protected_branch/push_access_level_spec.rb b/spec/models/protected_branch/push_access_level_spec.rb
index f161f345761518326c17662b71f15bec2db49c63..9ccdc22fd413f48e67b5e9dc31a66571c6dd8eea 100644
--- a/spec/models/protected_branch/push_access_level_spec.rb
+++ b/spec/models/protected_branch/push_access_level_spec.rb
@@ -1,5 +1,5 @@
 require 'spec_helper'
 
 describe ProtectedBranch::PushAccessLevel do
-  it { is_expected.to validate_inclusion_of(:access_level).in_array([Gitlab::Access::MASTER, Gitlab::Access::DEVELOPER, Gitlab::Access::NO_ACCESS]) }
+  it { is_expected.to validate_inclusion_of(:access_level).in_array([Gitlab::Access::MAINTAINER, Gitlab::Access::DEVELOPER, Gitlab::Access::NO_ACCESS]) }
 end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 6d7b733dd4f4384c921522c18a29cbaddebaa484..fc46551c3be66121ae19a09969bfed5c0227413a 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -700,7 +700,7 @@
 
       @project = create(:project, namespace: @user.namespace)
       @project_2 = create(:project, group: create(:group)) do |project|
-        project.add_master(@user)
+        project.add_maintainer(@user)
       end
       @project_3 = create(:project, group: create(:group)) do |project|
         project.add_developer(@user)
@@ -836,7 +836,7 @@
 
     before do
       # add user to project
-      project.add_master(user)
+      project.add_maintainer(user)
 
       # create invite to projet
       create(:project_member, :developer, project: project, invite_token: '1234', invite_email: 'inviteduser1@example.com')
@@ -1581,8 +1581,8 @@
     let!(:merge_event) { create(:event, :created, project: project3, target: merge_request, author: subject) }
 
     before do
-      project1.add_master(subject)
-      project2.add_master(subject)
+      project1.add_maintainer(subject)
+      project2.add_maintainer(subject)
     end
 
     it "includes IDs for projects the user has pushed to" do
@@ -1663,8 +1663,8 @@
     let!(:project) { create(:project, group: project_group) }
 
     before do
-      private_group.add_user(user, Gitlab::Access::MASTER)
-      project.add_master(user)
+      private_group.add_user(user, Gitlab::Access::MAINTAINER)
+      project.add_maintainer(user)
     end
 
     subject { user.authorized_groups }
@@ -1678,7 +1678,7 @@
     let!(:child_group) { create(:group, parent: parent_group) }
 
     before do
-      parent_group.add_user(user, Gitlab::Access::MASTER)
+      parent_group.add_user(user, Gitlab::Access::MAINTAINER)
     end
 
     subject { user.membership_groups }
@@ -1696,7 +1696,7 @@
 
     it 'includes projects that belong to a user, but no other projects' do
       owned = create(:project, :private, namespace: user.namespace)
-      member = create(:project, :private).tap { |p| p.add_master(user) }
+      member = create(:project, :private).tap { |p| p.add_maintainer(user) }
       other = create(:project)
 
       expect(subject).to include(owned)
@@ -1726,11 +1726,11 @@
           .to contain_exactly(project)
       end
 
-      it 'includes projects for which the user is a master' do
+      it 'includes projects for which the user is a maintainer' do
         user = create(:user)
         project = create(:project, :private)
 
-        project.add_master(user)
+        project.add_maintainer(user)
 
         expect(user.authorized_projects(Gitlab::Access::REPORTER))
           .to contain_exactly(project)
@@ -1824,10 +1824,10 @@
     it 'includes projects for which the user access level is above or equal to reporter' do
       reporter_project  = create(:project) { |p| p.add_reporter(user) }
       developer_project = create(:project) { |p| p.add_developer(user) }
-      master_project    = create(:project) { |p| p.add_master(user) }
+      maintainer_project = create(:project) { |p| p.add_maintainer(user) }
 
-      expect(user.projects_where_can_admin_issues.to_a).to match_array([master_project, developer_project, reporter_project])
-      expect(user.can?(:admin_issue, master_project)).to eq(true)
+      expect(user.projects_where_can_admin_issues.to_a).to match_array([maintainer_project, developer_project, reporter_project])
+      expect(user.can?(:admin_issue, maintainer_project)).to eq(true)
       expect(user.can?(:admin_issue, developer_project)).to eq(true)
       expect(user.can?(:admin_issue, reporter_project)).to eq(true)
     end
@@ -1907,9 +1907,9 @@
     end
 
     shared_examples :member do
-      context 'when the user is a master' do
+      context 'when the user is a maintainer' do
         before do
-          add_user(:master)
+          add_user(:maintainer)
         end
 
         it 'loads' do
@@ -2668,20 +2668,20 @@ def add_user(access)
       let(:user) { create(:user) }
       let(:group) { create(:group) }
       let(:owner_project) { create(:project, group: group) }
-      let(:master_project) { create(:project) }
+      let(:maintainer_project) { create(:project) }
       let(:reporter_project) { create(:project) }
       let(:developer_project) { create(:project) }
       let(:guest_project) { create(:project) }
       let(:no_access_project) { create(:project) }
 
       let(:projects) do
-        [owner_project, master_project, reporter_project, developer_project, guest_project, no_access_project].map(&:id)
+        [owner_project, maintainer_project, reporter_project, developer_project, guest_project, no_access_project].map(&:id)
       end
 
       let(:expected) do
         {
           owner_project.id => Gitlab::Access::OWNER,
-          master_project.id => Gitlab::Access::MASTER,
+          maintainer_project.id => Gitlab::Access::MAINTAINER,
           reporter_project.id => Gitlab::Access::REPORTER,
           developer_project.id => Gitlab::Access::DEVELOPER,
           guest_project.id => Gitlab::Access::GUEST,
@@ -2691,7 +2691,7 @@ def add_user(access)
 
       before do
         create(:group_member, user: user, group: group)
-        master_project.add_master(user)
+        maintainer_project.add_maintainer(user)
         reporter_project.add_reporter(user)
         developer_project.add_developer(user)
         guest_project.add_guest(user)
@@ -2718,14 +2718,14 @@ def access_levels(projects)
       end
 
       it 'only requests the extra projects when uncached projects are passed' do
-        second_master_project = create(:project)
+        second_maintainer_project = create(:project)
         second_developer_project = create(:project)
-        second_master_project.add_master(user)
+        second_maintainer_project.add_maintainer(user)
         second_developer_project.add_developer(user)
 
-        all_projects = projects + [second_master_project.id, second_developer_project.id]
+        all_projects = projects + [second_maintainer_project.id, second_developer_project.id]
 
-        expected_all = expected.merge(second_master_project.id => Gitlab::Access::MASTER,
+        expected_all = expected.merge(second_maintainer_project.id => Gitlab::Access::MAINTAINER,
                                       second_developer_project.id => Gitlab::Access::DEVELOPER)
 
         access_levels(projects)
@@ -2733,7 +2733,7 @@ def access_levels(projects)
         queries = ActiveRecord::QueryRecorder.new { access_levels(all_projects) }
 
         expect(queries.count).to eq(1)
-        expect(queries.log_message).to match(/\W(#{second_master_project.id}, #{second_developer_project.id})\W/)
+        expect(queries.log_message).to match(/\W(#{second_maintainer_project.id}, #{second_developer_project.id})\W/)
         expect(access_levels(all_projects)).to eq(expected_all)
       end
     end
@@ -2747,20 +2747,20 @@ def access_levels(projects)
     shared_examples 'max member access for groups' do
       let(:user) { create(:user) }
       let(:owner_group) { create(:group) }
-      let(:master_group) { create(:group) }
+      let(:maintainer_group) { create(:group) }
       let(:reporter_group) { create(:group) }
       let(:developer_group) { create(:group) }
       let(:guest_group) { create(:group) }
       let(:no_access_group) { create(:group) }
 
       let(:groups) do
-        [owner_group, master_group, reporter_group, developer_group, guest_group, no_access_group].map(&:id)
+        [owner_group, maintainer_group, reporter_group, developer_group, guest_group, no_access_group].map(&:id)
       end
 
       let(:expected) do
         {
           owner_group.id => Gitlab::Access::OWNER,
-          master_group.id => Gitlab::Access::MASTER,
+          maintainer_group.id => Gitlab::Access::MAINTAINER,
           reporter_group.id => Gitlab::Access::REPORTER,
           developer_group.id => Gitlab::Access::DEVELOPER,
           guest_group.id => Gitlab::Access::GUEST,
@@ -2770,7 +2770,7 @@ def access_levels(projects)
 
       before do
         owner_group.add_owner(user)
-        master_group.add_master(user)
+        maintainer_group.add_maintainer(user)
         reporter_group.add_reporter(user)
         developer_group.add_developer(user)
         guest_group.add_guest(user)
@@ -2797,14 +2797,14 @@ def access_levels(groups)
       end
 
       it 'only requests the extra groups when uncached groups are passed' do
-        second_master_group = create(:group)
+        second_maintainer_group = create(:group)
         second_developer_group = create(:group)
-        second_master_group.add_master(user)
+        second_maintainer_group.add_maintainer(user)
         second_developer_group.add_developer(user)
 
-        all_groups = groups + [second_master_group.id, second_developer_group.id]
+        all_groups = groups + [second_maintainer_group.id, second_developer_group.id]
 
-        expected_all = expected.merge(second_master_group.id => Gitlab::Access::MASTER,
+        expected_all = expected.merge(second_maintainer_group.id => Gitlab::Access::MAINTAINER,
                                       second_developer_group.id => Gitlab::Access::DEVELOPER)
 
         access_levels(groups)
@@ -2812,7 +2812,7 @@ def access_levels(groups)
         queries = ActiveRecord::QueryRecorder.new { access_levels(all_groups) }
 
         expect(queries.count).to eq(1)
-        expect(queries.log_message).to match(/\W(#{second_master_group.id}, #{second_developer_group.id})\W/)
+        expect(queries.log_message).to match(/\W(#{second_maintainer_group.id}, #{second_developer_group.id})\W/)
         expect(access_levels(all_groups)).to eq(expected_all)
       end
     end
diff --git a/spec/policies/ci/build_policy_spec.rb b/spec/policies/ci/build_policy_spec.rb
index eead55d33ca5c0c27c3ccdadb9166205754756f7..79a616899fa12ad52697a29e1bcd0e9e9fe13afb 100644
--- a/spec/policies/ci/build_policy_spec.rb
+++ b/spec/policies/ci/build_policy_spec.rb
@@ -204,18 +204,18 @@
         end
       end
 
-      context 'when a master erases a build' do
+      context 'when a maintainer erases a build' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
-        context 'when masters can push to the branch' do
+        context 'when maintainers can push to the branch' do
           before do
-            create(:protected_branch, :masters_can_push,
+            create(:protected_branch, :maintainers_can_push,
                    name: build.ref, project: project)
           end
 
-          context 'when the build was created by the master' do
+          context 'when the build was created by the maintainer' do
             let(:owner) { user }
 
             it { expect(policy).to be_allowed :erase_build }
diff --git a/spec/policies/ci/pipeline_schedule_policy_spec.rb b/spec/policies/ci/pipeline_schedule_policy_spec.rb
index c0c3eda4911d7e2a303eba1d95cb2c7daad65c64..f1d3cd04e32f4083dbc0f4e208782f1f9934021e 100644
--- a/spec/policies/ci/pipeline_schedule_policy_spec.rb
+++ b/spec/policies/ci/pipeline_schedule_policy_spec.rb
@@ -77,9 +77,9 @@
       end
     end
 
-    describe 'rules for a master' do
+    describe 'rules for a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it 'includes abilities to do do all operations on pipeline schedule' do
@@ -93,8 +93,8 @@
       let(:owner) { create(:user) }
 
       before do
-        project.add_master(owner)
-        project.add_master(user)
+        project.add_maintainer(owner)
+        project.add_maintainer(user)
         pipeline_schedule.update(owner: owner)
       end
 
diff --git a/spec/policies/ci/trigger_policy_spec.rb b/spec/policies/ci/trigger_policy_spec.rb
index 14630748c90dabc9d1feea338df89180c6566f99..d8a63066265c03683b413e5ee70b64f56e62e6dc 100644
--- a/spec/policies/ci/trigger_policy_spec.rb
+++ b/spec/policies/ci/trigger_policy_spec.rb
@@ -43,9 +43,9 @@
     context 'when owner is undefined' do
       let(:owner) { nil }
 
-      context 'when user is master of the project' do
+      context 'when user is maintainer of the project' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it_behaves_like 'allows to admin and manage trigger'
@@ -67,9 +67,9 @@
     context 'when owner is an user' do
       let(:owner) { user }
 
-      context 'when user is master of the project' do
+      context 'when user is maintainer of the project' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it_behaves_like 'allows to admin and manage trigger'
@@ -79,9 +79,9 @@
     context 'when owner is another user' do
       let(:owner) { create(:user) }
 
-      context 'when user is master of the project' do
+      context 'when user is maintainer of the project' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it_behaves_like 'allows to manage trigger'
diff --git a/spec/policies/clusters/cluster_policy_spec.rb b/spec/policies/clusters/cluster_policy_spec.rb
index 4207f42b07fd4f09292e61f3c3e5947b29c8391a..ced969830d8d82c3e85d2641bc1ea3fe57acc291 100644
--- a/spec/policies/clusters/cluster_policy_spec.rb
+++ b/spec/policies/clusters/cluster_policy_spec.rb
@@ -16,9 +16,9 @@
       it { expect(policy).to be_disallowed :admin_cluster }
     end
 
-    context 'when master' do
+    context 'when maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it { expect(policy).to be_allowed :update_cluster }
diff --git a/spec/policies/deploy_key_policy_spec.rb b/spec/policies/deploy_key_policy_spec.rb
index ca7b7fe7ef748e3c676f618957ad347bc9dc3e54..e7263d496139a77fb777ccb6e34cf4825596f358 100644
--- a/spec/policies/deploy_key_policy_spec.rb
+++ b/spec/policies/deploy_key_policy_spec.rb
@@ -12,7 +12,7 @@
         let(:project) { create(:project_empty_repo) }
 
         before do
-          project.add_master(current_user)
+          project.add_maintainer(current_user)
           project.deploy_keys << deploy_key
         end
 
diff --git a/spec/policies/deploy_token_policy_spec.rb b/spec/policies/deploy_token_policy_spec.rb
index eea287d895e6c37f15e6b26d5205b6de6fee4ae5..cef5a4a22bc038156745f11b66a6e952ab0fab94 100644
--- a/spec/policies/deploy_token_policy_spec.rb
+++ b/spec/policies/deploy_token_policy_spec.rb
@@ -8,15 +8,15 @@
   subject { described_class.new(current_user, deploy_token) }
 
   describe 'creating a deploy key' do
-    context 'when user is master' do
+    context 'when user is maintainer' do
       before do
-        project.add_master(current_user)
+        project.add_maintainer(current_user)
       end
 
       it { is_expected.to be_allowed(:create_deploy_token) }
     end
 
-    context 'when user is not master' do
+    context 'when user is not maintainer' do
       before do
         project.add_developer(current_user)
       end
@@ -26,15 +26,15 @@
   end
 
   describe 'updating a deploy key' do
-    context 'when user is master' do
+    context 'when user is maintainer' do
       before do
-        project.add_master(current_user)
+        project.add_maintainer(current_user)
       end
 
       it { is_expected.to be_allowed(:update_deploy_token) }
     end
 
-    context 'when user is not master' do
+    context 'when user is not maintainer' do
       before do
         project.add_developer(current_user)
       end
diff --git a/spec/policies/environment_policy_spec.rb b/spec/policies/environment_policy_spec.rb
index 3728218accc4e3eba8d6808add666943a6442750..0442b032e89adfef324e15102a49c95e3ac7f4b4 100644
--- a/spec/policies/environment_policy_spec.rb
+++ b/spec/policies/environment_policy_spec.rb
@@ -17,11 +17,11 @@
         end
 
         where(:access_level, :allowed?) do
-          nil        | false
-          :guest     | false
-          :reporter  | false
-          :developer | true
-          :master    | true
+          nil         | false
+          :guest      | false
+          :reporter   | false
+          :developer  | true
+          :maintainer | true
         end
 
         with_them do
@@ -63,11 +63,11 @@
         end
 
         where(:access_level, :allowed?) do
-          nil        | false
-          :guest     | false
-          :reporter  | false
-          :developer | false
-          :master    | true
+          nil         | false
+          :guest      | false
+          :reporter   | false
+          :developer  | false
+          :maintainer | true
         end
 
         with_them do
diff --git a/spec/policies/global_policy_spec.rb b/spec/policies/global_policy_spec.rb
index 873673b50efc9e9fe402edd8d3386c11554c3d78..a2047b54deb5ed5386be674bb2785091034cf552 100644
--- a/spec/policies/global_policy_spec.rb
+++ b/spec/policies/global_policy_spec.rb
@@ -65,12 +65,12 @@
       it { is_expected.not_to be_allowed(:create_fork) }
     end
 
-    context "when user is a master in a group" do
+    context "when user is a maintainer in a group" do
       let(:group) { create(:group) }
       let(:current_user) { create(:user, projects_limit: 0) }
 
       before do
-        group.add_master(current_user)
+        group.add_maintainer(current_user)
       end
 
       it { is_expected.to be_allowed(:create_fork) }
diff --git a/spec/policies/group_policy_spec.rb b/spec/policies/group_policy_spec.rb
index d6d340bd806719cf5605953f294e0ac0347e9c27..35951251bc537f6a7aa7369077c8cd53f79d6e14 100644
--- a/spec/policies/group_policy_spec.rb
+++ b/spec/policies/group_policy_spec.rb
@@ -4,7 +4,7 @@
   let(:guest) { create(:user) }
   let(:reporter) { create(:user) }
   let(:developer) { create(:user) }
-  let(:master) { create(:user) }
+  let(:maintainer) { create(:user) }
   let(:owner) { create(:user) }
   let(:admin) { create(:admin) }
   let(:group) { create(:group, :private) }
@@ -19,7 +19,7 @@
 
   let(:developer_permissions) { [:admin_milestones] }
 
-  let(:master_permissions) do
+  let(:maintainer_permissions) do
     [
       :create_projects
     ]
@@ -39,7 +39,7 @@
     group.add_guest(guest)
     group.add_reporter(reporter)
     group.add_developer(developer)
-    group.add_master(master)
+    group.add_maintainer(maintainer)
     group.add_owner(owner)
   end
 
@@ -62,7 +62,7 @@ def expect_disallowed(*permissions)
       expect_disallowed(:upload_file)
       expect_disallowed(*reporter_permissions)
       expect_disallowed(*developer_permissions)
-      expect_disallowed(*master_permissions)
+      expect_disallowed(*maintainer_permissions)
       expect_disallowed(*owner_permissions)
       expect_disallowed(:read_namespace)
     end
@@ -97,7 +97,7 @@ def expect_disallowed(*permissions)
       expect_allowed(*guest_permissions)
       expect_disallowed(*reporter_permissions)
       expect_disallowed(*developer_permissions)
-      expect_disallowed(*master_permissions)
+      expect_disallowed(*maintainer_permissions)
       expect_disallowed(*owner_permissions)
     end
   end
@@ -109,7 +109,7 @@ def expect_disallowed(*permissions)
       expect_allowed(*guest_permissions)
       expect_allowed(*reporter_permissions)
       expect_disallowed(*developer_permissions)
-      expect_disallowed(*master_permissions)
+      expect_disallowed(*maintainer_permissions)
       expect_disallowed(*owner_permissions)
     end
   end
@@ -121,19 +121,19 @@ def expect_disallowed(*permissions)
       expect_allowed(*guest_permissions)
       expect_allowed(*reporter_permissions)
       expect_allowed(*developer_permissions)
-      expect_disallowed(*master_permissions)
+      expect_disallowed(*maintainer_permissions)
       expect_disallowed(*owner_permissions)
     end
   end
 
-  context 'master' do
-    let(:current_user) { master }
+  context 'maintainer' do
+    let(:current_user) { maintainer }
 
     it do
       expect_allowed(*guest_permissions)
       expect_allowed(*reporter_permissions)
       expect_allowed(*developer_permissions)
-      expect_allowed(*master_permissions)
+      expect_allowed(*maintainer_permissions)
       expect_disallowed(*owner_permissions)
     end
   end
@@ -147,7 +147,7 @@ def expect_disallowed(*permissions)
       expect_allowed(*guest_permissions)
       expect_allowed(*reporter_permissions)
       expect_allowed(*developer_permissions)
-      expect_allowed(*master_permissions)
+      expect_allowed(*maintainer_permissions)
       expect_allowed(*owner_permissions)
     end
   end
@@ -161,7 +161,7 @@ def expect_disallowed(*permissions)
       expect_allowed(*guest_permissions)
       expect_allowed(*reporter_permissions)
       expect_allowed(*developer_permissions)
-      expect_allowed(*master_permissions)
+      expect_allowed(*maintainer_permissions)
       expect_allowed(*owner_permissions)
     end
   end
@@ -203,7 +203,7 @@ def expect_disallowed(*permissions)
       nested_group.add_guest(guest)
       nested_group.add_guest(reporter)
       nested_group.add_guest(developer)
-      nested_group.add_guest(master)
+      nested_group.add_guest(maintainer)
 
       group.owners.destroy_all
 
@@ -220,7 +220,7 @@ def expect_disallowed(*permissions)
         expect_disallowed(*guest_permissions)
         expect_disallowed(*reporter_permissions)
         expect_disallowed(*developer_permissions)
-        expect_disallowed(*master_permissions)
+        expect_disallowed(*maintainer_permissions)
         expect_disallowed(*owner_permissions)
       end
     end
@@ -232,7 +232,7 @@ def expect_disallowed(*permissions)
         expect_allowed(*guest_permissions)
         expect_disallowed(*reporter_permissions)
         expect_disallowed(*developer_permissions)
-        expect_disallowed(*master_permissions)
+        expect_disallowed(*maintainer_permissions)
         expect_disallowed(*owner_permissions)
       end
     end
@@ -244,7 +244,7 @@ def expect_disallowed(*permissions)
         expect_allowed(*guest_permissions)
         expect_allowed(*reporter_permissions)
         expect_disallowed(*developer_permissions)
-        expect_disallowed(*master_permissions)
+        expect_disallowed(*maintainer_permissions)
         expect_disallowed(*owner_permissions)
       end
     end
@@ -256,19 +256,19 @@ def expect_disallowed(*permissions)
         expect_allowed(*guest_permissions)
         expect_allowed(*reporter_permissions)
         expect_allowed(*developer_permissions)
-        expect_disallowed(*master_permissions)
+        expect_disallowed(*maintainer_permissions)
         expect_disallowed(*owner_permissions)
       end
     end
 
-    context 'master' do
-      let(:current_user) { master }
+    context 'maintainer' do
+      let(:current_user) { maintainer }
 
       it do
         expect_allowed(*guest_permissions)
         expect_allowed(*reporter_permissions)
         expect_allowed(*developer_permissions)
-        expect_allowed(*master_permissions)
+        expect_allowed(*maintainer_permissions)
         expect_disallowed(*owner_permissions)
       end
     end
@@ -282,7 +282,7 @@ def expect_disallowed(*permissions)
         expect_allowed(*guest_permissions)
         expect_allowed(*reporter_permissions)
         expect_allowed(*developer_permissions)
-        expect_allowed(*master_permissions)
+        expect_allowed(*maintainer_permissions)
         expect_allowed(*owner_permissions)
       end
     end
diff --git a/spec/policies/project_policy_spec.rb b/spec/policies/project_policy_spec.rb
index 6d4676c25a527393a57eefddf5b2975c89543284..dd3fa4e6a518882a39cf6b9de35189525aee5332 100644
--- a/spec/policies/project_policy_spec.rb
+++ b/spec/policies/project_policy_spec.rb
@@ -4,7 +4,7 @@
   set(:guest) { create(:user) }
   set(:reporter) { create(:user) }
   set(:developer) { create(:user) }
-  set(:master) { create(:user) }
+  set(:maintainer) { create(:user) }
   set(:owner) { create(:user) }
   set(:admin) { create(:admin) }
   let(:project) { create(:project, :public, namespace: owner.namespace) }
@@ -42,7 +42,7 @@
     ]
   end
 
-  let(:base_master_permissions) do
+  let(:base_maintainer_permissions) do
     %i[
       push_to_delete_protected_branch update_project_snippet update_environment
       update_deployment admin_project_snippet
@@ -70,15 +70,15 @@
   # Used in EE specs
   let(:additional_guest_permissions)  { [] }
   let(:additional_reporter_permissions) { [] }
-  let(:additional_master_permissions) { [] }
+  let(:additional_maintainer_permissions) { [] }
 
   let(:guest_permissions) { base_guest_permissions + additional_guest_permissions }
   let(:reporter_permissions) { base_reporter_permissions + additional_reporter_permissions }
-  let(:master_permissions) { base_master_permissions + additional_master_permissions }
+  let(:maintainer_permissions) { base_maintainer_permissions + additional_maintainer_permissions }
 
   before do
     project.add_guest(guest)
-    project.add_master(master)
+    project.add_maintainer(maintainer)
     project.add_developer(developer)
     project.add_reporter(reporter)
   end
@@ -276,7 +276,7 @@ def expect_disallowed(*permissions)
         expect_disallowed(*reporter_public_build_permissions)
         expect_disallowed(*team_member_reporter_permissions)
         expect_disallowed(*developer_permissions)
-        expect_disallowed(*master_permissions)
+        expect_disallowed(*maintainer_permissions)
         expect_disallowed(*owner_permissions)
       end
 
@@ -326,7 +326,7 @@ def expect_disallowed(*permissions)
         expect_allowed(*reporter_permissions)
         expect_allowed(*team_member_reporter_permissions)
         expect_disallowed(*developer_permissions)
-        expect_disallowed(*master_permissions)
+        expect_disallowed(*maintainer_permissions)
         expect_disallowed(*owner_permissions)
       end
 
@@ -347,7 +347,7 @@ def expect_disallowed(*permissions)
         expect_allowed(*reporter_permissions)
         expect_allowed(*team_member_reporter_permissions)
         expect_allowed(*developer_permissions)
-        expect_disallowed(*master_permissions)
+        expect_disallowed(*maintainer_permissions)
         expect_disallowed(*owner_permissions)
       end
 
@@ -357,23 +357,23 @@ def expect_disallowed(*permissions)
     end
   end
 
-  shared_examples 'project policies as master' do
+  shared_examples 'project policies as maintainer' do
     context 'abilities for non-public projects' do
       let(:project) { create(:project, namespace: owner.namespace) }
 
-      subject { described_class.new(master, project) }
+      subject { described_class.new(maintainer, project) }
 
       it do
         expect_allowed(*guest_permissions)
         expect_allowed(*reporter_permissions)
         expect_allowed(*team_member_reporter_permissions)
         expect_allowed(*developer_permissions)
-        expect_allowed(*master_permissions)
+        expect_allowed(*maintainer_permissions)
         expect_disallowed(*owner_permissions)
       end
 
       it_behaves_like 'archived project policies' do
-        let(:regular_abilities) { master_permissions }
+        let(:regular_abilities) { maintainer_permissions }
       end
     end
   end
@@ -389,7 +389,7 @@ def expect_disallowed(*permissions)
         expect_allowed(*reporter_permissions)
         expect_allowed(*team_member_reporter_permissions)
         expect_allowed(*developer_permissions)
-        expect_allowed(*master_permissions)
+        expect_allowed(*maintainer_permissions)
         expect_allowed(*owner_permissions)
       end
 
@@ -410,7 +410,7 @@ def expect_disallowed(*permissions)
         expect_allowed(*reporter_permissions)
         expect_disallowed(*team_member_reporter_permissions)
         expect_allowed(*developer_permissions)
-        expect_allowed(*master_permissions)
+        expect_allowed(*maintainer_permissions)
         expect_allowed(*owner_permissions)
       end
 
@@ -424,7 +424,7 @@ def expect_disallowed(*permissions)
   it_behaves_like 'project policies as guest'
   it_behaves_like 'project policies as reporter'
   it_behaves_like 'project policies as developer'
-  it_behaves_like 'project policies as master'
+  it_behaves_like 'project policies as maintainer'
   it_behaves_like 'project policies as owner'
   it_behaves_like 'project policies as admin'
 
diff --git a/spec/policies/protected_branch_policy_spec.rb b/spec/policies/protected_branch_policy_spec.rb
index b39de42d721ff8481727b0d090fab422fbaccd32..1587196754dffb16246e362e4bfda0df77a34005 100644
--- a/spec/policies/protected_branch_policy_spec.rb
+++ b/spec/policies/protected_branch_policy_spec.rb
@@ -8,8 +8,8 @@
 
   subject { described_class.new(user, protected_branch) }
 
-  it 'branches can be updated via project masters' do
-    project.add_master(user)
+  it 'branches can be updated via project maintainers' do
+    project.add_maintainer(user)
 
     is_expected.to be_allowed(:update_protected_branch)
   end
diff --git a/spec/presenters/merge_request_presenter_spec.rb b/spec/presenters/merge_request_presenter_spec.rb
index e3b37739e8ed4700842dd09aae7499d75fd3a6a8..46ba6f442f58a31c198f18974247252a98a8acdb 100644
--- a/spec/presenters/merge_request_presenter_spec.rb
+++ b/spec/presenters/merge_request_presenter_spec.rb
@@ -270,7 +270,7 @@
     context 'when can create issue and issues enabled' do
       it 'returns path' do
         allow(project).to receive(:issues_enabled?) { true }
-        project.add_master(user)
+        project.add_maintainer(user)
 
         is_expected
           .to eq("/#{resource.project.full_path}/issues/new?merge_request_to_resolve_discussions_of=#{resource.iid}")
@@ -288,7 +288,7 @@
     context 'when issues disabled' do
       it 'returns nil' do
         allow(project).to receive(:issues_enabled?) { false }
-        project.add_master(user)
+        project.add_maintainer(user)
 
         is_expected.to be_nil
       end
@@ -307,7 +307,7 @@
     context 'when merge request enabled and has permission' do
       it 'has remove_wip_path' do
         allow(project).to receive(:merge_requests_enabled?) { true }
-        project.add_master(user)
+        project.add_maintainer(user)
 
         is_expected
           .to eq("/#{resource.project.full_path}/merge_requests/#{resource.iid}/remove_wip")
diff --git a/spec/presenters/project_presenter_spec.rb b/spec/presenters/project_presenter_spec.rb
index 830d2ee3b20222f176017aeeee6086c40fd4777d..01085dbcb494dfd714341e0ddfa4b7df79bbdadd 100644
--- a/spec/presenters/project_presenter_spec.rb
+++ b/spec/presenters/project_presenter_spec.rb
@@ -326,7 +326,7 @@
 
       context 'when user can admin pipeline and CI yml does not exists' do
         it 'returns anchor data' do
-          project.add_master(user)
+          project.add_maintainer(user)
           allow(project).to receive(:auto_devops_enabled?).and_return(false)
           allow(project.repository).to receive(:gitlab_ci_yml).and_return(nil)
 
@@ -340,7 +340,7 @@
     describe '#kubernetes_cluster_anchor_data' do
       context 'when user can create Kubernetes cluster' do
         it 'returns link to cluster if only one exists' do
-          project.add_master(user)
+          project.add_maintainer(user)
           cluster = create(:cluster, projects: [project])
 
           expect(presenter.kubernetes_cluster_anchor_data).to eq(OpenStruct.new(enabled: true,
@@ -349,7 +349,7 @@
         end
 
         it 'returns link to clusters page if more than one exists' do
-          project.add_master(user)
+          project.add_maintainer(user)
           create(:cluster, :production_environment, projects: [project])
           create(:cluster, projects: [project])
 
@@ -359,7 +359,7 @@
         end
 
         it 'returns link to create a cluster if no cluster exists' do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           expect(presenter.kubernetes_cluster_anchor_data).to eq(OpenStruct.new(enabled: false,
                                                                                 label: 'Add Kubernetes cluster',
diff --git a/spec/requests/api/access_requests_spec.rb b/spec/requests/api/access_requests_spec.rb
index ffca7ab8e45612c2a3373e55db1782b3208d8e64..e13129967b2765d94187a214936c89e87e01e716 100644
--- a/spec/requests/api/access_requests_spec.rb
+++ b/spec/requests/api/access_requests_spec.rb
@@ -1,15 +1,15 @@
 require 'spec_helper'
 
 describe API::AccessRequests do
-  set(:master) { create(:user) }
+  set(:maintainer) { create(:user) }
   set(:developer) { create(:user) }
   set(:access_requester) { create(:user) }
   set(:stranger) { create(:user) }
 
   set(:project) do
-    create(:project, :public, :access_requestable, creator_id: master.id, namespace: master.namespace) do |project|
+    create(:project, :public, :access_requestable, creator_id: maintainer.id, namespace: maintainer.namespace) do |project|
       project.add_developer(developer)
-      project.add_master(master)
+      project.add_maintainer(maintainer)
       project.request_access(access_requester)
     end
   end
@@ -17,7 +17,7 @@
   set(:group) do
     create(:group, :public, :access_requestable) do |group|
       group.add_developer(developer)
-      group.add_owner(master)
+      group.add_owner(maintainer)
       group.request_access(access_requester)
     end
   end
@@ -28,7 +28,7 @@
         let(:route) { get api("/#{source_type.pluralize}/#{source.id}/access_requests", stranger) }
       end
 
-      context 'when authenticated as a non-master/owner' do
+      context 'when authenticated as a non-maintainer/owner' do
         %i[developer access_requester stranger].each do |type|
           context "as a #{type}" do
             it 'returns 403' do
@@ -41,9 +41,9 @@
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         it 'returns access requesters' do
-          get api("/#{source_type.pluralize}/#{source.id}/access_requests", master)
+          get api("/#{source_type.pluralize}/#{source.id}/access_requests", maintainer)
 
           expect(response).to have_gitlab_http_status(200)
           expect(response).to include_pagination_headers
@@ -61,7 +61,7 @@
       end
 
       context 'when authenticated as a member' do
-        %i[developer master].each do |type|
+        %i[developer maintainer].each do |type|
           context "as a #{type}" do
             it 'returns 403' do
               expect do
@@ -128,7 +128,7 @@
         let(:route) { put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}/approve", stranger) }
       end
 
-      context 'when authenticated as a non-master/owner' do
+      context 'when authenticated as a non-maintainer/owner' do
         %i[developer access_requester stranger].each do |type|
           context "as a #{type}" do
             it 'returns 403' do
@@ -141,11 +141,11 @@
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         it 'returns 201' do
           expect do
-            put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}/approve", master),
-                access_level: Member::MASTER
+            put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}/approve", maintainer),
+                access_level: Member::MAINTAINER
 
             expect(response).to have_gitlab_http_status(201)
           end.to change { source.members.count }.by(1)
@@ -158,13 +158,13 @@
           expect(json_response['web_url']).to eq(Gitlab::Routing.url_helpers.user_url(access_requester))
 
           # Member attributes
-          expect(json_response['access_level']).to eq(Member::MASTER)
+          expect(json_response['access_level']).to eq(Member::MAINTAINER)
         end
 
         context 'user_id does not match an existing access requester' do
           it 'returns 404' do
             expect do
-              put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{stranger.id}/approve", master)
+              put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{stranger.id}/approve", maintainer)
 
               expect(response).to have_gitlab_http_status(404)
             end.not_to change { source.members.count }
@@ -180,7 +180,7 @@
         let(:route) { delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", stranger) }
       end
 
-      context 'when authenticated as a non-master/owner' do
+      context 'when authenticated as a non-maintainer/owner' do
         %i[developer stranger].each do |type|
           context "as a #{type}" do
             it 'returns 403' do
@@ -203,10 +203,10 @@
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         it 'deletes the access requester' do
           expect do
-            delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", master)
+            delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", maintainer)
 
             expect(response).to have_gitlab_http_status(204)
           end.to change { source.requesters.count }.by(-1)
@@ -215,7 +215,7 @@
         context 'user_id matches a member, not an access requester' do
           it 'returns 404' do
             expect do
-              delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{developer.id}", master)
+              delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{developer.id}", maintainer)
 
               expect(response).to have_gitlab_http_status(404)
             end.not_to change { source.requesters.count }
@@ -225,7 +225,7 @@
         context 'user_id does not match an existing access requester' do
           it 'returns 404' do
             expect do
-              delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{stranger.id}", master)
+              delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{stranger.id}", maintainer)
 
               expect(response).to have_gitlab_http_status(404)
             end.not_to change { source.requesters.count }
diff --git a/spec/requests/api/award_emoji_spec.rb b/spec/requests/api/award_emoji_spec.rb
index 5adfb33677f5cd1cb0bfa702046dc176b898cb2b..0921fecb933b19378d431f490c7eebb06900b5b7 100644
--- a/spec/requests/api/award_emoji_spec.rb
+++ b/spec/requests/api/award_emoji_spec.rb
@@ -10,7 +10,7 @@
   set(:note)          { create(:note, project: project, noteable: issue) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe "GET /projects/:id/awardable/:awardable_id/award_emoji" do
diff --git a/spec/requests/api/badges_spec.rb b/spec/requests/api/badges_spec.rb
index ae64a9ca16253b37d822aca4dd10146889d97819..e232e2e04ee0cdb81d88af1c6d2e2a903b0bd791 100644
--- a/spec/requests/api/badges_spec.rb
+++ b/spec/requests/api/badges_spec.rb
@@ -1,7 +1,7 @@
 require 'spec_helper'
 
 describe API::Badges do
-  let(:master) { create(:user, username: 'master_user') }
+  let(:maintainer) { create(:user, username: 'maintainer_user') }
   let(:developer) { create(:user) }
   let(:access_requester) { create(:user) }
   let(:stranger) { create(:user) }
@@ -25,7 +25,7 @@ def get_source(source_type)
         let(:route) { get api("/#{source_type.pluralize}/#{source.id}/badges", stranger) }
       end
 
-      %i[master developer access_requester stranger].each do |type|
+      %i[maintainer developer access_requester stranger].each do |type|
         context "when authenticated as a #{type}" do
           it 'returns 200' do
             user = public_send(type)
@@ -43,16 +43,16 @@ def get_source(source_type)
 
       it 'avoids N+1 queries' do
         # Establish baseline
-        get api("/#{source_type.pluralize}/#{source.id}/badges", master)
+        get api("/#{source_type.pluralize}/#{source.id}/badges", maintainer)
 
         control = ActiveRecord::QueryRecorder.new do
-          get api("/#{source_type.pluralize}/#{source.id}/badges", master)
+          get api("/#{source_type.pluralize}/#{source.id}/badges", maintainer)
         end
 
         project.add_developer(create(:user))
 
         expect do
-          get api("/#{source_type.pluralize}/#{source.id}/badges", master)
+          get api("/#{source_type.pluralize}/#{source.id}/badges", maintainer)
         end.not_to exceed_query_limit(control)
       end
     end
@@ -69,7 +69,7 @@ def get_source(source_type)
       end
 
       context 'when authenticated as a non-member' do
-        %i[master developer access_requester stranger].each do |type|
+        %i[maintainer developer access_requester stranger].each do |type|
           let(:badge) { source.badges.first }
 
           context "as a #{type}" do
@@ -122,10 +122,10 @@ def get_source(source_type)
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         it 'creates a new badge' do
           expect do
-            post api("/#{source_type.pluralize}/#{source.id}/badges", master),
+            post api("/#{source_type.pluralize}/#{source.id}/badges", maintainer),
                 link_url: example_url, image_url: example_url2
 
             expect(response).to have_gitlab_http_status(201)
@@ -138,21 +138,21 @@ def get_source(source_type)
       end
 
       it 'returns 400 when link_url is not given' do
-        post api("/#{source_type.pluralize}/#{source.id}/badges", master),
+        post api("/#{source_type.pluralize}/#{source.id}/badges", maintainer),
              link_url: example_url
 
         expect(response).to have_gitlab_http_status(400)
       end
 
       it 'returns 400 when image_url is not given' do
-        post api("/#{source_type.pluralize}/#{source.id}/badges", master),
+        post api("/#{source_type.pluralize}/#{source.id}/badges", maintainer),
              image_url: example_url2
 
         expect(response).to have_gitlab_http_status(400)
       end
 
       it 'returns 400 when link_url or image_url is not valid' do
-        post api("/#{source_type.pluralize}/#{source.id}/badges", master),
+        post api("/#{source_type.pluralize}/#{source.id}/badges", maintainer),
              link_url: 'whatever', image_url: 'whatever'
 
         expect(response).to have_gitlab_http_status(400)
@@ -192,9 +192,9 @@ def get_source(source_type)
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         it 'updates the member' do
-          put api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", master),
+          put api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", maintainer),
               link_url: example_url, image_url: example_url2
 
           expect(response).to have_gitlab_http_status(200)
@@ -205,7 +205,7 @@ def get_source(source_type)
       end
 
       it 'returns 400 when link_url or image_url is not valid' do
-        put api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", master),
+        put api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", maintainer),
             link_url: 'whatever', image_url: 'whatever'
 
         expect(response).to have_gitlab_http_status(400)
@@ -239,22 +239,22 @@ def get_source(source_type)
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         it 'deletes the badge' do
           expect do
-            delete api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", master)
+            delete api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", maintainer)
 
             expect(response).to have_gitlab_http_status(204)
           end.to change { source.badges.count }.by(-1)
         end
 
         it_behaves_like '412 response' do
-          let(:request) { api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", master) }
+          let(:request) { api("/#{source_type.pluralize}/#{source.id}/badges/#{badge.id}", maintainer) }
         end
       end
 
       it 'returns 404 if badge does not exist' do
-        delete api("/#{source_type.pluralize}/#{source.id}/badges/123", master)
+        delete api("/#{source_type.pluralize}/#{source.id}/badges/123", maintainer)
 
         expect(response).to have_gitlab_http_status(404)
       end
@@ -289,9 +289,9 @@ def get_source(source_type)
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         it 'gets the rendered badge values' do
-          get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=#{example_url}&image_url=#{example_url2}", master)
+          get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=#{example_url}&image_url=#{example_url2}", maintainer)
 
           expect(response).to have_gitlab_http_status(200)
 
@@ -304,19 +304,19 @@ def get_source(source_type)
       end
 
       it 'returns 400 when link_url is not given' do
-        get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=#{example_url}", master)
+        get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=#{example_url}", maintainer)
 
         expect(response).to have_gitlab_http_status(400)
       end
 
       it 'returns 400 when image_url is not given' do
-        get api("/#{source_type.pluralize}/#{source.id}/badges/render?image_url=#{example_url}", master)
+        get api("/#{source_type.pluralize}/#{source.id}/badges/render?image_url=#{example_url}", maintainer)
 
         expect(response).to have_gitlab_http_status(400)
       end
 
       it 'returns 400 when link_url or image_url is not valid' do
-        get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=whatever&image_url=whatever", master)
+        get api("/#{source_type.pluralize}/#{source.id}/badges/render?link_url=whatever&image_url=whatever", maintainer)
 
         expect(response).to have_gitlab_http_status(400)
       end
@@ -326,7 +326,7 @@ def get_source(source_type)
   context 'when deleting a badge' do
     context 'and the source is a project' do
       it 'cannot delete badges owned by the project group' do
-        delete api("/projects/#{project.id}/badges/#{project_group.badges.first.id}", master)
+        delete api("/projects/#{project.id}/badges/#{project_group.badges.first.id}", maintainer)
 
         expect(response).to have_gitlab_http_status(403)
       end
@@ -345,9 +345,9 @@ def get_source(source_type)
   end
 
   def setup_project
-    create(:project, :public, :access_requestable, creator_id: master.id, namespace: project_group) do |project|
+    create(:project, :public, :access_requestable, creator_id: maintainer.id, namespace: project_group) do |project|
       project.add_developer(developer)
-      project.add_master(master)
+      project.add_maintainer(maintainer)
       project.request_access(access_requester)
       project.project_badges << build(:project_badge, project: project)
       project.project_badges << build(:project_badge, project: project)
@@ -358,7 +358,7 @@ def setup_project
   def setup_group
     create(:group, :public, :access_requestable) do |group|
       group.add_developer(developer)
-      group.add_owner(master)
+      group.add_owner(maintainer)
       group.request_access(access_requester)
       group.badges << build(:group_badge, group: group)
       group.badges << build(:group_badge, group: group)
diff --git a/spec/requests/api/branches_spec.rb b/spec/requests/api/branches_spec.rb
index 9bb6ed6239395744d7dfb9a181f860c84d54cc64..7fff0a6cce647733765996f28aa010aa42ad7476 100644
--- a/spec/requests/api/branches_spec.rb
+++ b/spec/requests/api/branches_spec.rb
@@ -13,7 +13,7 @@
   let(:current_user) { nil }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe "GET /projects/:id/repository/branches" do
@@ -75,7 +75,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'repository branches'
@@ -170,7 +170,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'repository branch'
@@ -324,7 +324,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       context "when a protected branch doesn't already exist" do
@@ -381,8 +381,8 @@
             expect(json_response['protected']).to eq(true)
             expect(json_response['developers_can_push']).to eq(false)
             expect(json_response['developers_can_merge']).to eq(false)
-            expect(protected_branch.reload.push_access_levels.first.access_level).to eq(Gitlab::Access::MASTER)
-            expect(protected_branch.reload.merge_access_levels.first.access_level).to eq(Gitlab::Access::MASTER)
+            expect(protected_branch.reload.push_access_levels.first.access_level).to eq(Gitlab::Access::MAINTAINER)
+            expect(protected_branch.reload.merge_access_levels.first.access_level).to eq(Gitlab::Access::MAINTAINER)
           end
         end
 
@@ -458,7 +458,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       context "when a protected branch doesn't already exist" do
@@ -534,7 +534,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       context "when a protected branch doesn't already exist" do
diff --git a/spec/requests/api/commits_spec.rb b/spec/requests/api/commits_spec.rb
index e73d1a252f59d1faa9d51968dcd28bd080649ce0..113703fac3873247fe3f6d6713f3437b1ab5e6f7 100644
--- a/spec/requests/api/commits_spec.rb
+++ b/spec/requests/api/commits_spec.rb
@@ -12,7 +12,7 @@
   let(:current_user) { nil }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET /projects/:id/repository/commits' do
@@ -55,7 +55,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'project commits'
@@ -667,7 +667,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'ref commit'
@@ -785,7 +785,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'ref diff'
@@ -884,7 +884,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'ref comments'
diff --git a/spec/requests/api/deployments_spec.rb b/spec/requests/api/deployments_spec.rb
index 51b70fda1482972f4ac681ee1dd2081eaee1cdc3..61ae053cea76e311f23a4620c988b75ddaa99ada 100644
--- a/spec/requests/api/deployments_spec.rb
+++ b/spec/requests/api/deployments_spec.rb
@@ -5,7 +5,7 @@
   let(:non_member)  { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET /projects/:id/deployments' do
diff --git a/spec/requests/api/environments_spec.rb b/spec/requests/api/environments_spec.rb
index fdddca5d0ef517b1bcd56e31827d0cea8eefe08e..bf93555b0f0d9d162fe66dbfccc1cc3c5501c76e 100644
--- a/spec/requests/api/environments_spec.rb
+++ b/spec/requests/api/environments_spec.rb
@@ -7,7 +7,7 @@
   let!(:environment)  { create(:environment, project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET /projects/:id/environments' do
@@ -126,7 +126,7 @@
   end
 
   describe 'DELETE /projects/:id/environments/:environment_id' do
-    context 'as a master' do
+    context 'as a maintainer' do
       it 'returns a 200 for an existing environment' do
         delete api("/projects/#{project.id}/environments/#{environment.id}", user)
 
@@ -155,7 +155,7 @@
   end
 
   describe 'POST /projects/:id/environments/:environment_id/stop' do
-    context 'as a master' do
+    context 'as a maintainer' do
       context 'with a stoppable environment' do
         before do
           environment.update(state: :available)
diff --git a/spec/requests/api/group_variables_spec.rb b/spec/requests/api/group_variables_spec.rb
index 64fa7dc824c03646f8cfb36c8dbc3e5d7621783f..f87e035c89d8683cd103158a5578f35f8345d603 100644
--- a/spec/requests/api/group_variables_spec.rb
+++ b/spec/requests/api/group_variables_spec.rb
@@ -9,7 +9,7 @@
 
     context 'authorized user with proper permissions' do
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       it 'returns group variables' do
@@ -42,7 +42,7 @@
 
     context 'authorized user with proper permissions' do
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       it 'returns group variable details' do
@@ -82,7 +82,7 @@
       let!(:variable) { create(:ci_group_variable, group: group) }
 
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       it 'creates variable' do
@@ -138,7 +138,7 @@
 
     context 'authorized user with proper permissions' do
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       it 'updates variable data' do
@@ -184,7 +184,7 @@
 
     context 'authorized user with proper permissions' do
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       it 'deletes variable' do
diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb
index 5a04e699d60c3e027e801ba6fa9dc362f45d8d42..65b387a21707e1be0f3fbb216760bc9188d511bf 100644
--- a/spec/requests/api/groups_spec.rb
+++ b/spec/requests/api/groups_spec.rb
@@ -215,7 +215,7 @@
 
     context 'when using owned in the request' do
       it 'returns an array of groups the user owns' do
-        group1.add_master(user2)
+        group1.add_maintainer(user2)
 
         get api('/groups', user2), owned: true
 
@@ -734,9 +734,9 @@ def response_project_ids(json_response, key)
         end
       end
 
-      context 'as master', :nested_groups do
+      context 'as maintainer', :nested_groups do
         before do
-          group2.add_master(user1)
+          group2.add_maintainer(user1)
         end
 
         it 'cannot create subgroups' do
@@ -812,7 +812,7 @@ def response_project_ids(json_response, key)
 
       it "does not remove a group if not an owner" do
         user4 = create(:user)
-        group1.add_master(user4)
+        group1.add_maintainer(user4)
 
         delete api("/groups/#{group1.id}", user3)
 
diff --git a/spec/requests/api/issues_spec.rb b/spec/requests/api/issues_spec.rb
index 95eff029f98df8e839436ce207c607ce330ba391..66eb18229fa88bdb397562c0e539d4b2e582e154 100644
--- a/spec/requests/api/issues_spec.rb
+++ b/spec/requests/api/issues_spec.rb
@@ -1083,7 +1083,7 @@
       let(:project) { merge_request.source_project }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       context 'resolving all discussions in a merge request' do
diff --git a/spec/requests/api/jobs_spec.rb b/spec/requests/api/jobs_spec.rb
index 0609166ed90a4f0095213dd887bbbfc0faa68e99..7d1a5c1280549fe997229ee4448894b843620ffa 100644
--- a/spec/requests/api/jobs_spec.rb
+++ b/spec/requests/api/jobs_spec.rb
@@ -645,7 +645,7 @@ def get_for_ref(ref = pipeline.ref, job_name = job.name)
   end
 
   describe 'POST /projects/:id/jobs/:job_id/erase' do
-    let(:role) { :master }
+    let(:role) { :maintainer }
 
     before do
       project.add_role(user, role)
diff --git a/spec/requests/api/labels_spec.rb b/spec/requests/api/labels_spec.rb
index 34cbf75f4c14e45dd4c9d54c2c995042533b3ac7..a4220f5b2be64a1f8de2dab585b3cd90163c8975 100644
--- a/spec/requests/api/labels_spec.rb
+++ b/spec/requests/api/labels_spec.rb
@@ -7,7 +7,7 @@
   let!(:priority_label) { create(:label, title: 'bug', project: project, priority: 3) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET /projects/:id/labels' do
diff --git a/spec/requests/api/members_spec.rb b/spec/requests/api/members_spec.rb
index ec500838eb2235978c365f7a11cfd89ffa2a3775..01bbe7f5ec6b7b32a81f560de48e90caceb0e83d 100644
--- a/spec/requests/api/members_spec.rb
+++ b/spec/requests/api/members_spec.rb
@@ -1,15 +1,15 @@
 require 'spec_helper'
 
 describe API::Members do
-  let(:master) { create(:user, username: 'master_user') }
+  let(:maintainer) { create(:user, username: 'maintainer_user') }
   let(:developer) { create(:user) }
   let(:access_requester) { create(:user) }
   let(:stranger) { create(:user) }
 
   let(:project) do
-    create(:project, :public, :access_requestable, creator_id: master.id, namespace: master.namespace) do |project|
+    create(:project, :public, :access_requestable, creator_id: maintainer.id, namespace: maintainer.namespace) do |project|
       project.add_developer(developer)
-      project.add_master(master)
+      project.add_maintainer(maintainer)
       project.request_access(access_requester)
     end
   end
@@ -17,7 +17,7 @@
   let!(:group) do
     create(:group, :public, :access_requestable) do |group|
       group.add_developer(developer)
-      group.add_owner(master)
+      group.add_owner(maintainer)
       group.request_access(access_requester)
     end
   end
@@ -28,7 +28,7 @@
         let(:route) { get api("/#{source_type.pluralize}/#{source.id}/members", stranger) }
       end
 
-      %i[master developer access_requester stranger].each do |type|
+      %i[maintainer developer access_requester stranger].each do |type|
         context "when authenticated as a #{type}" do
           it 'returns 200' do
             user = public_send(type)
@@ -39,23 +39,23 @@
             expect(response).to include_pagination_headers
             expect(json_response).to be_an Array
             expect(json_response.size).to eq(2)
-            expect(json_response.map { |u| u['id'] }).to match_array [master.id, developer.id]
+            expect(json_response.map { |u| u['id'] }).to match_array [maintainer.id, developer.id]
           end
         end
       end
 
       it 'avoids N+1 queries' do
         # Establish baseline
-        get api("/#{source_type.pluralize}/#{source.id}/members", master)
+        get api("/#{source_type.pluralize}/#{source.id}/members", maintainer)
 
         control = ActiveRecord::QueryRecorder.new do
-          get api("/#{source_type.pluralize}/#{source.id}/members", master)
+          get api("/#{source_type.pluralize}/#{source.id}/members", maintainer)
         end
 
         project.add_developer(create(:user))
 
         expect do
-          get api("/#{source_type.pluralize}/#{source.id}/members", master)
+          get api("/#{source_type.pluralize}/#{source.id}/members", maintainer)
         end.not_to exceed_query_limit(control)
       end
 
@@ -68,17 +68,17 @@
         expect(response).to include_pagination_headers
         expect(json_response).to be_an Array
         expect(json_response.size).to eq(2)
-        expect(json_response.map { |u| u['id'] }).to match_array [master.id, developer.id]
+        expect(json_response.map { |u| u['id'] }).to match_array [maintainer.id, developer.id]
       end
 
       it 'finds members with query string' do
-        get api("/#{source_type.pluralize}/#{source.id}/members", developer), query: master.username
+        get api("/#{source_type.pluralize}/#{source.id}/members", developer), query: maintainer.username
 
         expect(response).to have_gitlab_http_status(200)
         expect(response).to include_pagination_headers
         expect(json_response).to be_an Array
         expect(json_response.count).to eq(1)
-        expect(json_response.first['username']).to eq(master.username)
+        expect(json_response.first['username']).to eq(maintainer.username)
       end
 
       it 'finds all members with no query specified' do
@@ -88,7 +88,7 @@
         expect(response).to include_pagination_headers
         expect(json_response).to be_an Array
         expect(json_response.count).to eq(2)
-        expect(json_response.map { |u| u['id'] }).to match_array [master.id, developer.id]
+        expect(json_response.map { |u| u['id'] }).to match_array [maintainer.id, developer.id]
       end
     end
   end
@@ -129,7 +129,7 @@
       it_behaves_like 'a 404 response when source is private' do
         let(:route) do
           post api("/#{source_type.pluralize}/#{source.id}/members", stranger),
-               user_id: access_requester.id, access_level: Member::MASTER
+               user_id: access_requester.id, access_level: Member::MAINTAINER
         end
       end
 
@@ -139,7 +139,7 @@
             it 'returns 403' do
               user = public_send(type)
               post api("/#{source_type.pluralize}/#{source.id}/members", user),
-                   user_id: access_requester.id, access_level: Member::MASTER
+                   user_id: access_requester.id, access_level: Member::MAINTAINER
 
               expect(response).to have_gitlab_http_status(403)
             end
@@ -147,24 +147,24 @@
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         context 'and new member is already a requester' do
           it 'transforms the requester into a proper member' do
             expect do
-              post api("/#{source_type.pluralize}/#{source.id}/members", master),
-                   user_id: access_requester.id, access_level: Member::MASTER
+              post api("/#{source_type.pluralize}/#{source.id}/members", maintainer),
+                   user_id: access_requester.id, access_level: Member::MAINTAINER
 
               expect(response).to have_gitlab_http_status(201)
             end.to change { source.members.count }.by(1)
             expect(source.requesters.count).to eq(0)
             expect(json_response['id']).to eq(access_requester.id)
-            expect(json_response['access_level']).to eq(Member::MASTER)
+            expect(json_response['access_level']).to eq(Member::MAINTAINER)
           end
         end
 
         it 'creates a new member' do
           expect do
-            post api("/#{source_type.pluralize}/#{source.id}/members", master),
+            post api("/#{source_type.pluralize}/#{source.id}/members", maintainer),
                  user_id: stranger.id, access_level: Member::DEVELOPER, expires_at: '2016-08-05'
 
             expect(response).to have_gitlab_http_status(201)
@@ -176,28 +176,28 @@
       end
 
       it "returns 409 if member already exists" do
-        post api("/#{source_type.pluralize}/#{source.id}/members", master),
-             user_id: master.id, access_level: Member::MASTER
+        post api("/#{source_type.pluralize}/#{source.id}/members", maintainer),
+             user_id: maintainer.id, access_level: Member::MAINTAINER
 
         expect(response).to have_gitlab_http_status(409)
       end
 
       it 'returns 400 when user_id is not given' do
-        post api("/#{source_type.pluralize}/#{source.id}/members", master),
-             access_level: Member::MASTER
+        post api("/#{source_type.pluralize}/#{source.id}/members", maintainer),
+             access_level: Member::MAINTAINER
 
         expect(response).to have_gitlab_http_status(400)
       end
 
       it 'returns 400 when access_level is not given' do
-        post api("/#{source_type.pluralize}/#{source.id}/members", master),
+        post api("/#{source_type.pluralize}/#{source.id}/members", maintainer),
              user_id: stranger.id
 
         expect(response).to have_gitlab_http_status(400)
       end
 
       it 'returns 400  when access_level is not valid' do
-        post api("/#{source_type.pluralize}/#{source.id}/members", master),
+        post api("/#{source_type.pluralize}/#{source.id}/members", maintainer),
              user_id: stranger.id, access_level: 1234
 
         expect(response).to have_gitlab_http_status(400)
@@ -210,7 +210,7 @@
       it_behaves_like 'a 404 response when source is private' do
         let(:route) do
           put api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", stranger),
-              access_level: Member::MASTER
+              access_level: Member::MAINTAINER
         end
       end
 
@@ -220,7 +220,7 @@
             it 'returns 403' do
               user = public_send(type)
               put api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", user),
-                  access_level: Member::MASTER
+                  access_level: Member::MAINTAINER
 
               expect(response).to have_gitlab_http_status(403)
             end
@@ -228,33 +228,33 @@
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         it 'updates the member' do
-          put api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", master),
-              access_level: Member::MASTER, expires_at: '2016-08-05'
+          put api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", maintainer),
+              access_level: Member::MAINTAINER, expires_at: '2016-08-05'
 
           expect(response).to have_gitlab_http_status(200)
           expect(json_response['id']).to eq(developer.id)
-          expect(json_response['access_level']).to eq(Member::MASTER)
+          expect(json_response['access_level']).to eq(Member::MAINTAINER)
           expect(json_response['expires_at']).to eq('2016-08-05')
         end
       end
 
       it 'returns 409 if member does not exist' do
-        put api("/#{source_type.pluralize}/#{source.id}/members/123", master),
-            access_level: Member::MASTER
+        put api("/#{source_type.pluralize}/#{source.id}/members/123", maintainer),
+            access_level: Member::MAINTAINER
 
         expect(response).to have_gitlab_http_status(404)
       end
 
       it 'returns 400 when access_level is not given' do
-        put api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", master)
+        put api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", maintainer)
 
         expect(response).to have_gitlab_http_status(400)
       end
 
       it 'returns 400  when access level is not valid' do
-        put api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", master),
+        put api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", maintainer),
             access_level: 1234
 
         expect(response).to have_gitlab_http_status(400)
@@ -291,11 +291,11 @@
         end
       end
 
-      context 'when authenticated as a master/owner' do
+      context 'when authenticated as a maintainer/owner' do
         context 'and member is a requester' do
           it 'returns 404' do
             expect do
-              delete api("/#{source_type.pluralize}/#{source.id}/members/#{access_requester.id}", master)
+              delete api("/#{source_type.pluralize}/#{source.id}/members/#{access_requester.id}", maintainer)
 
               expect(response).to have_gitlab_http_status(404)
             end.not_to change { source.requesters.count }
@@ -304,19 +304,19 @@
 
         it 'deletes the member' do
           expect do
-            delete api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", master)
+            delete api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", maintainer)
 
             expect(response).to have_gitlab_http_status(204)
           end.to change { source.members.count }.by(-1)
         end
 
         it_behaves_like '412 response' do
-          let(:request) { api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", master) }
+          let(:request) { api("/#{source_type.pluralize}/#{source.id}/members/#{developer.id}", maintainer) }
         end
       end
 
       it 'returns 404 if member does not exist' do
-        delete api("/#{source_type.pluralize}/#{source.id}/members/123", master)
+        delete api("/#{source_type.pluralize}/#{source.id}/members/123", maintainer)
 
         expect(response).to have_gitlab_http_status(404)
       end
@@ -366,7 +366,7 @@
   context 'Adding owner to project' do
     it 'returns 403' do
       expect do
-        post api("/projects/#{project.id}/members", master),
+        post api("/projects/#{project.id}/members", maintainer),
              user_id: stranger.id, access_level: Member::OWNER
 
         expect(response).to have_gitlab_http_status(400)
diff --git a/spec/requests/api/merge_request_diffs_spec.rb b/spec/requests/api/merge_request_diffs_spec.rb
index cb647aee70fdeda3bce0922560b47cf1f742ebb5..6530dc956cb2d74c013ad1f22fba978517ab6048 100644
--- a/spec/requests/api/merge_request_diffs_spec.rb
+++ b/spec/requests/api/merge_request_diffs_spec.rb
@@ -8,7 +8,7 @@
   before do
     merge_request.merge_request_diffs.create(head_commit_sha: '6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9')
     merge_request.merge_request_diffs.create(head_commit_sha: '5937ac0a7beb003549fc5fd26fc247adbce4a52e')
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET /projects/:id/merge_requests/:merge_request_iid/versions' do
diff --git a/spec/requests/api/notes_spec.rb b/spec/requests/api/notes_spec.rb
index f4cf5bd0530306c94fc9c086857ca8004a725a92..3fb45449c74f62067e3f6be583a3ff30c80662a4 100644
--- a/spec/requests/api/notes_spec.rb
+++ b/spec/requests/api/notes_spec.rb
@@ -44,7 +44,7 @@
       # For testing the cross-reference of a private issue in a public project
       let(:private_project) do
         create(:project, namespace: private_user.namespace)
-        .tap { |p| p.add_master(private_user) }
+        .tap { |p| p.add_maintainer(private_user) }
       end
       let(:private_issue)    { create(:issue, project: private_project) }
 
diff --git a/spec/requests/api/pages_domains_spec.rb b/spec/requests/api/pages_domains_spec.rb
index a9ccbb3266611a3a6c88db5930f88610a595d9e5..35b6ed8d5c0ec1b74aed43c7cb25546d884fb21d 100644
--- a/spec/requests/api/pages_domains_spec.rb
+++ b/spec/requests/api/pages_domains_spec.rb
@@ -80,7 +80,7 @@
     context 'when pages is disabled' do
       before do
         allow(Gitlab.config.pages).to receive(:enabled).and_return(false)
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like '404 response' do
@@ -88,9 +88,9 @@
       end
     end
 
-    context 'when user is a master' do
+    context 'when user is a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like 'get pages domains'
@@ -177,7 +177,7 @@
 
     context 'when domain is vacant' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like '404 response' do
@@ -185,9 +185,9 @@
       end
     end
 
-    context 'when user is a master' do
+    context 'when user is a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like 'get pages domain'
@@ -270,9 +270,9 @@
       end
     end
 
-    context 'when user is a master' do
+    context 'when user is a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like 'post pages domains'
@@ -380,7 +380,7 @@
 
     context 'when domain is vacant' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like '404 response' do
@@ -388,9 +388,9 @@
       end
     end
 
-    context 'when user is a master' do
+    context 'when user is a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like 'put pages domain'
@@ -444,7 +444,7 @@
 
     context 'when domain is vacant' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like '404 response' do
@@ -452,9 +452,9 @@
       end
     end
 
-    context 'when user is a master' do
+    context 'when user is a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like 'delete pages domain'
diff --git a/spec/requests/api/pipeline_schedules_spec.rb b/spec/requests/api/pipeline_schedules_spec.rb
index 173f2a0dea08fb9917b3bd5820db1a06b6720795..997d413eb4f23e034a3d3de9ccb09496e79c60d1 100644
--- a/spec/requests/api/pipeline_schedules_spec.rb
+++ b/spec/requests/api/pipeline_schedules_spec.rb
@@ -270,38 +270,38 @@ def active?(str)
   end
 
   describe 'DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id' do
-    let(:master) { create(:user) }
+    let(:maintainer) { create(:user) }
 
     let!(:pipeline_schedule) do
       create(:ci_pipeline_schedule, project: project, owner: developer)
     end
 
     before do
-      project.add_master(master)
+      project.add_maintainer(maintainer)
     end
 
     context 'authenticated user with valid permissions' do
       it 'deletes pipeline_schedule' do
         expect do
-          delete api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}", master)
+          delete api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}", maintainer)
         end.to change { project.pipeline_schedules.count }.by(-1)
 
         expect(response).to have_gitlab_http_status(204)
       end
 
       it 'responds with 404 Not Found if requesting non-existing pipeline_schedule' do
-        delete api("/projects/#{project.id}/pipeline_schedules/-5", master)
+        delete api("/projects/#{project.id}/pipeline_schedules/-5", maintainer)
 
         expect(response).to have_gitlab_http_status(:not_found)
       end
 
       it_behaves_like '412 response' do
-        let(:request) { api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}", master) }
+        let(:request) { api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}", maintainer) }
       end
     end
 
     context 'authenticated user with invalid permissions' do
-      let!(:pipeline_schedule) { create(:ci_pipeline_schedule, project: project, owner: master) }
+      let!(:pipeline_schedule) { create(:ci_pipeline_schedule, project: project, owner: maintainer) }
 
       it 'does not delete pipeline_schedule' do
         delete api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}", developer)
@@ -415,7 +415,7 @@ def active?(str)
   end
 
   describe 'DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key' do
-    let(:master) { create(:user) }
+    let(:maintainer) { create(:user) }
 
     set(:pipeline_schedule) do
       create(:ci_pipeline_schedule, project: project, owner: developer)
@@ -426,13 +426,13 @@ def active?(str)
     end
 
     before do
-      project.add_master(master)
+      project.add_maintainer(maintainer)
     end
 
     context 'authenticated user with valid permissions' do
       it 'deletes pipeline_schedule_variable' do
         expect do
-          delete api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}/variables/#{pipeline_schedule_variable.key}", master)
+          delete api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}/variables/#{pipeline_schedule_variable.key}", maintainer)
         end.to change { Ci::PipelineScheduleVariable.count }.by(-1)
 
         expect(response).to have_gitlab_http_status(:accepted)
@@ -440,14 +440,14 @@ def active?(str)
       end
 
       it 'responds with 404 Not Found if requesting non-existing pipeline_schedule_variable' do
-        delete api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}/variables/____", master)
+        delete api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}/variables/____", maintainer)
 
         expect(response).to have_gitlab_http_status(:not_found)
       end
     end
 
     context 'authenticated user with invalid permissions' do
-      let!(:pipeline_schedule) { create(:ci_pipeline_schedule, project: project, owner: master) }
+      let!(:pipeline_schedule) { create(:ci_pipeline_schedule, project: project, owner: maintainer) }
 
       it 'does not delete pipeline_schedule_variable' do
         delete api("/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}/variables/#{pipeline_schedule_variable.key}", developer)
diff --git a/spec/requests/api/pipelines_spec.rb b/spec/requests/api/pipelines_spec.rb
index 78ea77cb3bbd3ea6de3c2013d4c2619fa3baac1a..e2ca27f5d41cca0df473306df965e6ad7e79e8e6 100644
--- a/spec/requests/api/pipelines_spec.rb
+++ b/spec/requests/api/pipelines_spec.rb
@@ -11,7 +11,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET /projects/:id/pipelines ' do
diff --git a/spec/requests/api/project_export_spec.rb b/spec/requests/api/project_export_spec.rb
index a4615bd081f5fa12a6c81b9155fb023f1b600db6..45e4e35d773fca8f9b833adda5cd8eef68d8f9c8 100644
--- a/spec/requests/api/project_export_spec.rb
+++ b/spec/requests/api/project_export_spec.rb
@@ -109,13 +109,13 @@
         it_behaves_like 'get project export status ok'
       end
 
-      context 'when user is a master' do
+      context 'when user is a maintainer' do
         before do
-          project.add_master(user)
-          project_none.add_master(user)
-          project_started.add_master(user)
-          project_finished.add_master(user)
-          project_after_export.add_master(user)
+          project.add_maintainer(user)
+          project_none.add_maintainer(user)
+          project_started.add_maintainer(user)
+          project_finished.add_maintainer(user)
+          project_after_export.add_maintainer(user)
         end
 
         it_behaves_like 'get project export status ok'
@@ -228,13 +228,13 @@
         it_behaves_like 'get project download by strategy'
       end
 
-      context 'when user is a master' do
+      context 'when user is a maintainer' do
         before do
-          project.add_master(user)
-          project_none.add_master(user)
-          project_started.add_master(user)
-          project_finished.add_master(user)
-          project_after_export.add_master(user)
+          project.add_maintainer(user)
+          project_none.add_maintainer(user)
+          project_started.add_maintainer(user)
+          project_finished.add_maintainer(user)
+          project_after_export.add_maintainer(user)
         end
 
         it_behaves_like 'get project download by strategy'
@@ -274,7 +274,7 @@
         stub_uploads_object_storage(ImportExportUploader)
 
         [project, project_finished, project_after_export].each do |p|
-          p.add_master(user)
+          p.add_maintainer(user)
 
           upload = ImportExportUpload.new(project: p)
           upload.export_file = fixture_file_upload('spec/fixtures/project_export.tar.gz', "`/tar.gz")
@@ -338,13 +338,13 @@
         it_behaves_like 'post project export start'
       end
 
-      context 'when user is a master' do
+      context 'when user is a maintainer' do
         before do
-          project.add_master(user)
-          project_none.add_master(user)
-          project_started.add_master(user)
-          project_finished.add_master(user)
-          project_after_export.add_master(user)
+          project.add_maintainer(user)
+          project_none.add_maintainer(user)
+          project_started.add_maintainer(user)
+          project_finished.add_maintainer(user)
+          project_after_export.add_maintainer(user)
         end
 
         it_behaves_like 'post project export start'
diff --git a/spec/requests/api/project_hooks_spec.rb b/spec/requests/api/project_hooks_spec.rb
index 12a183fed1ef0d80a21e3895cab5e4b7536aad60..bc45a63d9f1573738f6cbe38e259e2a2deaebc86 100644
--- a/spec/requests/api/project_hooks_spec.rb
+++ b/spec/requests/api/project_hooks_spec.rb
@@ -13,7 +13,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user3)
   end
 
@@ -214,7 +214,7 @@
     it "returns a 404 if a user attempts to delete project hooks he/she does not own" do
       test_user = create(:user)
       other_project = create(:project)
-      other_project.add_master(test_user)
+      other_project.add_maintainer(test_user)
 
       delete api("/projects/#{other_project.id}/hooks/#{hook.id}", test_user)
       expect(response).to have_gitlab_http_status(404)
diff --git a/spec/requests/api/project_import_spec.rb b/spec/requests/api/project_import_spec.rb
index 24b7835abf509b12e794cea99965bfad25e7feb8..41243854ebc06dd1b860d42e5984b39b67e6b8f6 100644
--- a/spec/requests/api/project_import_spec.rb
+++ b/spec/requests/api/project_import_spec.rb
@@ -146,7 +146,7 @@ def stub_import(namespace)
   describe 'GET /projects/:id/import' do
     it 'returns the import status' do
       project = create(:project, :import_started)
-      project.add_master(user)
+      project.add_maintainer(user)
 
       get api("/projects/#{project.id}/import", user)
 
@@ -156,7 +156,7 @@ def stub_import(namespace)
 
     it 'returns the import status and the error if failed' do
       project = create(:project, :import_failed)
-      project.add_master(user)
+      project.add_maintainer(user)
       project.import_state.update(last_error: 'error')
 
       get api("/projects/#{project.id}/import", user)
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 15da81b57dbcdae22d149e388083b9865494c906..8389cb7cf9cb6ae910ca9c97a39b1598c546ba70 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -40,7 +40,7 @@
     create(:project_member,
     user: user4,
     project: project3,
-    access_level: ProjectMember::MASTER)
+    access_level: ProjectMember::MAINTAINER)
   end
   let(:project4) do
     create(:project,
@@ -353,7 +353,7 @@
             create(:project_member,
                    user: user,
                    project: project5,
-                   access_level: ProjectMember::MASTER)
+                   access_level: ProjectMember::MAINTAINER)
           end
 
           it 'returns only projects that satisfy all query parameters' do
@@ -961,7 +961,7 @@
       describe 'permissions' do
         context 'all projects' do
           before do
-            project.add_master(user)
+            project.add_maintainer(user)
           end
 
           it 'contains permission information' do
@@ -969,19 +969,19 @@
 
             expect(response).to have_gitlab_http_status(200)
             expect(json_response.first['permissions']['project_access']['access_level'])
-            .to eq(Gitlab::Access::MASTER)
+            .to eq(Gitlab::Access::MAINTAINER)
             expect(json_response.first['permissions']['group_access']).to be_nil
           end
         end
 
         context 'personal project' do
           it 'sets project access and returns 200' do
-            project.add_master(user)
+            project.add_maintainer(user)
             get api("/projects/#{project.id}", user)
 
             expect(response).to have_gitlab_http_status(200)
             expect(json_response['permissions']['project_access']['access_level'])
-            .to eq(Gitlab::Access::MASTER)
+            .to eq(Gitlab::Access::MAINTAINER)
             expect(json_response['permissions']['group_access']).to be_nil
           end
         end
@@ -1542,7 +1542,7 @@
       end
     end
 
-    context 'when authenticated as project master' do
+    context 'when authenticated as project maintainer' do
       it 'updates path' do
         project_param = { path: 'bar' }
         put api("/projects/#{project3.id}", user4), project_param
diff --git a/spec/requests/api/protected_branches_spec.rb b/spec/requests/api/protected_branches_spec.rb
index 576fde4661593ca9763441069fd2183641825158..69a601d7b40cb93d7b17e4b91c05bd1be092af6d 100644
--- a/spec/requests/api/protected_branches_spec.rb
+++ b/spec/requests/api/protected_branches_spec.rb
@@ -26,9 +26,9 @@
       end
     end
 
-    context 'when authenticated as a master' do
+    context 'when authenticated as a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like 'protected branches'
@@ -54,8 +54,8 @@
 
         expect(response).to have_gitlab_http_status(200)
         expect(json_response['name']).to eq(branch_name)
-        expect(json_response['push_access_levels'][0]['access_level']).to eq(::Gitlab::Access::MASTER)
-        expect(json_response['merge_access_levels'][0]['access_level']).to eq(::Gitlab::Access::MASTER)
+        expect(json_response['push_access_levels'][0]['access_level']).to eq(::Gitlab::Access::MAINTAINER)
+        expect(json_response['merge_access_levels'][0]['access_level']).to eq(::Gitlab::Access::MAINTAINER)
       end
 
       context 'when protected branch does not exist' do
@@ -68,9 +68,9 @@
       end
     end
 
-    context 'when authenticated as a master' do
+    context 'when authenticated as a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it_behaves_like 'protected branch'
@@ -108,9 +108,9 @@ def expect_protection_to_be_successful
       expect(json_response['name']).to eq(branch_name)
     end
 
-    context 'when authenticated as a master' do
+    context 'when authenticated as a maintainer' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it 'protects a single branch' do
@@ -118,8 +118,8 @@ def expect_protection_to_be_successful
 
         expect(response).to have_gitlab_http_status(201)
         expect(json_response['name']).to eq(branch_name)
-        expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::MASTER)
-        expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::MASTER)
+        expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::MAINTAINER)
+        expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::MAINTAINER)
       end
 
       it 'protects a single branch and developers can push' do
@@ -128,7 +128,7 @@ def expect_protection_to_be_successful
         expect(response).to have_gitlab_http_status(201)
         expect(json_response['name']).to eq(branch_name)
         expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::DEVELOPER)
-        expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::MASTER)
+        expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::MAINTAINER)
       end
 
       it 'protects a single branch and developers can merge' do
@@ -136,7 +136,7 @@ def expect_protection_to_be_successful
 
         expect(response).to have_gitlab_http_status(201)
         expect(json_response['name']).to eq(branch_name)
-        expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::MASTER)
+        expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::MAINTAINER)
         expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::DEVELOPER)
       end
 
@@ -155,7 +155,7 @@ def expect_protection_to_be_successful
         expect(response).to have_gitlab_http_status(201)
         expect(json_response['name']).to eq(branch_name)
         expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::NO_ACCESS)
-        expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::MASTER)
+        expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::MAINTAINER)
       end
 
       it 'protects a single branch and no one can merge' do
@@ -163,7 +163,7 @@ def expect_protection_to_be_successful
 
         expect(response).to have_gitlab_http_status(201)
         expect(json_response['name']).to eq(branch_name)
-        expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::MASTER)
+        expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::MAINTAINER)
         expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::NO_ACCESS)
       end
 
@@ -189,8 +189,8 @@ def expect_protection_to_be_successful
           post post_endpoint, name: branch_name
 
           expect_protection_to_be_successful
-          expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::MASTER)
-          expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::MASTER)
+          expect(json_response['push_access_levels'][0]['access_level']).to eq(Gitlab::Access::MAINTAINER)
+          expect(json_response['merge_access_levels'][0]['access_level']).to eq(Gitlab::Access::MAINTAINER)
         end
       end
 
@@ -225,7 +225,7 @@ def expect_protection_to_be_successful
     let(:delete_endpoint) { api("/projects/#{project.id}/protected_branches/#{branch_name}", user) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it "unprotects a single branch" do
diff --git a/spec/requests/api/repositories_spec.rb b/spec/requests/api/repositories_spec.rb
index 28f8564ae92f86799480fade9ab195cdb86a1920..6063afc213d0c929e3cd2edd379f7310868735a3 100644
--- a/spec/requests/api/repositories_spec.rb
+++ b/spec/requests/api/repositories_spec.rb
@@ -8,7 +8,7 @@
   let(:user) { create(:user) }
   let(:guest) { create(:user).tap { |u| create(:project_member, :guest, user: u, project: project) } }
   let!(:project) { create(:project, :repository, creator: user) }
-  let!(:master) { create(:project_member, :master, user: user, project: project) }
+  let!(:maintainer) { create(:project_member, :maintainer, user: user, project: project) }
 
   describe "GET /projects/:id/repository/tree" do
     let(:route) { "/projects/#{project.id}/repository/tree" }
diff --git a/spec/requests/api/runners_spec.rb b/spec/requests/api/runners_spec.rb
index eb57c734e9280f473909f547681b87725ad1ce51..3ebdb54f71fe09d829a8f064188490d792537825 100644
--- a/spec/requests/api/runners_spec.rb
+++ b/spec/requests/api/runners_spec.rb
@@ -18,8 +18,8 @@
 
   before do
     # Set project access for users
-    create(:project_member, :master, user: user, project: project)
-    create(:project_member, :master, user: user, project: project2)
+    create(:project_member, :maintainer, user: user, project: project)
+    create(:project_member, :maintainer, user: user, project: project2)
     create(:project_member, :reporter, user: user2, project: project)
   end
 
@@ -576,7 +576,7 @@ def update_runner(id, user, args)
   end
 
   describe 'GET /projects/:id/runners' do
-    context 'authorized user with master privileges' do
+    context 'authorized user with maintainer privileges' do
       it "returns project's runners" do
         get api("/projects/#{project.id}/runners", user)
 
@@ -589,7 +589,7 @@ def update_runner(id, user, args)
       end
     end
 
-    context 'authorized user without master privileges' do
+    context 'authorized user without maintainer privileges' do
       it "does not return project's runners" do
         get api("/projects/#{project.id}/runners", user2)
 
diff --git a/spec/requests/api/tags_spec.rb b/spec/requests/api/tags_spec.rb
index 8df08dd1818284d51472ac5d7115f33f2511b6be..98f995df06fe8c968251f54a29729a3a92cdc4e9 100644
--- a/spec/requests/api/tags_spec.rb
+++ b/spec/requests/api/tags_spec.rb
@@ -10,7 +10,7 @@
   let(:current_user) { nil }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'GET /projects/:id/repository/tags' do
@@ -86,7 +86,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'repository tags'
@@ -168,7 +168,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'repository tag'
@@ -222,7 +222,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       context "when a protected branch doesn't already exist" do
@@ -341,7 +341,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'repository delete tag'
@@ -386,7 +386,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'repository new release'
@@ -452,7 +452,7 @@
       end
     end
 
-    context 'when authenticated', 'as a master' do
+    context 'when authenticated', 'as a maintainer' do
       let(:current_user) { user }
 
       it_behaves_like 'repository update release'
diff --git a/spec/requests/api/triggers_spec.rb b/spec/requests/api/triggers_spec.rb
index b2c56f7af2ce5c36c64274df7ea3583b502f5e2a..0ae6796d1e4a3f4003837cd80ff904702d8029a6 100644
--- a/spec/requests/api/triggers_spec.rb
+++ b/spec/requests/api/triggers_spec.rb
@@ -6,7 +6,7 @@
   let!(:trigger_token) { 'secure_token' }
   let!(:trigger_token_2) { 'secure_token_2' }
   let!(:project) { create(:project, :repository, creator: user) }
-  let!(:master) { create(:project_member, :master, user: user, project: project) }
+  let!(:maintainer) { create(:project_member, :maintainer, user: user, project: project) }
   let!(:developer) { create(:project_member, :developer, user: user2, project: project) }
   let!(:trigger) { create(:ci_trigger, project: project, token: trigger_token, owner: user) }
   let!(:trigger2) { create(:ci_trigger, project: project, token: trigger_token_2, owner: user2) }
diff --git a/spec/requests/api/variables_spec.rb b/spec/requests/api/variables_spec.rb
index 62215ea3d7dadfeb8d821ddef60ce706b38d1941..be333df1d78b7adc2d7b93cc287ac8d57adb3ef6 100644
--- a/spec/requests/api/variables_spec.rb
+++ b/spec/requests/api/variables_spec.rb
@@ -4,7 +4,7 @@
   let(:user) { create(:user) }
   let(:user2) { create(:user) }
   let!(:project) { create(:project, creator_id: user.id) }
-  let!(:master) { create(:project_member, :master, user: user, project: project) }
+  let!(:maintainer) { create(:project_member, :maintainer, user: user, project: project) }
   let!(:developer) { create(:project_member, :developer, user: user2, project: project) }
   let!(:variable) { create(:ci_variable, project: project) }
 
diff --git a/spec/requests/api/wikis_spec.rb b/spec/requests/api/wikis_spec.rb
index 850ba696098898b045a3319738fd6cd7cf17986d..489cb001b82d5d82d80ca360d417b88e3439e461 100644
--- a/spec/requests/api/wikis_spec.rb
+++ b/spec/requests/api/wikis_spec.rb
@@ -7,7 +7,7 @@
 # Every state is tested for 3 user roles:
 # - guest
 # - developer
-# - master
+# - maintainer
 # because they are 3 edge cases of using wiki pages.
 
 describe API::Wikis do
@@ -163,9 +163,9 @@
         include_examples '403 Forbidden'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           get api(url, user)
         end
@@ -193,9 +193,9 @@
         include_examples 'returns list of wiki pages'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         include_examples 'returns list of wiki pages'
@@ -221,9 +221,9 @@
         include_examples 'returns list of wiki pages'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         include_examples 'returns list of wiki pages'
@@ -256,9 +256,9 @@
         include_examples '403 Forbidden'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           get api(url, user)
         end
@@ -293,9 +293,9 @@
         end
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           get api(url, user)
         end
@@ -337,9 +337,9 @@
         end
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           get api(url, user)
         end
@@ -379,9 +379,9 @@
         include_examples '403 Forbidden'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
           post(api(url, user), payload)
         end
 
@@ -408,9 +408,9 @@
         include_examples 'creates wiki page'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         include_examples 'creates wiki page'
@@ -436,9 +436,9 @@
         include_examples 'creates wiki page'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         include_examples 'creates wiki page'
@@ -472,9 +472,9 @@
         include_examples '403 Forbidden'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           put(api(url, user), payload)
         end
@@ -510,9 +510,9 @@
         end
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           put(api(url, user), payload)
         end
@@ -554,9 +554,9 @@
         end
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           put(api(url, user), payload)
         end
@@ -607,9 +607,9 @@
         include_examples '403 Forbidden'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           delete(api(url, user))
         end
@@ -639,9 +639,9 @@
         include_examples '403 Forbidden'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           delete(api(url, user))
         end
@@ -671,9 +671,9 @@
         include_examples '403 Forbidden'
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
 
           delete(api(url, user))
         end
diff --git a/spec/requests/git_http_spec.rb b/spec/requests/git_http_spec.rb
index 92fcfb652696eaad0b9e73aa53176b594eb5a473..b030d9862c6d9aa8fa3c0c3525459a67ab2fffb7 100644
--- a/spec/requests/git_http_spec.rb
+++ b/spec/requests/git_http_spec.rb
@@ -312,7 +312,7 @@
               let(:project) { fork_project(canonical_project, nil, repository: true) }
 
               before do
-                canonical_project.add_master(user)
+                canonical_project.add_maintainer(user)
                 create(:merge_request,
                        source_project: project,
                        target_project:  canonical_project,
@@ -398,13 +398,13 @@
 
             context "when the user has access to the project" do
               before do
-                project.add_master(user)
+                project.add_maintainer(user)
               end
 
               context "when the user is blocked" do
                 it "rejects pulls with 401 Unauthorized" do
                   user.block
-                  project.add_master(user)
+                  project.add_maintainer(user)
 
                   download(path, env) do |response|
                     expect(response).to have_gitlab_http_status(:unauthorized)
@@ -467,7 +467,7 @@
                 let(:path) { "#{project.full_path}.git" }
 
                 before do
-                  project.add_master(user)
+                  project.add_maintainer(user)
                 end
 
                 context 'when username and password are provided' do
@@ -827,7 +827,7 @@ def attempt_login(include_password)
 
         context 'and the user is on the team' do
           before do
-            project.add_master(user)
+            project.add_maintainer(user)
           end
 
           it "responds with status 200" do
@@ -850,7 +850,7 @@ def attempt_login(include_password)
     let(:env) { { user: user.username, password: user.password } }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       enforce_terms
     end
 
diff --git a/spec/requests/lfs_http_spec.rb b/spec/requests/lfs_http_spec.rb
index 4d30b99262eab441c04a0b78d6ddda2b1ce7d895..de39abdb746d26fb0fb8dc7749825c358a6925ef 100644
--- a/spec/requests/lfs_http_spec.rb
+++ b/spec/requests/lfs_http_spec.rb
@@ -63,7 +63,7 @@
 
     context 'with LFS disabled globally' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         allow(Gitlab.config.lfs).to receive(:enabled).and_return(false)
       end
 
@@ -106,7 +106,7 @@
 
     context 'with LFS enabled globally' do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         enable_lfs
       end
 
@@ -236,7 +236,7 @@
 
           context 'and does have project access' do
             let(:update_permissions) do
-              project.add_master(user)
+              project.add_maintainer(user)
               project.lfs_objects << lfs_object
             end
 
@@ -293,7 +293,7 @@
 
           context 'when user allowed' do
             let(:update_permissions) do
-              project.add_master(user)
+              project.add_maintainer(user)
               project.lfs_objects << lfs_object
             end
 
@@ -829,7 +829,7 @@
       context 'when user is not authenticated' do
         context 'when user has push access' do
           let(:update_user_permissions) do
-            project.add_master(user)
+            project.add_maintainer(user)
           end
 
           it 'responds with status 401' do
@@ -874,7 +874,7 @@
 
     before do
       allow(Gitlab::Database).to receive(:read_only?) { true }
-      project.add_master(user)
+      project.add_maintainer(user)
       enable_lfs
     end
 
@@ -1307,7 +1307,7 @@
         let(:authorization) { authorize_user }
 
         before do
-          second_project.add_master(user)
+          second_project.add_maintainer(user)
           upstream_project.lfs_objects << lfs_object
         end
 
diff --git a/spec/requests/lfs_locks_api_spec.rb b/spec/requests/lfs_locks_api_spec.rb
index e44a11a72324031315052c2db08b3e74128c23ea..a44b43a591f512bc1e7d1382db5cd673b4a74d83 100644
--- a/spec/requests/lfs_locks_api_spec.rb
+++ b/spec/requests/lfs_locks_api_spec.rb
@@ -4,7 +4,7 @@
   include WorkhorseHelpers
 
   let(:project)   { create(:project) }
-  let(:master)    { create(:user) }
+  let(:maintainer) { create(:user) }
   let(:developer) { create(:user) }
   let(:guest)     { create(:user) }
   let(:path)      { 'README.md' }
@@ -29,7 +29,7 @@
   before do
     allow(Gitlab.config.lfs).to receive(:enabled).and_return(true)
 
-    project.add_developer(master)
+    project.add_developer(maintainer)
     project.add_developer(developer)
     project.add_guest(guest)
   end
@@ -99,7 +99,7 @@
     include_examples 'unauthorized request'
 
     it 'returns the list of locked files grouped by owner' do
-      lock_file('README.md', master)
+      lock_file('README.md', maintainer)
       lock_file('README', developer)
 
       post_lfs_json url, nil, headers
diff --git a/spec/serializers/deploy_key_entity_spec.rb b/spec/serializers/deploy_key_entity_spec.rb
index 2bd8162d1b755bbdd94c00621ab839246388f7f8..01264cf7fb51f0576351839e5c87f4b7e9cd8810 100644
--- a/spec/serializers/deploy_key_entity_spec.rb
+++ b/spec/serializers/deploy_key_entity_spec.rb
@@ -44,9 +44,9 @@
     it { expect(entity.as_json).to eq(expected_result) }
   end
 
-  describe 'returns can_edit true if user is a master of project' do
+  describe 'returns can_edit true if user is a maintainer of project' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it { expect(entity.as_json).to include(can_edit: true) }
diff --git a/spec/serializers/group_child_entity_spec.rb b/spec/serializers/group_child_entity_spec.rb
index 505a9eaac5a72625b47c5c16989703007c6882f7..dbc40bddc3007cf81515bb650d28be79ee8e9829 100644
--- a/spec/serializers/group_child_entity_spec.rb
+++ b/spec/serializers/group_child_entity_spec.rb
@@ -42,7 +42,7 @@
     end
 
     before do
-      object.add_master(user)
+      object.add_maintainer(user)
     end
 
     it 'has the correct type' do
diff --git a/spec/services/auth/container_registry_authentication_service_spec.rb b/spec/services/auth/container_registry_authentication_service_spec.rb
index fce73e0ac1fc12013a3966b02a699522bbb12217..037484931b889d1f8b2a7aa3f35ec6199b5586d3 100644
--- a/spec/services/auth/container_registry_authentication_service_spec.rb
+++ b/spec/services/auth/container_registry_authentication_service_spec.rb
@@ -348,7 +348,7 @@
     end
   end
 
-  context 'delete authorized as master' do
+  context 'delete authorized as maintainer' do
     let(:current_project) { create(:project) }
     let(:current_user) { create(:user) }
 
@@ -357,7 +357,7 @@
     end
 
     before do
-      current_project.add_master(current_user)
+      current_project.add_maintainer(current_user)
     end
 
     it_behaves_like 'a valid token'
diff --git a/spec/services/ci/create_pipeline_service_spec.rb b/spec/services/ci/create_pipeline_service_spec.rb
index 2b88fcc9a961db622339c38cd3ffc811501a3201..054b7b1561c8fac5c2684290fb891a1922b9aa9b 100644
--- a/spec/services/ci/create_pipeline_service_spec.rb
+++ b/spec/services/ci/create_pipeline_service_spec.rb
@@ -462,11 +462,11 @@ def previous_commit_sha_from_ref(ref)
         end
       end
 
-      context 'when user is master' do
+      context 'when user is maintainer' do
         let(:pipeline) { execute_service }
 
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it 'creates a protected pipeline' do
@@ -503,13 +503,13 @@ def previous_commit_sha_from_ref(ref)
         end
       end
 
-      context 'when trigger belongs to a master' do
+      context 'when trigger belongs to a maintainer' do
         let(:user) { create(:user) }
         let(:trigger) { create(:ci_trigger, owner: user) }
         let(:trigger_request) { create(:ci_trigger_request, trigger: trigger) }
 
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it 'creates a pipeline' do
diff --git a/spec/services/ci/retry_pipeline_service_spec.rb b/spec/services/ci/retry_pipeline_service_spec.rb
index 688d3b8c03808201b31bf65e6de0dfc57fe673d2..55445e7153980fe6952a4219761399328cefc5cb 100644
--- a/spec/services/ci/retry_pipeline_service_spec.rb
+++ b/spec/services/ci/retry_pipeline_service_spec.rb
@@ -237,7 +237,7 @@
   context 'when user is not allowed to trigger manual action' do
     before do
       project.add_developer(user)
-      create(:protected_branch, :masters_can_push,
+      create(:protected_branch, :maintainers_can_push,
              name: pipeline.ref, project: project)
     end
 
@@ -275,7 +275,7 @@
     let(:pipeline) { create(:ci_pipeline, project: forked_project, ref: 'fixes') }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       create(:merge_request,
         source_project: forked_project,
         target_project: project,
diff --git a/spec/services/ci/stop_environments_service_spec.rb b/spec/services/ci/stop_environments_service_spec.rb
index 3fc4e499b0c0652df52d5cf52ccde31531262965..cdd3d851f61e30dd2f1ed4069e3da5a0f20b37dd 100644
--- a/spec/services/ci/stop_environments_service_spec.rb
+++ b/spec/services/ci/stop_environments_service_spec.rb
@@ -86,7 +86,7 @@
 
       context 'when user has permission to stop environments' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it 'does not stop environment' do
diff --git a/spec/services/discussions/resolve_service_spec.rb b/spec/services/discussions/resolve_service_spec.rb
index 3895a0b3aea9e61dbb6d17edef5f58c641c1eb07..4e0d474923968a25b5b5d749066e0a4e0094c98a 100644
--- a/spec/services/discussions/resolve_service_spec.rb
+++ b/spec/services/discussions/resolve_service_spec.rb
@@ -9,7 +9,7 @@
     let(:service) { described_class.new(discussion.noteable.project, user, merge_request: merge_request) }
 
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it "doesn't resolve discussions the user can't resolve" do
diff --git a/spec/services/files/create_service_spec.rb b/spec/services/files/create_service_spec.rb
index abe99b9e794cdb6c4180c3420060f64d23e8dfbc..30d94e4318db0c27c47b6c2e5dfef0191e5e30ff 100644
--- a/spec/services/files/create_service_spec.rb
+++ b/spec/services/files/create_service_spec.rb
@@ -23,7 +23,7 @@
   subject { described_class.new(project, user, commit_params) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe "#execute" do
diff --git a/spec/services/files/delete_service_spec.rb b/spec/services/files/delete_service_spec.rb
index ace5f293097fe8b539f5fc4eed6626caf9216aa5..73566afe8c8bd885578f96bf1b52b3e4cca8e43f 100644
--- a/spec/services/files/delete_service_spec.rb
+++ b/spec/services/files/delete_service_spec.rb
@@ -37,7 +37,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe "#execute" do
diff --git a/spec/services/files/multi_service_spec.rb b/spec/services/files/multi_service_spec.rb
index 59984c10990225fa495466956d4eb2f938b52447..3bdedaf3770a1619ec18baeea4362c931cf0ff21 100644
--- a/spec/services/files/multi_service_spec.rb
+++ b/spec/services/files/multi_service_spec.rb
@@ -38,7 +38,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe '#execute' do
diff --git a/spec/services/files/update_service_spec.rb b/spec/services/files/update_service_spec.rb
index eaee89fb1a5b1488fba00c91f86937c651dd1eba..e01fe487ffa540952b70edae89d08181b1cdbb14 100644
--- a/spec/services/files/update_service_spec.rb
+++ b/spec/services/files/update_service_spec.rb
@@ -24,7 +24,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe "#execute" do
diff --git a/spec/services/git_push_service_spec.rb b/spec/services/git_push_service_spec.rb
index 35826de5814b6c024fb966af9b089002539aa925..3f62e7e61e1d14da91f4be9bd91388edcfffed72 100644
--- a/spec/services/git_push_service_spec.rb
+++ b/spec/services/git_push_service_spec.rb
@@ -11,7 +11,7 @@
   let(:ref)      { 'refs/heads/master' }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe 'with remote mirrors' do
@@ -267,8 +267,8 @@
         expect(project.default_branch).to eq("master")
         execute_service(project, user, blankrev, 'newrev', ref)
         expect(project.protected_branches).not_to be_empty
-        expect(project.protected_branches.first.push_access_levels.map(&:access_level)).to eq([Gitlab::Access::MASTER])
-        expect(project.protected_branches.first.merge_access_levels.map(&:access_level)).to eq([Gitlab::Access::MASTER])
+        expect(project.protected_branches.first.push_access_levels.map(&:access_level)).to eq([Gitlab::Access::MAINTAINER])
+        expect(project.protected_branches.first.merge_access_levels.map(&:access_level)).to eq([Gitlab::Access::MAINTAINER])
       end
 
       it "when pushing a branch for the first time with default branch protection disabled" do
@@ -290,7 +290,7 @@
 
         expect(project.protected_branches).not_to be_empty
         expect(project.protected_branches.last.push_access_levels.map(&:access_level)).to eq([Gitlab::Access::DEVELOPER])
-        expect(project.protected_branches.last.merge_access_levels.map(&:access_level)).to eq([Gitlab::Access::MASTER])
+        expect(project.protected_branches.last.merge_access_levels.map(&:access_level)).to eq([Gitlab::Access::MAINTAINER])
       end
 
       it "when pushing a branch for the first time with an existing branch permission configured" do
@@ -315,7 +315,7 @@
         expect(project.default_branch).to eq("master")
         execute_service(project, user, blankrev, 'newrev', ref)
         expect(project.protected_branches).not_to be_empty
-        expect(project.protected_branches.first.push_access_levels.map(&:access_level)).to eq([Gitlab::Access::MASTER])
+        expect(project.protected_branches.first.push_access_levels.map(&:access_level)).to eq([Gitlab::Access::MAINTAINER])
         expect(project.protected_branches.first.merge_access_levels.map(&:access_level)).to eq([Gitlab::Access::DEVELOPER])
       end
 
@@ -442,7 +442,7 @@
       allow_any_instance_of(ProcessCommitWorker).to receive(:build_commit)
         .and_return(closing_commit)
 
-      project.add_master(commit_author)
+      project.add_maintainer(commit_author)
     end
 
     context "to default branches" do
diff --git a/spec/services/groups/update_service_spec.rb b/spec/services/groups/update_service_spec.rb
index 1737fd0a9fc3c0b715c95c663e3ec72c59cd42ce..48d689e11d46f538ff7117f2af50c8a97b74382a 100644
--- a/spec/services/groups/update_service_spec.rb
+++ b/spec/services/groups/update_service_spec.rb
@@ -12,7 +12,7 @@
         let!(:service) { described_class.new(public_group, user, visibility_level: Gitlab::VisibilityLevel::INTERNAL) }
 
         before do
-          public_group.add_user(user, Gitlab::Access::MASTER)
+          public_group.add_user(user, Gitlab::Access::MAINTAINER)
           create(:project, :public, group: public_group)
         end
 
@@ -26,7 +26,7 @@
         let!(:service) { described_class.new(internal_group, user, visibility_level: Gitlab::VisibilityLevel::PRIVATE) }
 
         before do
-          internal_group.add_user(user, Gitlab::Access::MASTER)
+          internal_group.add_user(user, Gitlab::Access::MAINTAINER)
           create(:project, :internal, group: internal_group)
         end
 
@@ -55,7 +55,7 @@
   context "unauthorized visibility_level validation" do
     let!(:service) { described_class.new(internal_group, user, visibility_level: 99) }
     before do
-      internal_group.add_user(user, Gitlab::Access::MASTER)
+      internal_group.add_user(user, Gitlab::Access::MAINTAINER)
     end
 
     it "does not change permission level" do
@@ -68,7 +68,7 @@
     let!(:service) { described_class.new(internal_group, user, path: SecureRandom.hex) }
 
     before do
-      internal_group.add_user(user, Gitlab::Access::MASTER)
+      internal_group.add_user(user, Gitlab::Access::MAINTAINER)
       create(:project, :internal, group: internal_group)
     end
 
diff --git a/spec/services/issues/close_service_spec.rb b/spec/services/issues/close_service_spec.rb
index 7ae49c0689689bb989f9117310e8f2f63e53b839..5e38d0aeb6adc2f7a2741c7bbf29ec56c30568b5 100644
--- a/spec/services/issues/close_service_spec.rb
+++ b/spec/services/issues/close_service_spec.rb
@@ -9,7 +9,7 @@
   let!(:todo) { create(:todo, :assigned, user: user, project: project, target: issue, author: user2) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user2)
     project.add_guest(guest)
   end
diff --git a/spec/services/issues/create_service_spec.rb b/spec/services/issues/create_service_spec.rb
index 79bcdc41fb06b9e4c198382384d83fe790964961..c61c1ddcb3d54eba38d35038ed13b65538435252 100644
--- a/spec/services/issues/create_service_spec.rb
+++ b/spec/services/issues/create_service_spec.rb
@@ -13,8 +13,8 @@
       let(:labels) { create_pair(:label, project: project) }
 
       before do
-        project.add_master(user)
-        project.add_master(assignee)
+        project.add_maintainer(user)
+        project.add_maintainer(assignee)
       end
 
       let(:opts) do
@@ -130,7 +130,7 @@
         end
 
         it 'invalidates open issues counter for assignees when issue is assigned' do
-          project.add_master(assignee)
+          project.add_maintainer(assignee)
 
           described_class.new(project, user, opts).execute
 
@@ -160,7 +160,7 @@
     context 'issue create service' do
       context 'assignees' do
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it 'removes assignee when user id is invalid' do
@@ -180,7 +180,7 @@
         end
 
         it 'saves assignee when user id is valid' do
-          project.add_master(assignee)
+          project.add_maintainer(assignee)
           opts = { title: 'Title', description: 'Description', assignee_ids: [assignee.id] }
 
           issue = described_class.new(project, user, opts).execute
@@ -224,8 +224,8 @@
         end
 
         before do
-          project.add_master(user)
-          project.add_master(assignee)
+          project.add_maintainer(user)
+          project.add_maintainer(assignee)
         end
 
         it 'assigns and sets milestone to issuable from command' do
@@ -242,7 +242,7 @@
       let(:project) { merge_request.source_project }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       describe 'for a single discussion' do
diff --git a/spec/services/issues/reopen_service_spec.rb b/spec/services/issues/reopen_service_spec.rb
index 42e5d544f4cf879f9b5299155eff2884eef68d46..3b617d4ca54f8b98a9f0e6e7a3676d653737d333 100644
--- a/spec/services/issues/reopen_service_spec.rb
+++ b/spec/services/issues/reopen_service_spec.rb
@@ -24,7 +24,7 @@
       let(:user) { create(:user) }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it 'invalidates counter cache for assignees' do
diff --git a/spec/services/issues/update_service_spec.rb b/spec/services/issues/update_service_spec.rb
index 4cbf1a52e2940a3916bbeaecb8700d46f4b7ddb5..fa98d05c61b83351693f1199380099d69559490b 100644
--- a/spec/services/issues/update_service_spec.rb
+++ b/spec/services/issues/update_service_spec.rb
@@ -18,7 +18,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user2)
     project.add_developer(user3)
   end
@@ -596,7 +596,7 @@ def update_issue(opts)
 
       context 'valid project' do
         before do
-          target_project.add_master(user)
+          target_project.add_maintainer(user)
         end
 
         it 'calls the move service with the proper issue and project' do
diff --git a/spec/services/lfs/unlock_file_service_spec.rb b/spec/services/lfs/unlock_file_service_spec.rb
index 948401d7bdc66daa1ae1bc79fee6db4d8ce10ae8..539417644dbbcf9a4ab5cd2e45710a24940632b6 100644
--- a/spec/services/lfs/unlock_file_service_spec.rb
+++ b/spec/services/lfs/unlock_file_service_spec.rb
@@ -62,11 +62,11 @@
 
       context 'when forced' do
         let(:developer) { create(:user) }
-        let(:master)    { create(:user) }
+        let(:maintainer)    { create(:user) }
 
         before do
           project.add_developer(developer)
-          project.add_master(master)
+          project.add_maintainer(maintainer)
         end
 
         context 'by a regular user' do
@@ -86,7 +86,7 @@
         end
 
         context 'by a maintainer user' do
-          let(:current_user) { master }
+          let(:current_user) { maintainer }
           let(:params) do
             { id: lock.id,
               force: true }
diff --git a/spec/services/members/approve_access_request_service_spec.rb b/spec/services/members/approve_access_request_service_spec.rb
index 7076571b7533791dada507af95df587d73a0063b..5c30f5b6a61901db0ebfecfe6159cee2f5d995bc 100644
--- a/spec/services/members/approve_access_request_service_spec.rb
+++ b/spec/services/members/approve_access_request_service_spec.rb
@@ -34,9 +34,9 @@
 
     context 'with a custom access level' do
       it 'returns a ProjectMember with the custom access level' do
-        member = described_class.new(current_user, access_level: Gitlab::Access::MASTER).execute(access_requester, opts)
+        member = described_class.new(current_user, access_level: Gitlab::Access::MAINTAINER).execute(access_requester, opts)
 
-        expect(member.access_level).to eq(Gitlab::Access::MASTER)
+        expect(member.access_level).to eq(Gitlab::Access::MAINTAINER)
       end
     end
   end
@@ -97,7 +97,7 @@
 
     context 'when current user can approve access request to the project' do
       before do
-        project.add_master(current_user)
+        project.add_maintainer(current_user)
         group.add_owner(current_user)
       end
 
diff --git a/spec/services/members/create_service_spec.rb b/spec/services/members/create_service_spec.rb
index 1831c62d78877e73a4a7235a5989d497eb35aed7..5c01463d757f95dfc6da2e79f3b3f274b1fbdb43 100644
--- a/spec/services/members/create_service_spec.rb
+++ b/spec/services/members/create_service_spec.rb
@@ -6,7 +6,7 @@
   let(:project_user) { create(:user) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   it 'adds user to members' do
diff --git a/spec/services/members/destroy_service_spec.rb b/spec/services/members/destroy_service_spec.rb
index b4e9f6af43a108ecefa6f970e984da2f66135aad..ef47b0a450b0180fc2db7bfe492ffd73cd23a069 100644
--- a/spec/services/members/destroy_service_spec.rb
+++ b/spec/services/members/destroy_service_spec.rb
@@ -114,7 +114,7 @@
 
     context 'when current user can destroy the given member' do
       before do
-        group_project.add_master(current_user)
+        group_project.add_maintainer(current_user)
         group.add_owner(current_user)
       end
 
@@ -170,7 +170,7 @@
 
     context 'when current user can destroy the given access requester' do
       before do
-        group_project.add_master(current_user)
+        group_project.add_maintainer(current_user)
         group.add_owner(current_user)
       end
 
@@ -210,7 +210,7 @@
 
     context 'when current user can destroy the given invited user' do
       before do
-        group_project.add_master(current_user)
+        group_project.add_maintainer(current_user)
         group.add_owner(current_user)
       end
 
diff --git a/spec/services/members/update_service_spec.rb b/spec/services/members/update_service_spec.rb
index a451272dd1ff08d0bf3528edd320e49aa5060be6..6d19a95ffeb97993f94713eaa6864e2e8fd18f91 100644
--- a/spec/services/members/update_service_spec.rb
+++ b/spec/services/members/update_service_spec.rb
@@ -8,7 +8,7 @@
   let(:permission) { :update }
   let(:member) { source.members_and_requesters.find_by!(user_id: member_user.id) }
   let(:params) do
-    { access_level: Gitlab::Access::MASTER }
+    { access_level: Gitlab::Access::MAINTAINER }
   end
 
   shared_examples 'a service raising Gitlab::Access::AccessDeniedError' do
@@ -23,7 +23,7 @@
       updated_member = described_class.new(current_user, params).execute(member, permission: permission)
 
       expect(updated_member).to be_valid
-      expect(updated_member.access_level).to eq(Gitlab::Access::MASTER)
+      expect(updated_member.access_level).to eq(Gitlab::Access::MAINTAINER)
     end
   end
 
@@ -44,7 +44,7 @@
 
   context 'when current user can update the given member' do
     before do
-      project.add_master(current_user)
+      project.add_maintainer(current_user)
       group.add_owner(current_user)
     end
 
diff --git a/spec/services/merge_requests/close_service_spec.rb b/spec/services/merge_requests/close_service_spec.rb
index 216e0cd42661f3440ad70f9ed5f18fc0cec7d701..433ffbd97f015845ddb286fac6908f095e27ec56 100644
--- a/spec/services/merge_requests/close_service_spec.rb
+++ b/spec/services/merge_requests/close_service_spec.rb
@@ -9,7 +9,7 @@
   let!(:todo) { create(:todo, :assigned, user: user, project: project, target: merge_request, author: user2) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user2)
     project.add_guest(guest)
   end
diff --git a/spec/services/merge_requests/create_service_spec.rb b/spec/services/merge_requests/create_service_spec.rb
index 736a50b2c15e4c3285c76a9ba82869f621770d43..06fb61baf33f29b862e61dedfe8c7c7060db61fe 100644
--- a/spec/services/merge_requests/create_service_spec.rb
+++ b/spec/services/merge_requests/create_service_spec.rb
@@ -23,7 +23,7 @@
       let(:merge_request) { service.execute }
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         project.add_developer(assignee)
         allow(service).to receive(:execute_hooks)
       end
@@ -185,8 +185,8 @@
         end
 
         before do
-          project.add_master(user)
-          project.add_master(assignee)
+          project.add_maintainer(user)
+          project.add_maintainer(assignee)
         end
 
         it 'assigns and sets milestone to issuable from command' do
@@ -202,7 +202,7 @@
         let(:assignee) { create(:user) }
 
         before do
-          project.add_master(user)
+          project.add_maintainer(user)
         end
 
         it 'removes assignee_id when user id is invalid' do
@@ -222,7 +222,7 @@
         end
 
         it 'saves assignee when user id is valid' do
-          project.add_master(assignee)
+          project.add_maintainer(assignee)
           opts = { title: 'Title', description: 'Description', assignee_id: assignee.id }
 
           merge_request = described_class.new(project, user, opts).execute
@@ -242,7 +242,7 @@
           end
 
           it 'invalidates open merge request counter for assignees when merge request is assigned' do
-            project.add_master(assignee)
+            project.add_maintainer(assignee)
 
             described_class.new(project, user, opts).execute
 
@@ -286,7 +286,7 @@
       end
 
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
         project.add_developer(assignee)
       end
 
@@ -316,7 +316,7 @@
       context 'when user can not access source project' do
         before do
           target_project.add_developer(assignee)
-          target_project.add_master(user)
+          target_project.add_maintainer(user)
         end
 
         it 'raises an error' do
@@ -328,7 +328,7 @@
       context 'when user can not access target project' do
         before do
           target_project.add_developer(assignee)
-          target_project.add_master(user)
+          target_project.add_maintainer(user)
         end
 
         it 'raises an error' do
@@ -372,7 +372,7 @@
 
       before do
         project.add_developer(assignee)
-        project.add_master(user)
+        project.add_maintainer(user)
       end
 
       it 'ignores source_project_id' do
diff --git a/spec/services/merge_requests/ff_merge_service_spec.rb b/spec/services/merge_requests/ff_merge_service_spec.rb
index 28f56d196575d6e2759ffaaf3c693c6ec04e2d6d..fe673de46aa0491c50ba3fcfcf7f657d64026936 100644
--- a/spec/services/merge_requests/ff_merge_service_spec.rb
+++ b/spec/services/merge_requests/ff_merge_service_spec.rb
@@ -13,7 +13,7 @@
   let(:project) { merge_request.project }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user2)
   end
 
diff --git a/spec/services/merge_requests/merge_service_spec.rb b/spec/services/merge_requests/merge_service_spec.rb
index 33eea2cf5c308b39ae54e1f5ba38ff798b9ca825..9dd235f66600a96d9a3a04958e2840d5bf1bfeb6 100644
--- a/spec/services/merge_requests/merge_service_spec.rb
+++ b/spec/services/merge_requests/merge_service_spec.rb
@@ -7,7 +7,7 @@
   let(:project) { merge_request.project }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user2)
   end
 
diff --git a/spec/services/merge_requests/post_merge_service_spec.rb b/spec/services/merge_requests/post_merge_service_spec.rb
index 46e4e3559dcdc3eddf8b70436ad2781858faa39d..ba2b062875bb76d28c05c277fe6bbcfb8ecd9d43 100644
--- a/spec/services/merge_requests/post_merge_service_spec.rb
+++ b/spec/services/merge_requests/post_merge_service_spec.rb
@@ -6,7 +6,7 @@
   let(:project) { merge_request.project }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe '#execute' do
diff --git a/spec/services/merge_requests/rebase_service_spec.rb b/spec/services/merge_requests/rebase_service_spec.rb
index 4daa25f8cf2c0f1a5f7e31252f206a2da92298bc..2703da7ae442a194948e16a836b4e6f2cf80984e 100644
--- a/spec/services/merge_requests/rebase_service_spec.rb
+++ b/spec/services/merge_requests/rebase_service_spec.rb
@@ -15,7 +15,7 @@
   subject(:service) { described_class.new(project, user, {}) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe '#execute' do
diff --git a/spec/services/merge_requests/reopen_service_spec.rb b/spec/services/merge_requests/reopen_service_spec.rb
index 9ee37c51d95bae83c7021ebcb910d9d4b6508697..e10eaa95da4877c362cc191064d158b09331a8d3 100644
--- a/spec/services/merge_requests/reopen_service_spec.rb
+++ b/spec/services/merge_requests/reopen_service_spec.rb
@@ -8,7 +8,7 @@
   let(:project) { merge_request.project }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user2)
     project.add_guest(guest)
   end
diff --git a/spec/services/merge_requests/update_service_spec.rb b/spec/services/merge_requests/update_service_spec.rb
index 443dcd92a8b2e31ea36cdb84d8483ff0b04fe714..f0029af83ccb61844edd40b5c1a2247cabd6910b 100644
--- a/spec/services/merge_requests/update_service_spec.rb
+++ b/spec/services/merge_requests/update_service_spec.rb
@@ -19,7 +19,7 @@
   end
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user2)
     project.add_developer(user3)
   end
diff --git a/spec/services/milestones/close_service_spec.rb b/spec/services/milestones/close_service_spec.rb
index adad73f7e1141126656089400d24e47bfc5f8f51..3f7a544ea0a04e070fa14ad62a59163cb8cbc144 100644
--- a/spec/services/milestones/close_service_spec.rb
+++ b/spec/services/milestones/close_service_spec.rb
@@ -6,7 +6,7 @@
   let(:milestone) { create(:milestone, title: "Milestone v1.2", project: project) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   describe '#execute' do
diff --git a/spec/services/milestones/create_service_spec.rb b/spec/services/milestones/create_service_spec.rb
index f2a18c7295a5d2db4608583534e40fb67e69b3cb..0c91112026fc385b127eeb0d9ea1ba6f42f9fb03 100644
--- a/spec/services/milestones/create_service_spec.rb
+++ b/spec/services/milestones/create_service_spec.rb
@@ -7,7 +7,7 @@
   describe '#execute' do
     context "valid params" do
       before do
-        project.add_master(user)
+        project.add_maintainer(user)
 
         opts = {
           title: 'v2.1.9',
diff --git a/spec/services/milestones/destroy_service_spec.rb b/spec/services/milestones/destroy_service_spec.rb
index 9703780b0e994ef6c09f2a751154b795a66d95c6..6f3612501f4f07572b947c224fb90e3d9aee59a4 100644
--- a/spec/services/milestones/destroy_service_spec.rb
+++ b/spec/services/milestones/destroy_service_spec.rb
@@ -8,7 +8,7 @@
   let!(:merge_request) { create(:merge_request, source_project: project, milestone: milestone) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
   end
 
   def service
diff --git a/spec/services/milestones/promote_service_spec.rb b/spec/services/milestones/promote_service_spec.rb
index a0a2843b676f72c16de2f1e02299b1bdd8d3982e..df212d912e9d81749fa959e99092792401455f60 100644
--- a/spec/services/milestones/promote_service_spec.rb
+++ b/spec/services/milestones/promote_service_spec.rb
@@ -10,7 +10,7 @@
 
   describe '#execute' do
     before do
-      group.add_master(user)
+      group.add_maintainer(user)
     end
 
     context 'validations' do
diff --git a/spec/services/notes/create_service_spec.rb b/spec/services/notes/create_service_spec.rb
index 2b2b983494f2c72a958d7ce9263493544ce0df51..0fd37c95e429380a7018c7fbbae778cf659d8294 100644
--- a/spec/services/notes/create_service_spec.rb
+++ b/spec/services/notes/create_service_spec.rb
@@ -10,7 +10,7 @@
 
   describe '#execute' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context "valid params" do
diff --git a/spec/services/notes/post_process_service_spec.rb b/spec/services/notes/post_process_service_spec.rb
index 4e2ab919f0fc2fc2f59198aad9a9a325fd38fd64..5aae0d711c3f6d61124cdaf5465c852e22c91275 100644
--- a/spec/services/notes/post_process_service_spec.rb
+++ b/spec/services/notes/post_process_service_spec.rb
@@ -7,7 +7,7 @@
 
   describe '#execute' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
       note_opts = {
         note: 'Awesome comment',
         noteable_type: 'Issue',
diff --git a/spec/services/notes/quick_actions_service_spec.rb b/spec/services/notes/quick_actions_service_spec.rb
index b1e218821d2005d2ef0a30ce2dabe09ac02bdb76..784dac5545441d2b631d4d754e46daabb372c043 100644
--- a/spec/services/notes/quick_actions_service_spec.rb
+++ b/spec/services/notes/quick_actions_service_spec.rb
@@ -3,11 +3,11 @@
 describe Notes::QuickActionsService do
   shared_context 'note on noteable' do
     let(:project) { create(:project) }
-    let(:master) { create(:user).tap { |u| project.add_master(u) } }
+    let(:maintainer) { create(:user).tap { |u| project.add_maintainer(u) } }
     let(:assignee) { create(:user) }
 
     before do
-      project.add_master(assignee)
+      project.add_maintainer(assignee)
     end
   end
 
@@ -184,7 +184,7 @@
     include_context 'note on noteable'
 
     it 'delegates to the class method' do
-      service = described_class.new(project, master)
+      service = described_class.new(project, maintainer)
       note = create(:note_on_issue, project: project)
 
       expect(described_class).to receive(:supported?).with(note)
@@ -194,7 +194,7 @@
   end
 
   describe '#execute' do
-    let(:service) { described_class.new(project, master) }
+    let(:service) { described_class.new(project, maintainer) }
 
     it_behaves_like 'note on noteable that supports quick actions' do
       let(:note) { build(:note_on_issue, project: project) }
@@ -212,19 +212,19 @@
   context 'CE restriction for issue assignees' do
     describe '/assign' do
       let(:project) { create(:project) }
-      let(:master) { create(:user).tap { |u| project.add_master(u) } }
+      let(:maintainer) { create(:user).tap { |u| project.add_maintainer(u) } }
       let(:assignee) { create(:user) }
-      let(:master) { create(:user) }
-      let(:service) { described_class.new(project, master) }
+      let(:maintainer) { create(:user) }
+      let(:service) { described_class.new(project, maintainer) }
       let(:note) { create(:note_on_issue, note: note_text, project: project) }
 
       let(:note_text) do
-        %(/assign @#{assignee.username} @#{master.username}\n")
+        %(/assign @#{assignee.username} @#{maintainer.username}\n")
       end
 
       before do
-        project.add_master(master)
-        project.add_master(assignee)
+        project.add_maintainer(maintainer)
+        project.add_maintainer(assignee)
       end
 
       it 'adds only one assignee from the list' do
diff --git a/spec/services/notes/update_service_spec.rb b/spec/services/notes/update_service_spec.rb
index 65b1d61399826e0cc94c3659fae980c33eb400bb..533dcdcd6cd0430332ad97a922117c3159f913fa 100644
--- a/spec/services/notes/update_service_spec.rb
+++ b/spec/services/notes/update_service_spec.rb
@@ -9,7 +9,7 @@
   let(:note) { create(:note, project: project, noteable: issue, author: user, note: "Old note #{user2.to_reference}") }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     project.add_developer(user2)
     project.add_developer(user3)
   end
diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb
index ab91176737d987c536534bd5ba94587f33de19a5..c442f6fe32ff90b0c52d199ef80316093675cd60 100644
--- a/spec/services/notification_service_spec.rb
+++ b/spec/services/notification_service_spec.rb
@@ -172,9 +172,9 @@
 
       before do
         build_team(note.project)
-        project.add_master(issue.author)
-        project.add_master(assignee)
-        project.add_master(note.author)
+        project.add_maintainer(issue.author)
+        project.add_maintainer(assignee)
+        project.add_maintainer(note.author)
 
         @u_custom_off = create_user_with_notification(:custom, 'custom_off')
         project.add_guest(@u_custom_off)
@@ -255,8 +255,8 @@
       describe 'new note on issue in project that belongs to a group' do
         before do
           note.project.namespace_id = group.id
-          group.add_user(@u_watcher, GroupMember::MASTER)
-          group.add_user(@u_custom_global, GroupMember::MASTER)
+          group.add_user(@u_watcher, GroupMember::MAINTAINER)
+          group.add_user(@u_custom_global, GroupMember::MAINTAINER)
           note.project.save
 
           @u_watcher.notification_settings_for(note.project).participating!
@@ -373,7 +373,7 @@
       before do
         build_team(note.project)
         build_group(note.project)
-        note.project.add_master(note.author)
+        note.project.add_maintainer(note.author)
         add_users_with_subscription(note.project, issue)
         reset_delivered_emails!
       end
@@ -436,7 +436,7 @@
         project.add_guest(@u_guest_watcher)
         project.add_guest(@u_guest_custom)
         add_member_for_parent_group(@pg_watcher, project)
-        note.project.add_master(note.author)
+        note.project.add_maintainer(note.author)
         reset_delivered_emails!
       end
 
@@ -577,8 +577,8 @@
 
       before do
         build_team(note.project)
-        project.add_master(merge_request.author)
-        project.add_master(merge_request.assignee)
+        project.add_maintainer(merge_request.author)
+        project.add_maintainer(merge_request.assignee)
       end
 
       describe '#new_note' do
@@ -1088,8 +1088,8 @@
     let(:merge_request) { create :merge_request, source_project: project, assignee: create(:user), description: 'cc @participant' }
 
     before do
-      project.add_master(merge_request.author)
-      project.add_master(merge_request.assignee)
+      project.add_maintainer(merge_request.author)
+      project.add_maintainer(merge_request.assignee)
       build_team(merge_request.target_project)
       add_users_with_subscription(merge_request.target_project, merge_request)
       update_custom_notification(:new_merge_request, @u_guest_custom, resource: project)
@@ -1529,13 +1529,13 @@
     let(:added_user) { create(:user) }
 
     describe '#new_access_request' do
-      let(:master) { create(:user) }
+      let(:maintainer) { create(:user) }
       let(:owner) { create(:user) }
       let(:developer) { create(:user) }
       let!(:group) do
         create(:group, :public, :access_requestable) do |group|
           group.add_owner(owner)
-          group.add_master(master)
+          group.add_maintainer(maintainer)
           group.add_developer(developer)
         end
       end
@@ -1544,11 +1544,11 @@
         reset_delivered_emails!
       end
 
-      it 'sends notification to group owners_and_masters' do
+      it 'sends notification to group owners_and_maintainers' do
         group.request_access(added_user)
 
         should_email(owner)
-        should_email(master)
+        should_email(maintainer)
         should_not_email(developer)
       end
     end
@@ -1601,11 +1601,11 @@
       context 'for a project in a user namespace' do
         let(:project) do
           create(:project, :public, :access_requestable) do |project|
-            project.add_master(project.owner)
+            project.add_maintainer(project.owner)
           end
         end
 
-        it 'sends notification to project owners_and_masters' do
+        it 'sends notification to project owners_and_maintainers' do
           project.request_access(added_user)
 
           should_only_email(project.owner)
@@ -1621,7 +1621,7 @@
           reset_delivered_emails!
         end
 
-        it 'sends notification to group owners_and_masters' do
+        it 'sends notification to group owners_and_maintainers' do
           project.request_access(added_user)
 
           should_only_email(group_owner)
@@ -1759,11 +1759,11 @@ def create_pipeline(user, status)
       end
 
       before do
-        project.add_master(u_member)
-        project.add_master(u_watcher)
-        project.add_master(u_custom_notification_unset)
-        project.add_master(u_custom_notification_enabled)
-        project.add_master(u_custom_notification_disabled)
+        project.add_maintainer(u_member)
+        project.add_maintainer(u_watcher)
+        project.add_maintainer(u_custom_notification_unset)
+        project.add_maintainer(u_custom_notification_enabled)
+        project.add_maintainer(u_custom_notification_disabled)
 
         reset_delivered_emails!
       end
@@ -1903,15 +1903,15 @@ def create_pipeline(user, status)
     set(:u_blocked) { create(:user, :blocked) }
     set(:u_silence) { create_user_with_notification(:disabled, 'silent', project) }
     set(:u_owner)   { project.owner }
-    set(:u_master1) { create(:user) }
-    set(:u_master2) { create(:user) }
+    set(:u_maintainer1) { create(:user) }
+    set(:u_maintainer2) { create(:user) }
     set(:u_developer) { create(:user) }
 
     before do
-      project.add_master(u_blocked)
-      project.add_master(u_silence)
-      project.add_master(u_master1)
-      project.add_master(u_master2)
+      project.add_maintainer(u_blocked)
+      project.add_maintainer(u_silence)
+      project.add_maintainer(u_maintainer1)
+      project.add_maintainer(u_maintainer2)
       project.add_developer(u_developer)
 
       reset_delivered_emails!
@@ -1926,12 +1926,12 @@ def create_pipeline(user, status)
       describe "##{sym}" do
         subject(:notify!) { notification.send(sym, domain) }
 
-        it 'emails current watching masters' do
+        it 'emails current watching maintainers' do
           expect(Notify).to receive(:"#{sym}_email").at_least(:once).and_call_original
 
           notify!
 
-          should_only_email(u_master1, u_master2, u_owner)
+          should_only_email(u_maintainer1, u_maintainer2, u_owner)
         end
 
         it 'emails nobody if the project is missing' do
@@ -1945,26 +1945,26 @@ def create_pipeline(user, status)
     end
 
     describe '#pages_domain_verification_failed' do
-      it 'emails current watching masters' do
+      it 'emails current watching maintainers' do
         notification.pages_domain_verification_failed(domain)
 
-        should_only_email(u_master1, u_master2, u_owner)
+        should_only_email(u_maintainer1, u_maintainer2, u_owner)
       end
     end
 
     describe '#pages_domain_enabled' do
-      it 'emails current watching masters' do
+      it 'emails current watching maintainers' do
         notification.pages_domain_enabled(domain)
 
-        should_only_email(u_master1, u_master2, u_owner)
+        should_only_email(u_maintainer1, u_maintainer2, u_owner)
       end
     end
 
     describe '#pages_domain_disabled' do
-      it 'emails current watching masters' do
+      it 'emails current watching maintainers' do
         notification.pages_domain_disabled(domain)
 
-        should_only_email(u_master1, u_master2, u_owner)
+        should_only_email(u_maintainer1, u_maintainer2, u_owner)
       end
     end
   end
@@ -1988,15 +1988,15 @@ def build_team(project)
     @u_guest_watcher = create_user_with_notification(:watch, 'guest_watching')
     @u_guest_custom = create_user_with_notification(:custom, 'guest_custom')
 
-    project.add_master(@u_watcher)
-    project.add_master(@u_participating)
-    project.add_master(@u_participant_mentioned)
-    project.add_master(@u_disabled)
-    project.add_master(@u_mentioned)
-    project.add_master(@u_committer)
-    project.add_master(@u_not_mentioned)
-    project.add_master(@u_lazy_participant)
-    project.add_master(@u_custom_global)
+    project.add_maintainer(@u_watcher)
+    project.add_maintainer(@u_participating)
+    project.add_maintainer(@u_participant_mentioned)
+    project.add_maintainer(@u_disabled)
+    project.add_maintainer(@u_mentioned)
+    project.add_maintainer(@u_committer)
+    project.add_maintainer(@u_not_mentioned)
+    project.add_maintainer(@u_lazy_participant)
+    project.add_maintainer(@u_custom_global)
   end
 
   # Users in the project's group but not part of project's team
@@ -2011,7 +2011,7 @@ def build_group(project)
 
     # Group member: global=watch, group=global
     @g_global_watcher ||= create_global_setting_for(create(:user), :watch)
-    group.add_users([@g_watcher, @g_global_watcher], :master)
+    group.add_users([@g_watcher, @g_global_watcher], :maintainer)
 
     group
   end
@@ -2050,7 +2050,7 @@ def add_member_for_parent_group(user, project)
 
     project.reload
 
-    project.group.parent.add_master(user)
+    project.group.parent.add_maintainer(user)
   end
 
   def should_email_nested_group_user(user, times: 1, recipients: email_recipients)
@@ -2072,11 +2072,11 @@ def add_users_with_subscription(project, issuable)
     @subscribed_participant = create_global_setting_for(create(:user, username: 'subscribed_participant'), :participating)
     @watcher_and_subscriber = create_global_setting_for(create(:user), :watch)
 
-    project.add_master(@subscribed_participant)
-    project.add_master(@subscriber)
-    project.add_master(@unsubscriber)
-    project.add_master(@watcher_and_subscriber)
-    project.add_master(@unsubscribed_mentioned)
+    project.add_maintainer(@subscribed_participant)
+    project.add_maintainer(@subscriber)
+    project.add_maintainer(@unsubscriber)
+    project.add_maintainer(@watcher_and_subscriber)
+    project.add_maintainer(@unsubscribed_mentioned)
 
     issuable.subscriptions.create(user: @unsubscribed_mentioned, project: project, subscribed: false)
     issuable.subscriptions.create(user: @subscriber, project: project, subscribed: true)
diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb
index 4e4329e898ef79820a59b4d4898c07d10f028442..fd69fe04053341ea23d3320a711d8ed4a8037f78 100644
--- a/spec/services/projects/create_service_spec.rb
+++ b/spec/services/projects/create_service_spec.rb
@@ -23,7 +23,7 @@
 
       expect(project).to be_valid
       expect(project.owner).to eq(user)
-      expect(project.team.masters).to include(user)
+      expect(project.team.maintainers).to include(user)
       expect(project.namespace).to eq(user.namespace)
     end
   end
@@ -47,7 +47,7 @@
 
       expect(project).to be_persisted
       expect(project.owner).to eq(user)
-      expect(project.team.masters).to contain_exactly(user)
+      expect(project.team.maintainers).to contain_exactly(user)
       expect(project.namespace).to eq(user.namespace)
     end
   end
diff --git a/spec/services/projects/move_access_service_spec.rb b/spec/services/projects/move_access_service_spec.rb
index a820ebd91f48eb5c32019d0a6ee6373290ea29d6..88d9d93c33b55d6c78474e0d0db2956a22387053 100644
--- a/spec/services/projects/move_access_service_spec.rb
+++ b/spec/services/projects/move_access_service_spec.rb
@@ -4,18 +4,18 @@
   let(:user) { create(:user) }
   let(:group) { create(:group) }
   let(:project_with_access) { create(:project, namespace: user.namespace) }
-  let(:master_user) { create(:user) }
+  let(:maintainer_user) { create(:user) }
   let(:reporter_user) { create(:user) }
   let(:developer_user) { create(:user) }
-  let(:master_group) { create(:group) }
+  let(:maintainer_group) { create(:group) }
   let(:reporter_group) { create(:group) }
   let(:developer_group) { create(:group) }
 
   before do
-    project_with_access.add_master(master_user)
+    project_with_access.add_maintainer(maintainer_user)
     project_with_access.add_developer(developer_user)
     project_with_access.add_reporter(reporter_user)
-    project_with_access.project_group_links.create(group: master_group, group_access: Gitlab::Access::MASTER)
+    project_with_access.project_group_links.create(group: maintainer_group, group_access: Gitlab::Access::MAINTAINER)
     project_with_access.project_group_links.create(group: developer_group, group_access: Gitlab::Access::DEVELOPER)
     project_with_access.project_group_links.create(group: reporter_group, group_access: Gitlab::Access::REPORTER)
   end
@@ -87,7 +87,7 @@
       let(:options) { { remove_remaining_elements: false } }
 
       it 'does not remove remaining memberships' do
-        target_project.add_master(master_user)
+        target_project.add_maintainer(maintainer_user)
 
         subject.execute(project_with_access, options)
 
@@ -95,7 +95,7 @@
       end
 
       it 'does not remove remaining group links' do
-        target_project.project_group_links.create(group: master_group, group_access: Gitlab::Access::MASTER)
+        target_project.project_group_links.create(group: maintainer_group, group_access: Gitlab::Access::MAINTAINER)
 
         subject.execute(project_with_access, options)
 
diff --git a/spec/services/projects/move_project_authorizations_service_spec.rb b/spec/services/projects/move_project_authorizations_service_spec.rb
index f7262b9b88756c7999820ad656faefb717144395..b440839362452a602898d98fea9df83e33042c7d 100644
--- a/spec/services/projects/move_project_authorizations_service_spec.rb
+++ b/spec/services/projects/move_project_authorizations_service_spec.rb
@@ -4,7 +4,7 @@
   let!(:user) { create(:user) }
   let(:project_with_users) { create(:project, namespace: user.namespace) }
   let(:target_project) { create(:project, namespace: user.namespace) }
-  let(:master_user) { create(:user) }
+  let(:maintainer_user) { create(:user) }
   let(:reporter_user) { create(:user) }
   let(:developer_user) { create(:user) }
 
@@ -12,7 +12,7 @@
 
   describe '#execute' do
     before do
-      project_with_users.add_master(master_user)
+      project_with_users.add_maintainer(maintainer_user)
       project_with_users.add_developer(developer_user)
       project_with_users.add_reporter(reporter_user)
     end
@@ -28,7 +28,7 @@
     end
 
     it 'does not move existent authorizations to the current project' do
-      target_project.add_master(developer_user)
+      target_project.add_maintainer(developer_user)
       target_project.add_developer(reporter_user)
 
       expect(project_with_users.authorized_users.count).to eq 4
@@ -44,7 +44,7 @@
       let(:options) { { remove_remaining_elements: false } }
 
       it 'does not remove remaining project authorizations' do
-        target_project.add_master(developer_user)
+        target_project.add_maintainer(developer_user)
         target_project.add_developer(reporter_user)
 
         subject.execute(project_with_users, options)
diff --git a/spec/services/projects/move_project_group_links_service_spec.rb b/spec/services/projects/move_project_group_links_service_spec.rb
index e3d06e6d3d73b8512a04504358c63b9714c6848f..7ca8cf304fe1f466eef95c897a226557e4c53b40 100644
--- a/spec/services/projects/move_project_group_links_service_spec.rb
+++ b/spec/services/projects/move_project_group_links_service_spec.rb
@@ -4,7 +4,7 @@
   let!(:user) { create(:user) }
   let(:project_with_groups) { create(:project, namespace: user.namespace) }
   let(:target_project) { create(:project, namespace: user.namespace) }
-  let(:master_group) { create(:group) }
+  let(:maintainer_group) { create(:group) }
   let(:reporter_group) { create(:group) }
   let(:developer_group) { create(:group) }
 
@@ -12,7 +12,7 @@
 
   describe '#execute' do
     before do
-      project_with_groups.project_group_links.create(group: master_group, group_access: Gitlab::Access::MASTER)
+      project_with_groups.project_group_links.create(group: maintainer_group, group_access: Gitlab::Access::MAINTAINER)
       project_with_groups.project_group_links.create(group: developer_group, group_access: Gitlab::Access::DEVELOPER)
       project_with_groups.project_group_links.create(group: reporter_group, group_access: Gitlab::Access::REPORTER)
     end
@@ -28,7 +28,7 @@
     end
 
     it 'does not move existent group links in the current project' do
-      target_project.project_group_links.create(group: master_group, group_access: Gitlab::Access::MASTER)
+      target_project.project_group_links.create(group: maintainer_group, group_access: Gitlab::Access::MAINTAINER)
       target_project.project_group_links.create(group: developer_group, group_access: Gitlab::Access::DEVELOPER)
 
       expect(project_with_groups.project_group_links.count).to eq 3
@@ -53,7 +53,7 @@
       let(:options) { { remove_remaining_elements: false } }
 
       it 'does not remove remaining project group links' do
-        target_project.project_group_links.create(group: master_group, group_access: Gitlab::Access::MASTER)
+        target_project.project_group_links.create(group: maintainer_group, group_access: Gitlab::Access::MAINTAINER)
         target_project.project_group_links.create(group: developer_group, group_access: Gitlab::Access::DEVELOPER)
 
         subject.execute(project_with_groups, options)
diff --git a/spec/services/projects/move_project_members_service_spec.rb b/spec/services/projects/move_project_members_service_spec.rb
index 9c9a2d2fde1e5cfdb4efa5eb0aa5c01e9cd028dd..c8c0eac1f1356d500f2a191b91ddf63a4786fa00 100644
--- a/spec/services/projects/move_project_members_service_spec.rb
+++ b/spec/services/projects/move_project_members_service_spec.rb
@@ -4,7 +4,7 @@
   let!(:user) { create(:user) }
   let(:project_with_users) { create(:project, namespace: user.namespace) }
   let(:target_project) { create(:project, namespace: user.namespace) }
-  let(:master_user) { create(:user) }
+  let(:maintainer_user) { create(:user) }
   let(:reporter_user) { create(:user) }
   let(:developer_user) { create(:user) }
 
@@ -12,7 +12,7 @@
 
   describe '#execute' do
     before do
-      project_with_users.add_master(master_user)
+      project_with_users.add_maintainer(maintainer_user)
       project_with_users.add_developer(developer_user)
       project_with_users.add_reporter(reporter_user)
     end
@@ -28,7 +28,7 @@
     end
 
     it 'does not move existent members to the current project' do
-      target_project.add_master(developer_user)
+      target_project.add_maintainer(developer_user)
       target_project.add_developer(reporter_user)
 
       expect(project_with_users.project_members.count).to eq 4
@@ -53,7 +53,7 @@
       let(:options) { { remove_remaining_elements: false } }
 
       it 'does not remove remaining project members' do
-        target_project.add_master(developer_user)
+        target_project.add_maintainer(developer_user)
         target_project.add_developer(reporter_user)
 
         subject.execute(project_with_users, options)
diff --git a/spec/services/projects/overwrite_project_service_spec.rb b/spec/services/projects/overwrite_project_service_spec.rb
index 252c61f42245177c7398db6ee179848d6a5d1e1d..c7900629f5f1f4e450d56c2b52d27747c25cef49 100644
--- a/spec/services/projects/overwrite_project_service_spec.rb
+++ b/spec/services/projects/overwrite_project_service_spec.rb
@@ -96,10 +96,10 @@
 
     context 'when project with elements' do
       it_behaves_like 'overwrite actions' do
-        let(:master_user) { create(:user) }
+        let(:maintainer_user) { create(:user) }
         let(:reporter_user) { create(:user) }
         let(:developer_user) { create(:user) }
-        let(:master_group) { create(:group) }
+        let(:maintainer_group) { create(:group) }
         let(:reporter_group) { create(:group) }
         let(:developer_group) { create(:group) }
 
@@ -107,10 +107,10 @@
           create_list(:deploy_keys_project, 2, project: project_from)
           create_list(:notification_setting, 2, source: project_from)
           create_list(:users_star_project, 2, project: project_from)
-          project_from.project_group_links.create(group: master_group, group_access: Gitlab::Access::MASTER)
+          project_from.project_group_links.create(group: maintainer_group, group_access: Gitlab::Access::MAINTAINER)
           project_from.project_group_links.create(group: developer_group, group_access: Gitlab::Access::DEVELOPER)
           project_from.project_group_links.create(group: reporter_group, group_access: Gitlab::Access::REPORTER)
-          project_from.add_master(master_user)
+          project_from.add_maintainer(maintainer_user)
           project_from.add_developer(developer_user)
           project_from.add_reporter(reporter_user)
         end
diff --git a/spec/services/projects/transfer_service_spec.rb b/spec/services/projects/transfer_service_spec.rb
index 5100987c2fec89e57658b014b9ff480df93eb553..7e85f599afb2eadf3f754edefc0dda649a32ae91 100644
--- a/spec/services/projects/transfer_service_spec.rb
+++ b/spec/services/projects/transfer_service_spec.rb
@@ -247,7 +247,7 @@ def transfer_project(project, user, new_namespace)
     let(:group_member) { create(:user) }
 
     before do
-      group.add_user(owner, GroupMember::MASTER)
+      group.add_user(owner, GroupMember::MAINTAINER)
       group.add_user(group_member, GroupMember::DEVELOPER)
     end
 
diff --git a/spec/services/protected_branches/create_service_spec.rb b/spec/services/protected_branches/create_service_spec.rb
index 786493c35779d9c296042e1ecf39c6bfb22c2559..79b744142c633eed56df32bd5c951e29a02a6c36 100644
--- a/spec/services/protected_branches/create_service_spec.rb
+++ b/spec/services/protected_branches/create_service_spec.rb
@@ -6,8 +6,8 @@
   let(:params) do
     {
       name: 'master',
-      merge_access_levels_attributes: [{ access_level: Gitlab::Access::MASTER }],
-      push_access_levels_attributes: [{ access_level: Gitlab::Access::MASTER }]
+      merge_access_levels_attributes: [{ access_level: Gitlab::Access::MAINTAINER }],
+      push_access_levels_attributes: [{ access_level: Gitlab::Access::MAINTAINER }]
     }
   end
 
@@ -16,8 +16,8 @@
 
     it 'creates a new protected branch' do
       expect { service.execute }.to change(ProtectedBranch, :count).by(1)
-      expect(project.protected_branches.last.push_access_levels.map(&:access_level)).to eq([Gitlab::Access::MASTER])
-      expect(project.protected_branches.last.merge_access_levels.map(&:access_level)).to eq([Gitlab::Access::MASTER])
+      expect(project.protected_branches.last.push_access_levels.map(&:access_level)).to eq([Gitlab::Access::MAINTAINER])
+      expect(project.protected_branches.last.merge_access_levels.map(&:access_level)).to eq([Gitlab::Access::MAINTAINER])
     end
 
     context 'when user does not have permission' do
diff --git a/spec/services/protected_tags/create_service_spec.rb b/spec/services/protected_tags/create_service_spec.rb
index c3ed95aaebf70a6829c3deedee978eb0f4f68baa..b16acf1d36c5dd036b9f6a62ffb09180b91ca11b 100644
--- a/spec/services/protected_tags/create_service_spec.rb
+++ b/spec/services/protected_tags/create_service_spec.rb
@@ -6,7 +6,7 @@
   let(:params) do
     {
       name: 'master',
-      create_access_levels_attributes: [{ access_level: Gitlab::Access::MASTER }]
+      create_access_levels_attributes: [{ access_level: Gitlab::Access::MAINTAINER }]
     }
   end
 
@@ -15,7 +15,7 @@
 
     it 'creates a new protected tag' do
       expect { service.execute }.to change(ProtectedTag, :count).by(1)
-      expect(project.protected_tags.last.create_access_levels.map(&:access_level)).to eq([Gitlab::Access::MASTER])
+      expect(project.protected_tags.last.create_access_levels.map(&:access_level)).to eq([Gitlab::Access::MAINTAINER])
     end
   end
 end
diff --git a/spec/services/search/global_service_spec.rb b/spec/services/search/global_service_spec.rb
index d8dba26e1944222a1ab3ebb690288beedcdc4e24..980545b8083fa2c5931dfb57cac037efc79b97ac 100644
--- a/spec/services/search/global_service_spec.rb
+++ b/spec/services/search/global_service_spec.rb
@@ -10,7 +10,7 @@
   let!(:public_project)   { create(:project, :public, name: 'searchable_public_project') }
 
   before do
-    found_project.add_master(user)
+    found_project.add_maintainer(user)
   end
 
   describe '#execute' do
diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb
index 02de83a2df803c28aece16cdfcb9b90fcda9d9e2..e5e036c7d44ec6b4e7237d57dd85f26cb15f50fd 100644
--- a/spec/services/search_service_spec.rb
+++ b/spec/services/search_service_spec.rb
@@ -16,7 +16,7 @@
   let(:public_project) { create(:project, :public, name: 'public_project') }
 
   before do
-    accessible_project.add_master(user)
+    accessible_project.add_maintainer(user)
   end
 
   describe '#project' do
diff --git a/spec/services/users/refresh_authorized_projects_service_spec.rb b/spec/services/users/refresh_authorized_projects_service_spec.rb
index e5fde07a6ebc29dbbf0557b2fdb8e2577bdda893..122b96ef216813467bb2898c2cd78f1e08389558 100644
--- a/spec/services/users/refresh_authorized_projects_service_spec.rb
+++ b/spec/services/users/refresh_authorized_projects_service_spec.rb
@@ -30,10 +30,10 @@
     it 'updates the authorized projects of the user' do
       project2 = create(:project)
       to_remove = user.project_authorizations
-        .create!(project: project2, access_level: Gitlab::Access::MASTER)
+        .create!(project: project2, access_level: Gitlab::Access::MAINTAINER)
 
       expect(service).to receive(:update_authorizations)
-        .with([to_remove.project_id], [[user.id, project.id, Gitlab::Access::MASTER]])
+        .with([to_remove.project_id], [[user.id, project.id, Gitlab::Access::MAINTAINER]])
 
       service.execute_without_lease
     end
@@ -45,7 +45,7 @@
         .create!(project: project, access_level: Gitlab::Access::DEVELOPER)
 
       expect(service).to receive(:update_authorizations)
-        .with([to_remove.project_id], [[user.id, project.id, Gitlab::Access::MASTER]])
+        .with([to_remove.project_id], [[user.id, project.id, Gitlab::Access::MAINTAINER]])
 
       service.execute_without_lease
     end
@@ -76,14 +76,14 @@
     it 'inserts authorizations that should be added' do
       user.project_authorizations.delete_all
 
-      service.update_authorizations([], [[user.id, project.id, Gitlab::Access::MASTER]])
+      service.update_authorizations([], [[user.id, project.id, Gitlab::Access::MAINTAINER]])
 
       authorizations = user.project_authorizations
 
       expect(authorizations.length).to eq(1)
       expect(authorizations[0].user_id).to eq(user.id)
       expect(authorizations[0].project_id).to eq(project.id)
-      expect(authorizations[0].access_level).to eq(Gitlab::Access::MASTER)
+      expect(authorizations[0].access_level).to eq(Gitlab::Access::MAINTAINER)
     end
   end
 
@@ -99,12 +99,12 @@
     end
 
     it 'sets the values to the access levels' do
-      expect(hash.values).to eq([Gitlab::Access::MASTER])
+      expect(hash.values).to eq([Gitlab::Access::MAINTAINER])
     end
 
     context 'personal projects' do
       it 'includes the project with the right access level' do
-        expect(hash[project.id]).to eq(Gitlab::Access::MASTER)
+        expect(hash[project.id]).to eq(Gitlab::Access::MAINTAINER)
       end
     end
 
@@ -139,11 +139,11 @@
       let!(:other_project) { create(:project, group: nested_group) }
 
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       it 'includes the project with the right access level' do
-        expect(hash[other_project.id]).to eq(Gitlab::Access::MASTER)
+        expect(hash[other_project.id]).to eq(Gitlab::Access::MAINTAINER)
       end
     end
 
@@ -153,7 +153,7 @@
       let!(:project_group_link) { create(:project_group_link, project: other_project, group: group, group_access: Gitlab::Access::GUEST) }
 
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       it 'includes the project with the right access level' do
@@ -168,7 +168,7 @@
       let!(:project_group_link) { create(:project_group_link, project: other_project, group: nested_group, group_access: Gitlab::Access::DEVELOPER) }
 
       before do
-        group.add_master(user)
+        group.add_maintainer(user)
       end
 
       it 'includes the project with the right access level' do
@@ -194,7 +194,7 @@
       value = hash.values[0]
 
       expect(value.project_id).to eq(project.id)
-      expect(value.access_level).to eq(Gitlab::Access::MASTER)
+      expect(value.access_level).to eq(Gitlab::Access::MAINTAINER)
     end
   end
 
@@ -219,7 +219,7 @@
       end
 
       it 'includes the access level for every row' do
-        expect(row.access_level).to eq(Gitlab::Access::MASTER)
+        expect(row.access_level).to eq(Gitlab::Access::MAINTAINER)
       end
     end
   end
@@ -235,7 +235,7 @@
       rows = service.fresh_authorizations.to_a
 
       expect(rows.length).to eq(1)
-      expect(rows.first.access_level).to eq(Gitlab::Access::MASTER)
+      expect(rows.first.access_level).to eq(Gitlab::Access::MAINTAINER)
     end
 
     context 'every returned row' do
@@ -246,7 +246,7 @@
       end
 
       it 'includes the access level' do
-        expect(row.access_level).to eq(Gitlab::Access::MASTER)
+        expect(row.access_level).to eq(Gitlab::Access::MAINTAINER)
       end
     end
   end
diff --git a/spec/support/features/issuable_slash_commands_shared_examples.rb b/spec/support/features/issuable_slash_commands_shared_examples.rb
index 1bd6c25100e111b8c0c6f75053cf9e93962100f3..9b44c532ff60b388db5d3412755f05b9a0d6ecb7 100644
--- a/spec/support/features/issuable_slash_commands_shared_examples.rb
+++ b/spec/support/features/issuable_slash_commands_shared_examples.rb
@@ -4,7 +4,7 @@
 shared_examples 'issuable record that supports quick actions in its description and notes' do |issuable_type|
   include Spec::Support::Helpers::Features::NotesHelpers
 
-  let(:master) { create(:user) }
+  let(:maintainer) { create(:user) }
   let(:project) do
     case issuable_type
     when :merge_request
@@ -19,9 +19,9 @@
   let(:new_url_opts) { {} }
 
   before do
-    project.add_master(master)
+    project.add_maintainer(maintainer)
 
-    gitlab_sign_in(master)
+    gitlab_sign_in(maintainer)
   end
 
   after do
@@ -210,31 +210,31 @@
         expect(page).not_to have_content '/todo'
         expect(page).to have_content 'Commands applied'
 
-        todos = TodosFinder.new(master).execute
+        todos = TodosFinder.new(maintainer).execute
         todo = todos.first
 
         expect(todos.size).to eq 1
         expect(todo).to be_pending
         expect(todo.target).to eq issuable
-        expect(todo.author).to eq master
-        expect(todo.user).to eq master
+        expect(todo.author).to eq maintainer
+        expect(todo.user).to eq maintainer
       end
     end
 
     context "with a note marking the #{issuable_type} as done" do
       before do
-        TodoService.new.mark_todo(issuable, master)
+        TodoService.new.mark_todo(issuable, maintainer)
       end
 
       it "creates a new todo for the #{issuable_type}" do
-        todos = TodosFinder.new(master).execute
+        todos = TodosFinder.new(maintainer).execute
         todo = todos.first
 
         expect(todos.size).to eq 1
         expect(todos.first).to be_pending
         expect(todo.target).to eq issuable
-        expect(todo.author).to eq master
-        expect(todo.user).to eq master
+        expect(todo.author).to eq maintainer
+        expect(todo.user).to eq maintainer
 
         add_note("/done")
 
@@ -247,31 +247,31 @@
 
     context "with a note subscribing to the #{issuable_type}" do
       it "creates a new todo for the #{issuable_type}" do
-        expect(issuable.subscribed?(master, project)).to be_falsy
+        expect(issuable.subscribed?(maintainer, project)).to be_falsy
 
         add_note("/subscribe")
 
         expect(page).not_to have_content '/subscribe'
         expect(page).to have_content 'Commands applied'
 
-        expect(issuable.subscribed?(master, project)).to be_truthy
+        expect(issuable.subscribed?(maintainer, project)).to be_truthy
       end
     end
 
     context "with a note unsubscribing to the #{issuable_type} as done" do
       before do
-        issuable.subscribe(master, project)
+        issuable.subscribe(maintainer, project)
       end
 
       it "creates a new todo for the #{issuable_type}" do
-        expect(issuable.subscribed?(master, project)).to be_truthy
+        expect(issuable.subscribed?(maintainer, project)).to be_truthy
 
         add_note("/unsubscribe")
 
         expect(page).not_to have_content '/unsubscribe'
         expect(page).to have_content 'Commands applied'
 
-        expect(issuable.subscribed?(master, project)).to be_falsy
+        expect(issuable.subscribed?(maintainer, project)).to be_falsy
       end
     end
 
@@ -282,7 +282,7 @@
         expect(page).not_to have_content '/assign me'
         expect(page).to have_content 'Commands applied'
 
-        expect(issuable.reload.assignees).to eq [master]
+        expect(issuable.reload.assignees).to eq [maintainer]
       end
     end
   end
diff --git a/spec/support/helpers/markdown_feature.rb b/spec/support/helpers/markdown_feature.rb
index 39e94ad53de67da0123784d422da1b861e825048..346f5b1cc4d73997598be2a43816c7da2810e0fb 100644
--- a/spec/support/helpers/markdown_feature.rb
+++ b/spec/support/helpers/markdown_feature.rb
@@ -24,7 +24,7 @@ def group
 
   def project
     @project ||= create(:project, :repository, group: group).tap do |project|
-      project.add_master(user)
+      project.add_maintainer(user)
     end
   end
 
diff --git a/spec/support/import_export/export_file_helper.rb b/spec/support/import_export/export_file_helper.rb
index 562423afc2a7d1e0ce1e22e17754b4b55f3709a6..4d925ac77f40244bfdf3c87f0ee687d5e3390f44 100644
--- a/spec/support/import_export/export_file_helper.rb
+++ b/spec/support/import_export/export_file_helper.rb
@@ -37,7 +37,7 @@ def setup_project
 
     event = create(:event, :created, target: milestone, project: project, author: user, action: 5)
     create(:push_event_payload, event: event)
-    create(:project_member, :master, user: user, project: project)
+    create(:project_member, :maintainer, user: user, project: project)
     create(:ci_variable, project: project)
     create(:ci_trigger, project: project)
     key = create(:deploy_key)
diff --git a/spec/support/matchers/access_matchers_for_controller.rb b/spec/support/matchers/access_matchers_for_controller.rb
index 42a9ed9ff34a9b407f3fb6120adf40f312a9b681..429401a5da89859cbef510ed09d48ef33b73fede 100644
--- a/spec/support/matchers/access_matchers_for_controller.rb
+++ b/spec/support/matchers/access_matchers_for_controller.rb
@@ -24,7 +24,7 @@ def emulate_user(role, membership = nil)
     when User
       user = role
       sign_in(user)
-    when *Gitlab::Access.sym_options_with_owner.keys # owner, master, developer, reporter, guest
+    when *Gitlab::Access.sym_options_with_owner.keys # owner, maintainer, developer, reporter, guest
       raise ArgumentError, "cannot emulate #{role} without membership parent" unless membership
 
       user = create_user_by_membership(role, membership)
diff --git a/spec/support/services/issuable_create_service_slash_commands_shared_examples.rb b/spec/support/services/issuable_create_service_slash_commands_shared_examples.rb
index 7b0641627262cb62bf8b0a31156d08491bdb70d0..8b4cffaac19dbe5fec48993cedb0b7dc56a557ea 100644
--- a/spec/support/services/issuable_create_service_slash_commands_shared_examples.rb
+++ b/spec/support/services/issuable_create_service_slash_commands_shared_examples.rb
@@ -3,7 +3,7 @@
 
 shared_examples 'new issuable record that supports quick actions' do
   let!(:project) { create(:project, :repository) }
-  let(:user) { create(:user).tap { |u| project.add_master(u) } }
+  let(:user) { create(:user).tap { |u| project.add_maintainer(u) } }
   let(:assignee) { create(:user) }
   let!(:milestone) { create(:milestone, project: project) }
   let!(:labels) { create_list(:label, 3, project: project) }
@@ -12,7 +12,7 @@
   let(:issuable) { described_class.new(project, user, params).execute }
 
   before do
-    project.add_master(assignee)
+    project.add_maintainer(assignee)
   end
 
   context 'with labels in command only' do
diff --git a/spec/support/shared_examples/features/creatable_merge_request_shared_examples.rb b/spec/support/shared_examples/features/creatable_merge_request_shared_examples.rb
index 5a569d233bc65d1e3582771d69b90278cda343ce..7038a366144d25701fc1b6ecd34c773708eb3958 100644
--- a/spec/support/shared_examples/features/creatable_merge_request_shared_examples.rb
+++ b/spec/support/shared_examples/features/creatable_merge_request_shared_examples.rb
@@ -10,9 +10,9 @@
   let!(:label2)      { create(:label, project: target_project) }
 
   before do
-    source_project.add_master(user)
-    target_project.add_master(user)
-    target_project.add_master(user2)
+    source_project.add_maintainer(user)
+    target_project.add_maintainer(user)
+    target_project.add_maintainer(user2)
 
     sign_in(user)
     visit project_new_merge_request_path(
diff --git a/spec/support/shared_examples/features/editable_merge_request_shared_examples.rb b/spec/support/shared_examples/features/editable_merge_request_shared_examples.rb
index 645db41cddcfb356dd668f68089cf94d0c7eea58..3057845061b76b78728bca9a2c4b5bae386ff17e 100644
--- a/spec/support/shared_examples/features/editable_merge_request_shared_examples.rb
+++ b/spec/support/shared_examples/features/editable_merge_request_shared_examples.rb
@@ -15,9 +15,9 @@
   end
 
   before do
-    source_project.add_master(user)
-    target_project.add_master(user)
-    target_project.add_master(user2)
+    source_project.add_maintainer(user)
+    target_project.add_maintainer(user)
+    target_project.add_maintainer(user2)
 
     sign_in(user)
     visit edit_project_merge_request_path(target_project, merge_request)
diff --git a/spec/support/shared_examples/features/master_manages_access_requests_shared_example.rb b/spec/support/shared_examples/features/master_manages_access_requests_shared_example.rb
index b29bb3c2fc06636c0d6881c6fa28c1ed77350183..75ad948e42c20a39226362cd2e32e9e3f3460349 100644
--- a/spec/support/shared_examples/features/master_manages_access_requests_shared_example.rb
+++ b/spec/support/shared_examples/features/master_manages_access_requests_shared_example.rb
@@ -1,20 +1,20 @@
-RSpec.shared_examples 'Master manages access requests' do
+RSpec.shared_examples 'Maintainer manages access requests' do
   let(:user) { create(:user) }
-  let(:master) { create(:user) }
+  let(:maintainer) { create(:user) }
 
   before do
     entity.request_access(user)
-    entity.respond_to?(:add_owner) ? entity.add_owner(master) : entity.add_master(master)
-    sign_in(master)
+    entity.respond_to?(:add_owner) ? entity.add_owner(maintainer) : entity.add_maintainer(maintainer)
+    sign_in(maintainer)
   end
 
-  it 'master can see access requests' do
+  it 'maintainer can see access requests' do
     visit members_page_path
 
     expect_visible_access_request(entity, user)
   end
 
-  it 'master can grant access', :js do
+  it 'maintainer can grant access', :js do
     visit members_page_path
 
     expect_visible_access_request(entity, user)
@@ -28,7 +28,7 @@
     end
   end
 
-  it 'master can deny access', :js do
+  it 'maintainer can deny access', :js do
     visit members_page_path
 
     expect_visible_access_request(entity, user)
diff --git a/spec/support/shared_examples/models/members_notifications_shared_example.rb b/spec/support/shared_examples/models/members_notifications_shared_example.rb
index 76611e5430680ebc47f4f3b547a5df2d0eb2523f..ef5cea3f2a5ca00dfadb0396ea2a43065496705e 100644
--- a/spec/support/shared_examples/models/members_notifications_shared_example.rb
+++ b/spec/support/shared_examples/models/members_notifications_shared_example.rb
@@ -21,7 +21,7 @@
     it "calls NotificationService.update_#{entity_type}_member" do
       expect(notification_service).to receive(:"update_#{entity_type}_member").with(member)
 
-      member.update_attribute(:access_level, Member::MASTER)
+      member.update_attribute(:access_level, Member::MAINTAINER)
     end
 
     it "does not send an email when the access level has not changed" do
diff --git a/spec/views/projects/imports/new.html.haml_spec.rb b/spec/views/projects/imports/new.html.haml_spec.rb
index fc389641fcd68106500feb32ebf163925c3bf9f9..11fe144d1d2c17c2d23885399458be34ac85e71c 100644
--- a/spec/views/projects/imports/new.html.haml_spec.rb
+++ b/spec/views/projects/imports/new.html.haml_spec.rb
@@ -9,7 +9,7 @@
     before do
       project.import_state.update(last_error: '<a href="http://googl.com">Foo</a>')
       sign_in(user)
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     it "escapes HTML in import errors" do
diff --git a/spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb b/spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb
index 6e7d8db99c4d20948e26eb7f320c8f09c1002be9..5d60d6bc5e755074eeb8902e67c0ced2f2d0afd0 100644
--- a/spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb
+++ b/spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb
@@ -2,7 +2,7 @@
 
 describe 'projects/pipeline_schedules/_pipeline_schedule' do
   let(:owner) { create(:user) }
-  let(:master) { create(:user) }
+  let(:maintainer) { create(:user) }
   let(:project) { create(:project) }
   let(:pipeline_schedule) { create(:ci_pipeline_schedule, :nightly, project: project) }
 
@@ -17,10 +17,10 @@
 
   context 'taking ownership of schedule' do
     context 'when non-owner is signed in' do
-      let(:user) { master }
+      let(:user) { maintainer }
 
       before do
-        allow(view).to receive(:can?).with(master, :take_ownership_pipeline_schedule, pipeline_schedule).and_return(true)
+        allow(view).to receive(:can?).with(maintainer, :take_ownership_pipeline_schedule, pipeline_schedule).and_return(true)
       end
 
       it 'non-owner can take ownership of pipeline' do
diff --git a/spec/views/shared/notes/_form.html.haml_spec.rb b/spec/views/shared/notes/_form.html.haml_spec.rb
index 50980718e660bc69865f2642fa1c924092635fb1..c57319869f3e4ac60a9b9628943dc9211c131f9f 100644
--- a/spec/views/shared/notes/_form.html.haml_spec.rb
+++ b/spec/views/shared/notes/_form.html.haml_spec.rb
@@ -7,7 +7,7 @@
   let(:project) { create(:project, :repository) }
 
   before do
-    project.add_master(user)
+    project.add_maintainer(user)
     assign(:project, project)
     assign(:note, note)
 
diff --git a/spec/workers/merge_worker_spec.rb b/spec/workers/merge_worker_spec.rb
index c861a56497e0ceccb13456748cfc891f803e5d7b..b57c275c7702c63446eccea8c9e5b51dadc07c50 100644
--- a/spec/workers/merge_worker_spec.rb
+++ b/spec/workers/merge_worker_spec.rb
@@ -8,7 +8,7 @@
     let!(:author) { merge_request.author }
 
     before do
-      source_project.add_master(author)
+      source_project.add_maintainer(author)
       source_project.repository.expire_branches_cache
     end
 
diff --git a/spec/workers/pipeline_schedule_worker_spec.rb b/spec/workers/pipeline_schedule_worker_spec.rb
index e7a4ac0f3d61b5631015a4f2db8ed59231d307a3..a2fe4734d47606a9d3322e6a0d1a23a96de027f3 100644
--- a/spec/workers/pipeline_schedule_worker_spec.rb
+++ b/spec/workers/pipeline_schedule_worker_spec.rb
@@ -18,7 +18,7 @@
 
   context 'when the schedule is runnable by the user' do
     before do
-      project.add_master(user)
+      project.add_maintainer(user)
     end
 
     context 'when there is a scheduled pipeline within next_run_at' do