From a63bce1a4b55bc6cbafb9dec12d33028521489e9 Mon Sep 17 00:00:00 2001
From: Mark Chao <mchao@gitlab.com>
Date: Wed, 11 Jul 2018 14:36:08 +0000
Subject: [PATCH] Resolve "Rename the `Master` role to `Maintainer`" Backend

---
 app/models/concerns/protected_ref_access.rb   |   7 +-
 .../select_for_project_authorization.rb       |   7 +-
 app/models/group.rb                           |  14 ++-
 app/models/member.rb                          |   6 +-
 app/models/members/project_member.rb          |   6 +-
 app/models/project.rb                         |   7 +-
 app/models/project_group_link.rb              |   3 +-
 app/models/project_team.rb                    |  21 +++-
 app/models/user.rb                            |  22 ++--
 app/policies/clusters/cluster_policy.rb       |   2 +-
 app/policies/deploy_token_policy.rb           |   4 +-
 app/policies/group_policy.rb                  |   4 +-
 app/policies/project_policy.rb                |   8 +-
 app/services/notification_service.rb          |  10 +-
 app/services/projects/create_service.rb       |   2 +-
 .../protected_branches/access_level_params.rb |   2 +-
 .../legacy_api_create_service.rb              |   4 +-
 .../legacy_api_update_service.rb              |   4 +-
 db/fixtures/development/12_snippets.rb        |   2 +-
 ...4938_add_protected_branches_push_access.rb |   2 +-
 ...952_add_protected_branches_merge_access.rb |   2 +-
 doc/raketasks/user_management.md              |   2 +-
 lib/gitlab/access.rb                          |  24 ++--
 lib/gitlab/import_export/members_mapper.rb    |   2 +-
 .../with_nested_groups.rb                     |   2 +-
 .../without_nested_groups.rb                  |   2 +-
 lib/tasks/gitlab/bulk_add_permission.rake     |   4 +-
 .../project/settings/protected_branches.rb    |   6 +
 .../autocomplete_controller_spec.rb           |  20 ++--
 .../boards/issues_controller_spec.rb          |   2 +-
 .../boards/lists_controller_spec.rb           |   2 +-
 .../dashboard/groups_controller_spec.rb       |   4 +-
 .../dashboard/milestones_controller_spec.rb   |   2 +-
 spec/controllers/dashboard_controller_spec.rb |   2 +-
 .../groups/boards_controller_spec.rb          |   2 +-
 .../groups/milestones_controller_spec.rb      |   2 +-
 .../groups/runners_controller_spec.rb         |   2 +-
 .../groups/settings/ci_cd_controller_spec.rb  |   2 +-
 .../groups/variables_controller_spec.rb       |   2 +-
 spec/controllers/groups_controller_spec.rb    |   6 +-
 .../projects/avatars_controller_spec.rb       |   2 +-
 .../projects/badges_controller_spec.rb        |   2 +-
 .../projects/blame_controller_spec.rb         |   2 +-
 .../projects/blob_controller_spec.rb          |  12 +-
 .../projects/boards_controller_spec.rb        |   2 +-
 .../projects/branches_controller_spec.rb      |   2 +-
 .../clusters/applications_controller_spec.rb  |   4 +-
 .../projects/clusters_controller_spec.rb      |  36 +++---
 .../projects/commit_controller_spec.rb        |   2 +-
 .../projects/commits_controller_spec.rb       |   2 +-
 .../projects/compare_controller_spec.rb       |   2 +-
 .../cycle_analytics_controller_spec.rb        |   2 +-
 .../projects/deploy_keys_controller_spec.rb   |   2 +-
 .../projects/deployments_controller_spec.rb   |   2 +-
 .../projects/environments_controller_spec.rb  |   2 +-
 .../projects/find_file_controller_spec.rb     |   2 +-
 .../projects/graphs_controller_spec.rb        |   2 +-
 .../projects/group_links_controller_spec.rb   |   2 +-
 .../projects/hooks_controller_spec.rb         |   2 +-
 .../projects/imports_controller_spec.rb       |   2 +-
 .../projects/issues_controller_spec.rb        |   4 +-
 .../projects/jobs_controller_spec.rb          |   2 +-
 .../projects/labels_controller_spec.rb        |   2 +-
 .../projects/mattermosts_controller_spec.rb   |   2 +-
 .../creations_controller_spec.rb              |   4 +-
 .../merge_requests/diffs_controller_spec.rb   |   2 +-
 .../projects/milestones_controller_spec.rb    |   2 +-
 .../projects/pages_controller_spec.rb         |   2 +-
 .../projects/pages_domains_controller_spec.rb |   2 +-
 .../pipeline_schedules_controller_spec.rb     |  28 ++---
 .../pipelines_settings_controller_spec.rb     |   2 +-
 .../project_members_controller_spec.rb        |  20 ++--
 .../prometheus/metrics_controller_spec.rb     |   2 +-
 .../protected_branches_controller_spec.rb     |   8 +-
 .../protected_tags_controller_spec.rb         |   2 +-
 .../projects/runners_controller_spec.rb       |   2 +-
 .../projects/services_controller_spec.rb      |   2 +-
 .../settings/ci_cd_controller_spec.rb         |   6 +-
 .../settings/integrations_controller_spec.rb  |   2 +-
 .../settings/repository_controller_spec.rb    |   2 +-
 .../projects/snippets_controller_spec.rb      |   6 +-
 .../projects/templates_controller_spec.rb     |   2 +-
 .../projects/tree_controller_spec.rb          |   2 +-
 .../projects/variables_controller_spec.rb     |   2 +-
 spec/controllers/projects_controller_spec.rb  |   8 +-
 spec/controllers/uploads_controller_spec.rb   |   8 +-
 spec/factories/group_members.rb               |   2 +-
 spec/factories/project_members.rb             |   4 +-
 spec/factories/projects.rb                    |   2 +-
 spec/factories/protected_branches.rb          |   8 +-
 spec/factories/protected_tags.rb              |   6 +-
 spec/features/admin/admin_groups_spec.rb      |   2 +-
 spec/features/admin/admin_projects_spec.rb    |   4 +-
 spec/features/atom/dashboard_issues_spec.rb   |   4 +-
 spec/features/atom/dashboard_spec.rb          |   2 +-
 spec/features/atom/users_spec.rb              |   2 +-
 spec/features/boards/add_issues_modal_spec.rb |   2 +-
 spec/features/boards/boards_spec.rb           |   4 +-
 spec/features/boards/issue_ordering_spec.rb   |   2 +-
 spec/features/boards/modal_filter_spec.rb     |   2 +-
 spec/features/boards/new_issue_spec.rb        |   2 +-
 spec/features/boards/sidebar_spec.rb          |   2 +-
 .../features/boards/sub_group_project_spec.rb |   2 +-
 spec/features/commits_spec.rb                 |   2 +-
 spec/features/cycle_analytics_spec.rb         |   6 +-
 spec/features/dashboard/activity_spec.rb      |   2 +-
 .../dashboard/archived_projects_spec.rb       |   4 +-
 .../dashboard/datetime_on_tooltips_spec.rb    |   4 +-
 spec/features/dashboard/issues_filter_spec.rb |   2 +-
 spec/features/dashboard/issues_spec.rb        |   2 +-
 .../features/dashboard/merge_requests_spec.rb |   4 +-
 .../features/dashboard/milestone_tabs_spec.rb |   2 +-
 spec/features/dashboard/milestones_spec.rb    |   2 +-
 .../project_member_activity_index_spec.rb     |   2 +-
 .../dashboard/user_filters_projects_spec.rb   |   2 +-
 .../discussion_comments/commit_spec.rb        |   2 +-
 .../discussion_comments/issue_spec.rb         |   2 +-
 .../discussion_comments/merge_request_spec.rb |   2 +-
 .../discussion_comments/snippets_spec.rb      |   2 +-
 spec/features/global_search_spec.rb           |   2 +-
 spec/features/group_variables_spec.rb         |   2 +-
 spec/features/groups/activity_spec.rb         |   2 +-
 spec/features/groups/empty_states_spec.rb     |   2 +-
 spec/features/groups/issues_spec.rb           |   4 +-
 .../groups/members/filter_members_spec.rb     |   2 +-
 .../master_manages_access_requests_spec.rb    |   4 +-
 spec/features/groups/milestone_spec.rb        |   2 +-
 .../groups/milestones_sorting_spec.rb         |   2 +-
 spec/features/ics/dashboard_issues_spec.rb    |   2 +-
 spec/features/ide_spec.rb                     |   2 +-
 spec/features/invites_spec.rb                 |   2 +-
 .../close_reopen_report_toggle_spec.rb        |   4 +-
 spec/features/issues/award_emoji_spec.rb      |   2 +-
 .../issues/bulk_assignment_labels_spec.rb     |   2 +-
 ...e_for_discussions_in_merge_request_spec.rb |   2 +-
 ...single_discussion_in_merge_request_spec.rb |   2 +-
 .../filtered_search/dropdown_assignee_spec.rb |   8 +-
 .../filtered_search/dropdown_author_spec.rb   |   8 +-
 .../filtered_search/dropdown_emoji_spec.rb    |   2 +-
 .../filtered_search/dropdown_hint_spec.rb     |   2 +-
 .../filtered_search/dropdown_label_spec.rb    |   2 +-
 .../dropdown_milestone_spec.rb                |   2 +-
 .../filtered_search/filter_issues_spec.rb     |   2 +-
 .../issues/filtered_search/search_bar_spec.rb |   2 +-
 .../filtered_search/visual_tokens_spec.rb     |   4 +-
 spec/features/issues/form_spec.rb             |   6 +-
 spec/features/issues/gfm_autocomplete_spec.rb |   2 +-
 spec/features/issues/spam_issues_spec.rb      |   2 +-
 spec/features/issues/todo_spec.rb             |   2 +-
 spec/features/issues/update_issues_spec.rb    |   2 +-
 .../issues/user_uses_slash_commands_spec.rb   |   6 +-
 spec/features/issues_spec.rb                  |   2 +-
 .../markdown/gitlab_flavored_markdown_spec.rb |   2 +-
 .../maintainer_edits_fork_spec.rb             |   2 +-
 ...ommits_from_memebers_who_can_merge_spec.rb |   2 +-
 .../merge_request/user_cherry_picks_spec.rb   |   2 +-
 ...er_customizes_merge_commit_message_spec.rb |   2 +-
 .../user_merges_immediately_spec.rb           |   2 +-
 ...r_merges_only_if_pipeline_succeeds_spec.rb |   2 +-
 ...user_merges_when_pipeline_succeeds_spec.rb |   2 +-
 .../merge_request/user_posts_notes_spec.rb    |   2 +-
 ...diff_notes_and_discussions_resolve_spec.rb |   4 +-
 .../user_sees_avatar_on_diff_notes_spec.rb    |   2 +-
 .../user_sees_closing_issues_message_spec.rb  |   2 +-
 .../user_sees_deleted_target_branch_spec.rb   |   2 +-
 .../user_sees_discussions_spec.rb             |   2 +-
 .../user_sees_empty_state_spec.rb             |   2 +-
 ...epending_on_unresolved_discussions_spec.rb |   2 +-
 .../user_sees_merge_widget_spec.rb            |   6 +-
 .../merge_request/user_sees_pipelines_spec.rb |   4 +-
 .../merge_request/user_sees_versions_spec.rb  |   2 +-
 .../user_sees_wip_help_message_spec.rb        |   2 +-
 .../user_selects_branches_for_new_mr_spec.rb  |   2 +-
 .../user_toggles_whitespace_changes_spec.rb   |   2 +-
 .../user_uses_slash_commands_spec.rb          |   4 +-
 .../merge_requests/user_mass_updates_spec.rb  |   2 +-
 .../user_squashes_merge_request_spec.rb       |   2 +-
 spec/features/milestone_spec.rb               |   2 +-
 .../user_visits_notifications_tab_spec.rb     |   2 +-
 .../profiles/user_visits_profile_spec.rb      |   2 +-
 spec/features/project_variables_spec.rb       |   2 +-
 spec/features/projects/actve_tabs_spec.rb     |   2 +-
 ...ser_interacts_with_awards_in_issue_spec.rb |   2 +-
 spec/features/projects/badges/list_spec.rb    |   2 +-
 .../features/projects/blobs/blob_show_spec.rb |  12 +-
 spec/features/projects/blobs/edit_spec.rb     |   4 +-
 ...er_creates_new_blob_in_new_project_spec.rb |   4 +-
 .../branches/new_branch_ref_dropdown_spec.rb  |   2 +-
 spec/features/projects/branches_spec.rb       |   4 +-
 .../projects/clusters/applications_spec.rb    |   2 +-
 spec/features/projects/clusters/gcp_spec.rb   |   2 +-
 spec/features/projects/clusters/user_spec.rb  |   2 +-
 spec/features/projects/clusters_spec.rb       |   2 +-
 spec/features/projects/commit/builds_spec.rb  |   2 +-
 .../projects/commit/cherry_pick_spec.rb       |   2 +-
 .../projects/commit/diff_notes_spec.rb        |   2 +-
 .../commits/user_browses_commits_spec.rb      |   2 +-
 spec/features/projects/compare_spec.rb        |   2 +-
 spec/features/projects/deploy_keys_spec.rb    |   2 +-
 .../features/projects/diffs/diff_show_spec.rb |   2 +-
 .../projects/environments/environment_spec.rb |   4 +-
 .../environments/environments_spec.rb         |   4 +-
 .../projects/features_visibility_spec.rb      |   4 +-
 ...project_owner_creates_license_file_spec.rb |  10 +-
 ...eate_license_file_in_empty_project_spec.rb |   6 +-
 .../files/template_selector_menu_spec.rb      |   2 +-
 .../projects/files/user_creates_files_spec.rb |   2 +-
 .../projects/files/user_deletes_files_spec.rb |   2 +-
 .../projects/files/user_edits_files_spec.rb   |   2 +-
 .../projects/files/user_find_file_spec.rb     |   2 +-
 .../files/user_reads_pipeline_status_spec.rb  |   2 +-
 .../files/user_replaces_files_spec.rb         |   2 +-
 .../projects/files/user_uploads_files_spec.rb |   2 +-
 spec/features/projects/fork_spec.rb           |   4 +-
 spec/features/projects/graph_spec.rb          |   2 +-
 .../projects/hook_logs/user_reads_log_spec.rb |   2 +-
 .../projects/issuable_templates_spec.rb       |   2 +-
 .../projects/jobs/user_browses_job_spec.rb    |   2 +-
 .../projects/jobs/user_browses_jobs_spec.rb   |   2 +-
 .../labels/user_creates_labels_spec.rb        |   4 +-
 .../projects/labels/user_edits_labels_spec.rb |   2 +-
 .../labels/user_removes_labels_spec.rb        |   2 +-
 .../anonymous_user_sees_members_spec.rb       |   2 +-
 ...equest_access_to_his_group_project_spec.rb |   4 +-
 .../members/groups_with_access_list_spec.rb   |   2 +-
 ...r_adds_member_with_expiration_date_spec.rb |   8 +-
 .../master_manages_access_requests_spec.rb    |   4 +-
 .../projects/members/share_with_group_spec.rb |  30 ++---
 .../features/projects/members/sorting_spec.rb |  24 ++--
 .../members/user_requests_access_spec.rb      |   4 +-
 .../user_closes_merge_request_spec.rb         |   2 +-
 .../user_comments_on_commit_spec.rb           |   2 +-
 .../user_comments_on_diff_spec.rb             |   2 +-
 .../user_comments_on_merge_request_spec.rb    |   2 +-
 .../user_creates_merge_request_spec.rb        |   2 +-
 .../user_edits_merge_request_spec.rb          |   2 +-
 .../user_manages_subscription_spec.rb         |   2 +-
 .../user_reopens_merge_request_spec.rb        |   2 +-
 .../user_sorts_merge_requests_spec.rb         |   2 +-
 .../user_views_open_merge_request_spec.rb     |   2 +-
 .../user_interacts_with_labels_spec.rb        |   2 +-
 spec/features/projects/new_project_spec.rb    |   2 +-
 spec/features/projects/pages_spec.rb          |   2 +-
 .../projects/pipeline_schedules_spec.rb       |   4 +-
 .../projects/pipelines/pipelines_spec.rb      |   2 +-
 spec/features/projects/remote_mirror_spec.rb  |   2 +-
 .../services/user_activates_asana_spec.rb     |   2 +-
 .../services/user_activates_assembla_spec.rb  |   2 +-
 ...user_activates_atlassian_bamboo_ci_spec.rb |   2 +-
 .../user_activates_emails_on_push_spec.rb     |   2 +-
 .../services/user_activates_flowdock_spec.rb  |   2 +-
 .../services/user_activates_hipchat_spec.rb   |   2 +-
 .../services/user_activates_irker_spec.rb     |   2 +-
 .../user_activates_issue_tracker_spec.rb      |   2 +-
 ...er_activates_jetbrains_teamcity_ci_spec.rb |   2 +-
 .../services/user_activates_jira_spec.rb      |   2 +-
 ...activates_mattermost_slash_command_spec.rb |   2 +-
 .../services/user_activates_packagist_spec.rb |   2 +-
 .../user_activates_pivotaltracker_spec.rb     |   2 +-
 .../user_activates_prometheus_spec.rb         |   2 +-
 .../services/user_activates_pushover_spec.rb  |   2 +-
 ...user_activates_slack_notifications_spec.rb |   2 +-
 ...user_activates_slack_slash_command_spec.rb |   2 +-
 .../services/user_views_services_spec.rb      |   2 +-
 .../settings/forked_project_settings_spec.rb  |   4 +-
 .../settings/integration_settings_spec.rb     |   4 +-
 .../projects/settings/lfs_settings_spec.rb    |   6 +-
 .../settings/pipelines_settings_spec.rb       |   4 +-
 .../projects/settings/project_badges_spec.rb  |   2 +-
 .../settings/repository_settings_spec.rb      |   6 +-
 .../settings/user_archives_project_spec.rb    |   2 +-
 .../settings/user_changes_avatar_spec.rb      |   2 +-
 .../user_interacts_with_deploy_keys_spec.rb   |   4 +-
 .../settings/user_manages_group_links_spec.rb |   4 +-
 .../user_manages_project_members_spec.rb      |   6 +-
 .../settings/visibility_settings_spec.rb      |   8 +-
 .../user_sees_setup_shortcut_buttons_spec.rb  |   8 +-
 .../projects/snippets/create_snippet_spec.rb  |   2 +-
 spec/features/projects/snippets/show_spec.rb  |   2 +-
 .../snippets/user_comments_on_snippet_spec.rb |   2 +-
 .../snippets/user_deletes_snippet_spec.rb     |   2 +-
 .../snippets/user_updates_snippet_spec.rb     |   2 +-
 .../snippets/user_views_snippets_spec.rb      |   2 +-
 .../projects/sub_group_issuables_spec.rb      |   2 +-
 .../projects/tree/create_directory_spec.rb    |   2 +-
 .../projects/tree/create_file_spec.rb         |   2 +-
 spec/features/projects/tree/tree_show_spec.rb |   2 +-
 .../projects/tree/upload_file_spec.rb         |   2 +-
 .../projects/user_uses_shortcuts_spec.rb      |   2 +-
 .../projects/user_views_empty_project_spec.rb |   4 +-
 spec/features/projects/view_on_env_spec.rb    |   2 +-
 .../projects/wiki/markdown_preview_spec.rb    |   2 +-
 .../wiki/user_creates_wiki_page_spec.rb       |   2 +-
 .../wiki/user_updates_wiki_page_spec.rb       |   2 +-
 .../user_views_wiki_in_project_page_spec.rb   |   2 +-
 .../wiki/user_views_wiki_page_spec.rb         |   2 +-
 spec/features/projects_spec.rb                |   6 +-
 spec/features/protected_branches_spec.rb      |   4 +-
 spec/features/reportable_note/commit_spec.rb  |   2 +-
 spec/features/reportable_note/issue_spec.rb   |   2 +-
 .../reportable_note/merge_request_spec.rb     |   2 +-
 .../features/reportable_note/snippets_spec.rb |   2 +-
 spec/features/runners_spec.rb                 |  14 +--
 .../search/user_searches_for_code_spec.rb     |   2 +-
 .../search/user_searches_for_issues_spec.rb   |   2 +-
 .../user_searches_for_merge_requests_spec.rb  |   2 +-
 .../user_searches_for_milestones_spec.rb      |   2 +-
 .../user_searches_for_wiki_pages_spec.rb      |   2 +-
 .../security/group/internal_access_spec.rb    |  10 +-
 .../security/group/private_access_spec.rb     |  10 +-
 .../security/group/public_access_spec.rb      |  10 +-
 .../security/project/internal_access_spec.rb  |  68 +++++------
 .../security/project/private_access_spec.rb   |  62 +++++-----
 .../security/project/public_access_spec.rb    |  68 +++++------
 .../project/snippet/internal_access_spec.rb   |  12 +-
 .../project/snippet/private_access_spec.rb    |   8 +-
 .../project/snippet/public_access_spec.rb     |  16 +--
 spec/features/signed_commits_spec.rb          |   6 +-
 spec/features/tags/master_creates_tag_spec.rb |   4 +-
 spec/features/tags/master_deletes_tag_spec.rb |   4 +-
 spec/features/tags/master_updates_tag_spec.rb |   4 +-
 spec/features/tags/master_views_tags_spec.rb  |   4 +-
 spec/features/task_lists_spec.rb              |   2 +-
 spec/features/triggers_spec.rb                |   4 +-
 ...user_browses_projects_on_user_page_spec.rb |   6 +-
 spec/finders/access_requests_finder_spec.rb   |   4 +-
 spec/finders/admin/projects_finder_spec.rb    |   2 +-
 .../finder_with_cross_project_access_spec.rb  |   2 +-
 .../contributed_projects_finder_spec.rb       |   4 +-
 spec/finders/environments_finder_spec.rb      |   2 +-
 spec/finders/group_members_finder_spec.rb     |  24 ++--
 spec/finders/group_projects_finder_spec.rb    |  14 +--
 spec/finders/issues_finder_spec.rb            |   2 +-
 spec/finders/joined_groups_finder_spec.rb     |  10 +-
 spec/finders/members_finder_spec.rb           |  12 +-
 spec/finders/merge_requests_finder_spec.rb    |   4 +-
 spec/finders/move_to_project_finder_spec.rb   |  18 +--
 spec/finders/notes_finder_spec.rb             |   2 +-
 spec/finders/projects_finder_spec.rb          |   4 +-
 spec/fixtures/trace/sample_trace              |  32 +++---
 spec/helpers/markup_helper_spec.rb            |   2 +-
 spec/helpers/notes_helper_spec.rb             |  16 +--
 spec/javascripts/fixtures/commit.rb           |   2 +-
 spec/javascripts/fixtures/groups.rb           |   2 +-
 spec/javascripts/fixtures/projects.rb         |   2 +-
 .../lib/banzai/filter/redactor_filter_spec.rb |   2 +-
 spec/lib/gitlab/checks/change_access_spec.rb  |   4 +-
 .../pipeline/chain/validate/abilities_spec.rb |   4 +-
 spec/lib/gitlab/ci/status/build/play_spec.rb  |   2 +-
 .../lib/gitlab/ci/status/stage/common_spec.rb |   2 +-
 .../gitlab/closing_issue_extractor_spec.rb    |   4 +-
 .../cycle_analytics/permissions_spec.rb       |   4 +-
 spec/lib/gitlab/git_access_spec.rb            |  28 ++---
 .../google_code_import/importer_spec.rb       |   2 +-
 .../import_export/members_mapper_spec.rb      |   2 +-
 .../import_export/project_tree_saver_spec.rb  |   6 +-
 .../gitlab/import_export/repo_saver_spec.rb   |   2 +-
 .../import_export/wiki_repo_saver_spec.rb     |   2 +-
 spec/lib/gitlab/middleware/go_spec.rb         |   2 +-
 .../lib/gitlab/project_authorizations_spec.rb |   6 +-
 .../lib/gitlab/project_search_results_spec.rb |   2 +-
 .../gitlab/slash_commands/issue_move_spec.rb  |   2 +-
 .../gitlab/slash_commands/issue_new_spec.rb   |   2 +-
 .../slash_commands/issue_search_spec.rb       |   2 +-
 .../gitlab/slash_commands/issue_show_spec.rb  |   2 +-
 spec/lib/gitlab/user_access_spec.rb           |  40 +++----
 spec/mailers/notify_spec.rb                   |  16 +--
 spec/models/concerns/issuable_spec.rb         |   8 +-
 .../concerns/protected_ref_access_spec.rb     |  10 +-
 .../concerns/resolvable_discussion_spec.rb    |   2 +-
 spec/models/group_spec.rb                     |  48 ++++----
 spec/models/hooks/system_hook_spec.rb         |   8 +-
 spec/models/issue_spec.rb                     |   2 +-
 spec/models/lfs_file_lock_spec.rb             |  12 +-
 spec/models/member_spec.rb                    |  86 +++++++-------
 spec/models/members/group_member_spec.rb      |   2 +-
 spec/models/members/project_member_spec.rb    |  10 +-
 spec/models/merge_request_spec.rb             |   8 +-
 spec/models/note_spec.rb                      |   6 +-
 spec/models/project_authorization_spec.rb     |   6 +-
 spec/models/project_spec.rb                   |  10 +-
 spec/models/project_team_spec.rb              | 108 +++++++++---------
 .../merge_access_level_spec.rb                |   2 +-
 .../push_access_level_spec.rb                 |   2 +-
 spec/models/user_spec.rb                      |  66 +++++------
 spec/policies/ci/build_policy_spec.rb         |  10 +-
 .../ci/pipeline_schedule_policy_spec.rb       |   8 +-
 spec/policies/ci/trigger_policy_spec.rb       |  12 +-
 spec/policies/clusters/cluster_policy_spec.rb |   4 +-
 spec/policies/deploy_key_policy_spec.rb       |   2 +-
 spec/policies/deploy_token_policy_spec.rb     |  12 +-
 spec/policies/environment_policy_spec.rb      |  20 ++--
 spec/policies/global_policy_spec.rb           |   4 +-
 spec/policies/group_policy_spec.rb            |  42 +++----
 spec/policies/project_policy_spec.rb          |  30 ++---
 spec/policies/protected_branch_policy_spec.rb |   4 +-
 .../merge_request_presenter_spec.rb           |   6 +-
 spec/presenters/project_presenter_spec.rb     |   8 +-
 spec/requests/api/access_requests_spec.rb     |  38 +++---
 spec/requests/api/award_emoji_spec.rb         |   2 +-
 spec/requests/api/badges_spec.rb              |  54 ++++-----
 spec/requests/api/branches_spec.rb            |  16 +--
 spec/requests/api/commits_spec.rb             |  10 +-
 spec/requests/api/deployments_spec.rb         |   2 +-
 spec/requests/api/environments_spec.rb        |   6 +-
 spec/requests/api/group_variables_spec.rb     |  10 +-
 spec/requests/api/groups_spec.rb              |   8 +-
 spec/requests/api/issues_spec.rb              |   2 +-
 spec/requests/api/jobs_spec.rb                |   2 +-
 spec/requests/api/labels_spec.rb              |   2 +-
 spec/requests/api/members_spec.rb             |  84 +++++++-------
 spec/requests/api/merge_request_diffs_spec.rb |   2 +-
 spec/requests/api/notes_spec.rb               |   2 +-
 spec/requests/api/pages_domains_spec.rb       |  28 ++---
 spec/requests/api/pipeline_schedules_spec.rb  |  22 ++--
 spec/requests/api/pipelines_spec.rb           |   2 +-
 spec/requests/api/project_export_spec.rb      |  38 +++---
 spec/requests/api/project_hooks_spec.rb       |   4 +-
 spec/requests/api/project_import_spec.rb      |   4 +-
 spec/requests/api/projects_spec.rb            |  14 +--
 spec/requests/api/protected_branches_spec.rb  |  34 +++---
 spec/requests/api/repositories_spec.rb        |   2 +-
 spec/requests/api/runners_spec.rb             |   8 +-
 spec/requests/api/tags_spec.rb                |  14 +--
 spec/requests/api/triggers_spec.rb            |   2 +-
 spec/requests/api/variables_spec.rb           |   2 +-
 spec/requests/api/wikis_spec.rb               |  62 +++++-----
 spec/requests/git_http_spec.rb                |  12 +-
 spec/requests/lfs_http_spec.rb                |  14 +--
 spec/requests/lfs_locks_api_spec.rb           |   6 +-
 spec/serializers/deploy_key_entity_spec.rb    |   4 +-
 spec/serializers/group_child_entity_spec.rb   |   2 +-
 ...er_registry_authentication_service_spec.rb |   4 +-
 .../ci/create_pipeline_service_spec.rb        |   8 +-
 .../ci/retry_pipeline_service_spec.rb         |   4 +-
 .../ci/stop_environments_service_spec.rb      |   2 +-
 .../discussions/resolve_service_spec.rb       |   2 +-
 spec/services/files/create_service_spec.rb    |   2 +-
 spec/services/files/delete_service_spec.rb    |   2 +-
 spec/services/files/multi_service_spec.rb     |   2 +-
 spec/services/files/update_service_spec.rb    |   2 +-
 spec/services/git_push_service_spec.rb        |  12 +-
 spec/services/groups/update_service_spec.rb   |   8 +-
 spec/services/issues/close_service_spec.rb    |   2 +-
 spec/services/issues/create_service_spec.rb   |  16 +--
 spec/services/issues/reopen_service_spec.rb   |   2 +-
 spec/services/issues/update_service_spec.rb   |   4 +-
 spec/services/lfs/unlock_file_service_spec.rb |   6 +-
 .../approve_access_request_service_spec.rb    |   6 +-
 spec/services/members/create_service_spec.rb  |   2 +-
 spec/services/members/destroy_service_spec.rb |   6 +-
 spec/services/members/update_service_spec.rb  |   6 +-
 .../merge_requests/close_service_spec.rb      |   2 +-
 .../merge_requests/create_service_spec.rb     |  20 ++--
 .../merge_requests/ff_merge_service_spec.rb   |   2 +-
 .../merge_requests/merge_service_spec.rb      |   2 +-
 .../merge_requests/post_merge_service_spec.rb |   2 +-
 .../merge_requests/rebase_service_spec.rb     |   2 +-
 .../merge_requests/reopen_service_spec.rb     |   2 +-
 .../merge_requests/update_service_spec.rb     |   2 +-
 .../services/milestones/close_service_spec.rb |   2 +-
 .../milestones/create_service_spec.rb         |   2 +-
 .../milestones/destroy_service_spec.rb        |   2 +-
 .../milestones/promote_service_spec.rb        |   2 +-
 spec/services/notes/create_service_spec.rb    |   2 +-
 .../notes/post_process_service_spec.rb        |   2 +-
 .../notes/quick_actions_service_spec.rb       |  20 ++--
 spec/services/notes/update_service_spec.rb    |   2 +-
 spec/services/notification_service_spec.rb    | 106 ++++++++---------
 spec/services/projects/create_service_spec.rb |   4 +-
 .../projects/move_access_service_spec.rb      |  12 +-
 ...ove_project_authorizations_service_spec.rb |   8 +-
 .../move_project_group_links_service_spec.rb  |   8 +-
 .../move_project_members_service_spec.rb      |   8 +-
 .../overwrite_project_service_spec.rb         |   8 +-
 .../projects/transfer_service_spec.rb         |   2 +-
 .../protected_branches/create_service_spec.rb |   8 +-
 .../protected_tags/create_service_spec.rb     |   4 +-
 spec/services/search/global_service_spec.rb   |   2 +-
 spec/services/search_service_spec.rb          |   2 +-
 ...efresh_authorized_projects_service_spec.rb |  30 ++---
 ...issuable_slash_commands_shared_examples.rb |  32 +++---
 spec/support/helpers/markdown_feature.rb      |   2 +-
 .../import_export/export_file_helper.rb       |   2 +-
 .../access_matchers_for_controller.rb         |   2 +-
 ..._service_slash_commands_shared_examples.rb |   4 +-
 ...creatable_merge_request_shared_examples.rb |   6 +-
 .../editable_merge_request_shared_examples.rb |   6 +-
 ..._manages_access_requests_shared_example.rb |  14 +--
 .../members_notifications_shared_example.rb   |   2 +-
 .../projects/imports/new.html.haml_spec.rb    |   2 +-
 .../_pipeline_schedule.html.haml_spec.rb      |   6 +-
 .../shared/notes/_form.html.haml_spec.rb      |   2 +-
 spec/workers/merge_worker_spec.rb             |   2 +-
 spec/workers/pipeline_schedule_worker_spec.rb |   2 +-
 495 files changed, 1631 insertions(+), 1596 deletions(-)

diff --git a/app/models/concerns/protected_ref_access.rb b/app/models/concerns/protected_ref_access.rb
index e3a7f2d54981..71b0c3468b92 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 58194b0ea137..7af0fdbd618b 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 b0392774379b..28677320e28b 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 68572f2e33a0..00a13a279a9e 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 024106056b43..4f27d0aeaf81 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 770262f61939..1894de6ceed4 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 ac1e9ab2b0be..cf8fc41e870a 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 9a38806baabf..c7d0f49d8379 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 1c5d39db118c..4987d01aac6b 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 1f7c13072b94..b5b24491655f 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 7aa9106e8b1d..d1b459cfc90d 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 ded9fe30eff2..dc339b71ec77 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 199bcf92b210..bc49092633f1 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 8c6221af788a..d7be9a925b5c 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 172497b8e676..85491089d8ed 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 253ae8b01246..4658b0e850df 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 e358fd0374e6..bb7656489c56 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 33176253ca21..1df38de0e4a2 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 4f3bdba043d0..a9f4069a0f8a 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 97aaaf9d2c8c..de3aefcb1fb3 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 51a52a5ac17a..9b18a2061b32 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 5554a0c8b78f..e1b1912ed477 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 87e377de4d39..b170145f013b 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 8b8e48aac765..ac827cbe1ca8 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 15b8beacf605..e3da1634fa57 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 ad87540e6c2a..7d0c00c7f368 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 83dd870fa313..26cbf0740b64 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 0bd031e96b5a..e572ae121328 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 fb6d82d7de39..2c59d1929a14 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 e47ff8661a23..ce7762691c9d 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 57ccbf1d6b5b..80631d2efb01 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 7f2eaf95165a..9068c1a792e5 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 60547db82b67..ba2669a5ea79 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 3458d6791079..187542ba30ce 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 0f5bde620069..bf41aa0706f1 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 733386500caf..f70685460935 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 5770d15557c8..598fb84552f7 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 e9f0924caba1..ea18122e0c38 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 39a36b92bb48..e5ac5634f95c 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 8688fb33f0df..7a037828035e 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 acfa2730d94d..17c9a61f339c 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 e7cddf8cfbf6..dfe34171b558 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 88d4f4e9cd00..fe4c48637174 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 4dcb7dc6c878..32cd7c6e70aa 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 509f19ed030f..096efc1c7b2c 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 4860ea5dcce8..31471cde4208 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 99fdff5f8463..9e17e392d3dd 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 e47ccdc9aea1..42917d0d505d 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 003fec8ac681..916a4be2567f 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 55ed276f96bd..d44048fdf555 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 b15cde4314e2..8695aa826bb7 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 5516c95d0449..5c79269e8f1a 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 97db69427e9b..d2f133f972a0 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 6c67dfde63ac..d1c960e895db 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 63cef579864e..b86029a4bafd 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 505fe82851a2..66fe41108e2e 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 c3605555fe78..da78592a6f66 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 78c6f7839b47..879aff26debc 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 2d473d5bf525..0f3033b0933c 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 6f06210f3de2..adf3c78ae51b 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 3a41f0fc07ac..ff1835a34c23 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 6be27126383a..1aca44c6e742 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 452d7e239838..273702e6d215 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 c5ac0be27bb9..c2a334a849c8 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 00d76f3c39a8..d8995f98575f 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 ec82b35f2279..9dc06436c72e 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 b1d832462384..ea906cf7f32d 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 8d2fa6a17403..927b6e0c4733 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 d4058a5c515a..75871eab1ab6 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 4cdaa54e0bc9..7179423dde25 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 694896b6bcf6..b1ba9f74e389 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 d84b31ad978c..519af10d78c2 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 871dcf5c796c..5c56a7122456 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 096e29bc39f8..ac812707e74c 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 b6de90039f3a..20440c5a5d56 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 2082dd2cff0d..b1e0b496ede1 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 61f35cf325b2..45cea8c1351b 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 d53fe9bf7345..1f14a0cc3814 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 77df9a6f5676..a2484c04c7ab 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 3a4014b77683..9cee40b7553e 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 e7c0b484ede2..9c383bd7628e 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 8fcfa3c9ecd3..d7f07aa2b019 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 d3188f054cf7..9982b49eebbd 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 68019743be0b..9afd1f751c66 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 fd7d867f9e5f..94644b1f9fd2 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 eb94d395a9ec..bcf289f36a98 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 1c2214e94819..47036560b9da 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 4260f52498dd..22a8085ea452 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 f77ded23b180..fec1bea2751f 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 609565118340..5457c0d2a8f5 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 df9c8b3cb634..2b81d089549f 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 5b0a53688c20..96dfde2e08c6 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 328e8f25f89c..d6ee256f5b55 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 da7749b42d25..bd4c00d97b1f 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 462eab07a754..86b3f88298f3 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 eeaaa40fe217..8d7df346abbe 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 7a14a441088e..eebc987499d4 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 f6e0dee28c61..a0af2dea3ad9 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 32bd7b88840a..ec0ca21450a2 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 be9c6a51c29b..615223a2a884 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 7a95f5cf871e..0bf1ecbc4338 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 a03aa6818273..ee38e756f9ea 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 271c610dcc8d..de2cb4c335ed 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 29fcf89fa7a8..8989b2051bb1 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 dfcd7ada23b8..32c75cae0a1e 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 9ed912820f7a..bf91dc121d84 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 b36231fd78b0..6a0cd8483450 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 28bff4d2821d..d7234158fa12 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 340262be5022..95e2610dd4ab 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 3cc7b38550d2..4ae062f242ac 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 46d7a82d4680..f51142f57900 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 6fcde35f541e..21de7c2f06f5 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 c0699a72521d..0db694327028 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 cfd6329fad0a..498775acff3f 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 92f4d4b854c5..3746d37b9cd2 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 69d35cdbc723..7a3b1d7ed47a 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 9812eaf3420f..5ec19460bbd7 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 b0019c32189e..f940e9739236 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 4a236c4639b0..d330e89505e3 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 df64219de993..d76921814536 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 5643240377b1..89e0cdd8ed7f 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 27520cf0e22a..88fc12ae1e4a 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 dd901b034f7c..8f5ca781b2c6 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 2bab6aa3d483..97d8776b15a5 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 8b4f6dbcc505..386d81546d77 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 4fdf14977818..bd615c994121 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 5ab03cb6ee69..80df0618a6a4 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 5deb55bc8bb1..bc226ff41c1a 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 a4d05c25a90b..ea714934ae76 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 b3f24c2966dc..65989c36c1e4 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 a986ddc4abcd..9e1a12a9c2a8 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 3df77a104e81..de6f5fe1560b 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 1131e1711bf2..bf60b18873c8 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 44ddc0326568..06cb2e363345 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 32c6ac52f92b..ada57285abfb 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 b8222283a983..b20730bdb22b 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 c8115db9212b..d011d2545bb2 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 70b4f11410da..50d819a6161f 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 436625a6f7bc..be229e8aa7db 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 ef40dddfd3af..b99c5a7f4e33 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 18cdb199c705..ca5d506ab04c 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 94710c2f71fd..f76d30056da8 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 8dca81a86278..d4949de3f273 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 268590da5994..8abab3f35d6a 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 0ae70c855dbd..6ac7ccd00f7b 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 2cb3ae08b0e6..1456a2f0375f 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 a330ba4c8b3b..98e37d8011af 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 73022afbda21..7cce45ff2060 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 d23f9059d0f6..0114178b9be6 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 cd6a5977eb89..845a7c5fc420 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 a28378b22ca1..5926e442f24d 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 c6dcd97631d8..4d9b8a10e043 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 3c2186b35986..6997ca484277 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 1808d0c0a0c0..7839b97122c2 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 0af37d765399..0ccab5b2face 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 61d1bdaa95ab..c6ec3f08cc5e 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 e1e70b6d260b..8d2d4279d3c0 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 b16fc9bfc894..ea61f9675bc5 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 a045791f6b4b..8372b61f8721 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 db92a3504f31..53ed5d785986 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 fa819cbc3854..260c5f9c28b1 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 a0b9d6cb0599..bf4d5396df95 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 0a8296bd7227..428eb414274b 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 726f35557a7b..d7c784b14c5b 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 011153183706..46c21a2b1550 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 10390bd5864b..7b8c3bacfe29 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 a939c7e90018..482f31b02d45 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 85df43df38e4..f6b771facf8e 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 51a65407aec5..b6b3844f2aea 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 a42c016392b5..45cccbee63e7 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 11e0806ba62a..f42b4dcbb477 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 bc25243244ec..92cc73ddf1fe 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 ed6e29335d14..ae41cf905761 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 2e95a6280132..dd860382daa8 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 83ad4b45b5a0..b81478a481f8 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 199ba7e87ada..bb327159cb0f 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 da3d6772eeb4..ec1153b7f7fa 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 b12aba2c2637..a0673b127388 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 689196c22586..db797bb586fa 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 713112477c8d..2dc4547b2d86 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 0ba2224359ac..a93df3696d2c 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 ce5606b63aef..7c6110c533b0 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 12e07647ecd3..4d860893abe0 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 da87039ad445..e30b908c60d4 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 7280d421ceac..275894288962 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 2657f5d999ff..0e036b4ea681 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 0b7988f63354..8a0b92190dd3 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 0be434a567bc..0faf73db7da9 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 b7ce1b9993a9..97757e8da92c 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 f57647a348f4..a65ca6623502 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 bd8cb9b4b946..31e3ebf675d6 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 a49dd72a91f5..babf47cc3415 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 a7274c997041..91eac9c8278b 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 da0552441fe7..bd254caddfba 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 1df45865d6fb..bc3c00dafe28 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 6d66889761fc..e2aefa35fad9 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 35ed6620548f..23d8d6067905 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 7e863d9df328..696008849099 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 1552a3512dde..e12532e97fa9 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 237157cd89d5..df05625d105c 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 624f7139605f..4c5dda29fee3 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 c2ed753c409e..f0890018286f 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 b0eb7c5b42ac..ab16fdee8835 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 b410199fd1fc..ac6c8c337fa4 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 53d8ace7c946..801291c1f773 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 b7e1e172af98..6b313824acd2 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 208cc8d81f76..d4dda43c823b 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 36d3e001a64e..0e9f83a16cef 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 dc6e4fd27cbd..ccc1bc1bc103 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 df405e70dd42..e2d881b34d22 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 2d0b447913e2..ff0aa933a3e1 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 9ac3417b671d..3a81e77c4ba9 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 8b212faa29d6..af3fc528a207 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 1743b1e083f3..cd5fef8238e8 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 335174b77291..9665f1755d6c 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 c3bc35565f69..086cd4b9f030 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 9cd4af2de805..a57edc394f92 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 ce0b38b72396..50e957bf12b3 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 786ec327b92c..08786fe16308 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 9fd7f3ee7758..c71b04fea09a 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 d1041ff5c1e0..0708bbd40cec 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 efa74015c6e2..b0ce03a1c31e 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 19e52294a381..b3ed725f6020 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 7bc53345ddf4..bb475ea95e54 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 b65c46b345f2..c0b5d943e966 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 90f09bf6264a..26de6fb33fdd 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 112b06c047dd..adc8202cde78 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 b126f0c6cb13..c6d85e5d22fb 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 1e1071348c32..220775b514d4 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 5599cc9bf1b8..50ba67f0ffc3 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 b257f447439d..2d12d6901511 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 0a952cfc2a99..8ea358bcc705 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 1828b60fec75..b1b62d04ac2f 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 f90aaba3cafd..69bdab85d81d 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 1f21ef7b3824..38b4e4a6d1bd 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 3d19a2923b92..7de0f9daac6c 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 f55eb5c66647..68a835e7f772 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 ba3c9789da19..745b4537e727 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 305658f1b5d3..e401933aed2b 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 3aac93eaf7c3..6ac495aa03d9 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 f6a82f80d659..a6d58be7b135 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 f23ec11a4586..df8528e79dd3 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 6bf65e162916..831f22a0e699 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 220b3529c59d..ee6b67b21880 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 7d47e342e922..4a83bcc3efb0 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 97db4a2b8f28..5259a8942dc5 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 db836d2985c7..c44e07dd3b4a 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 f099b332785e..9c3884a7c749 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 a00c2e0ad99c..195735652657 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 3769875b29c3..cc55f7b20608 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 5298d8acaf54..f981b7e9da9b 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 a9bf16642c79..2f5313c91f91 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 435663c818f6..4c8e321b4116 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 e9502178bd74..7cd5b12802b0 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 1048803fde8d..28d83a8b9610 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 429128ec096c..08e1855d034c 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 d4a6417290d5..25b74cc481d4 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 b0cc818f0939..756e9b33c07c 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 d5d109ba48bc..1d6b19e0b0c0 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 33f884eb148d..61361c8a2e3b 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 9b7e8d627926..24612ee14579 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 727b1fe2d11a..24b5d5259dbc 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 f540b76c7844..08cfddf7993c 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 5c5e8b666424..e9c8cf0fe34d 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 a4d1b78b83b2..df33d2156029 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 5178d63050eb..8745ff72df0f 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 342be1d2a9da..befb306b48d9 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 cfdae246c09c..742ecf82c382 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 e53da997c1d2..2ec94274f804 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 f085e1aa50a5..a0f5b234ebc2 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 38c8a8c24682..5008eab4d399 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 2dcc79d8a124..64335163016d 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 71a077039b75..ecfb49b9efe4 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 92ce2ca83c74..2f1824d7849d 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 d3003753ae6c..b8ca11d53f0f 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 2ec6990313ff..1fbc108697f7 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 7b9242f0631f..0405e21a0d7a 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 2388feeb9802..6d8a72dd6a3a 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 004ac55b6560..3cc797277ddf 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 01cf9740d1f5..d82e350e0f7c 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 e64837ad59ec..2bd8bb9d5513 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 eaedbbf32b6c..33f77d55f89c 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 376b76e0001a..1243db9d9f7e 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 eb2d3ff50a03..50e7e934cf6c 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 d0902bce7f34..057b49cc68c6 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 03a29fae0bd7..b324ab013837 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 dc59666ffcea..9e15163fd729 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 804a4450ae20..28da0a87f226 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 c8b3104b9fe1..df9ee69aadba 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 7b982301ffcc..b7c0834d33a3 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 84ec32b3fac6..a48ad94e9fa5 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 0bec5f185d68..ed5f8105487c 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 733e6c89de70..830565620d67 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 2ccbc15b6da5..2840d28cf30f 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 92b501694768..fb0ebe22bf7c 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 1de7d9a56a86..0ef7f35f64a1 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 8636d17f2c4f..00946bccd9af 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 83a5f88f0b57..63c38a25f4bb 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 9b6864eb90f0..54ebda9dcab4 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 f5a1950e48e8..bce1f7a3780e 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 1f69257f7ed7..d00324156c49 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 98ef50b78de1..06218d9b2860 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 443c2b9acaea..0c6cf3dc477b 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 9e089c5a6cb2..ecec2f3e0431 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 d6120ff8517e..4bff269f89e8 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 68e2f7a857df..75d44e413cb5 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 fc6cd81eb68a..7d52c4c8bcca 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 5098fb49ee13..3ee753b7d230 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 5067f0b0a49d..51b32ba6c031 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 ff32413dc7e4..4705cd12d236 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 16d114fb3f7d..3a53c3c2bc72 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 a7928857b7df..001e6c10eb2a 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 a4396b20afdf..c6618355eea1 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 fccdeb0e5b7d..3717dc13f1ed 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 d7dc99c0a570..b87eb86b88b6 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 3ec1a3881859..ead91d9a5fae 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 39b104bfe274..9bab3a474b8d 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 bc9443c60939..3d05474dca20 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 b4e8253057bb..db2970f33401 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 1443e259ed9b..8d567e925ef8 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 4c0be6be96c6..d8b5b3c4cc4c 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 02ce02426143..3f4fe549f3e7 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 64d05c57d3c1..9c9127980a15 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 36dafccd1868..919859c145ac 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 5478e38ce704..6a9b281fb4c7 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 650f72296476..605777462bba 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 7901d5fee282..44cc8debd048 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 c784fb879725..1ff65a8101be 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 60ea98e61c72..9155a8d6fe98 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 3a8a1e7de744..3cd421f22ebe 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 63e15b365a44..f545da3aee4f 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 0a69c03e4911..d6d95906f5ea 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 74e91b02f0fb..07a2fa86dd76 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 7f77a713b12f..ae3e55f90f16 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 2fc5299b0f4c..db48f00cd742 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 669ec602f115..35d0eeda8f61 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 e1faf3d569c3..1511cb0e04c6 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 232f35c86f97..b776e9d856ab 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 0dfe6ba9c323..7931ad9b9f06 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 c65cf05d5ca7..7bfe3f83b7bd 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 d5ed5c59c61e..597648b064de 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 b992bdb4a5eb..21461e46cf4c 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 351db6ba184e..24ab8159a188 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 35be52fbf974..a2035ceae15c 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 e8865b04874b..57c78182abc9 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 9a2e521fdcfd..919825a61026 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 1cb8143a9e97..7c04aa27971c 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 a973ccda8de1..8ba56d738384 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 e2bb378f663c..02f8c4c114bd 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 6ec35f8da7ed..bb2d0a2c75cf 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 8d4862932b29..3a0688b7cbb0 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 6de4bd3dc7cf..f670c7f6c754 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 6d11efb42c87..832db2bd9065 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 017facd0f5e9..031f57dbc65c 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 246f009ad277..67e4c2899063 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 2b8a11ce8f95..fec8a2af9ab5 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 187ec8fcfa2f..5a646b4aac81 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 24bc231d5a0a..441aa1defe6e 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 b24c9882c0ca..7a3a9ab875b0 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 f3cd6961e943..00c62c7bf96f 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 50224bde7227..767a3092c73b 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 d41441c9472a..9a990e1fad7d 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 8e7df946529d..724c76ade6e7 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 189e9592f1b1..47787307990c 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 b1db1638237a..5c4ba2736bad 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 0469d984a407..9da06bb40f42 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 effbfb1ba849..581132b66720 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 1cfd526834c5..ec6374f3963a 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 a62ca391e253..ce602337647d 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 2f9f63ce7e0e..97b046b0f210 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 aeec485358e2..0729eb99e781 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 8bc45715dcd7..01129df11076 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 e818fbeb9cfc..84edfc3ff009 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 ce87b01b49cd..e74f342d3eb7 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 c64cdf8f8122..fca1b1f90d9f 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 ffc78015f943..97959ed43048 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 574eb468e4cd..334d4f95f532 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 c7eead2bdaa8..b0d9d03bf6ce 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 a2cb716cb935..947be44c903b 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 9e7e525b2c0d..c289ee0859a7 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 bbf37ca59b9f..c01c7bc47b5b 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 9978f3e95667..c4af17f47264 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 f70503eadbcc..612e4a0e3329 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 f161f3457615..9ccdc22fd413 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 6d7b733dd4f4..fc46551c3be6 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 eead55d33ca5..79a616899fa1 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 c0c3eda4911d..f1d3cd04e32f 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 14630748c90d..d8a63066265c 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 4207f42b07fd..ced969830d8d 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 ca7b7fe7ef74..e7263d496139 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 eea287d895e6..cef5a4a22bc0 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 3728218accc4..0442b032e89a 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 873673b50efc..a2047b54deb5 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 d6d340bd8067..35951251bc53 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 6d4676c25a52..dd3fa4e6a518 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 b39de42d721f..1587196754df 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 e3b37739e8ed..46ba6f442f58 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 830d2ee3b202..01085dbcb494 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 ffca7ab8e456..e13129967b27 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 5adfb33677f5..0921fecb933b 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 ae64a9ca1625..e232e2e04ee0 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 9bb6ed623939..7fff0a6cce64 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 e73d1a252f59..113703fac387 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 51b70fda1482..61ae053cea76 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 fdddca5d0ef5..bf93555b0f0d 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 64fa7dc824c0..f87e035c89d8 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 5a04e699d60c..65b387a21707 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 95eff029f98d..66eb18229fa8 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 0609166ed90a..7d1a5c128054 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 34cbf75f4c14..a4220f5b2be6 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 ec500838eb22..01bbe7f5ec6b 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 cb647aee70fd..6530dc956cb2 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 f4cf5bd05303..3fb45449c74f 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 a9ccbb326661..35b6ed8d5c0e 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 173f2a0dea08..997d413eb4f2 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 78ea77cb3bbd..e2ca27f5d41c 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 a4615bd081f5..45e4e35d773f 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 12a183fed1ef..bc45a63d9f15 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 24b7835abf50..41243854ebc0 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 15da81b57dbc..8389cb7cf9cb 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 576fde466159..69a601d7b40c 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 28f8564ae92f..6063afc213d0 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 eb57c734e928..3ebdb54f71fe 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 8df08dd18182..98f995df06fe 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 b2c56f7af2ce..0ae6796d1e4a 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 62215ea3d7da..be333df1d78b 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 850ba6960988..489cb001b82d 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 92fcfb652696..b030d9862c6d 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 4d30b99262ea..de39abdb746d 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 e44a11a72324..a44b43a591f5 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 2bd8162d1b75..01264cf7fb51 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 505a9eaac5a7..dbc40bddc300 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 fce73e0ac1fc..037484931b88 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 2b88fcc9a961..054b7b1561c8 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 688d3b8c0380..55445e715398 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 3fc4e499b0c0..cdd3d851f61e 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 3895a0b3aea9..4e0d47492396 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 abe99b9e794c..30d94e4318db 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 ace5f293097f..73566afe8c8b 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 59984c109902..3bdedaf3770a 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 eaee89fb1a5b..e01fe487ffa5 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 35826de5814b..3f62e7e61e1d 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 1737fd0a9fc3..48d689e11d46 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 7ae49c068968..5e38d0aeb6ad 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 79bcdc41fb06..c61c1ddcb3d5 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 42e5d544f4cf..3b617d4ca54f 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 4cbf1a52e294..fa98d05c61b8 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 948401d7bdc6..539417644dbb 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 7076571b7533..5c30f5b6a619 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 1831c62d7887..5c01463d757f 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 b4e9f6af43a1..ef47b0a450b0 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 a451272dd1ff..6d19a95ffeb9 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 216e0cd42661..433ffbd97f01 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 736a50b2c15e..06fb61baf33f 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 28f56d196575..fe673de46aa0 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 33eea2cf5c30..9dd235f66600 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 46e4e3559dcd..ba2b062875bb 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 4daa25f8cf2c..2703da7ae442 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 9ee37c51d95b..e10eaa95da48 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 443dcd92a8b2..f0029af83ccb 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 adad73f7e114..3f7a544ea0a0 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 f2a18c7295a5..0c91112026fc 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 9703780b0e99..6f3612501f4f 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 a0a2843b676f..df212d912e9d 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 2b2b983494f2..0fd37c95e429 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 4e2ab919f0fc..5aae0d711c3f 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 b1e218821d20..784dac554544 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 65b1d6139982..533dcdcd6cd0 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 ab91176737d9..c442f6fe32ff 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 4e4329e898ef..fd69fe040533 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 a820ebd91f48..88d9d93c33b5 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 f7262b9b8875..b44083936245 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 e3d06e6d3d73..7ca8cf304fe1 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 9c9a2d2fde1e..c8c0eac1f135 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 252c61f42245..c7900629f5f1 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 5100987c2fec..7e85f599afb2 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 786493c35779..79b744142c63 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 c3ed95aaebf7..b16acf1d36c5 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 d8dba26e1944..980545b8083f 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 02de83a2df80..e5e036c7d44e 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 e5fde07a6ebc..122b96ef2168 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 1bd6c25100e1..9b44c532ff60 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 39e94ad53de6..346f5b1cc4d7 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 562423afc2a7..4d925ac77f40 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 42a9ed9ff34a..429401a5da89 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 7b0641627262..8b4cffaac19d 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 5a569d233bc6..7038a366144d 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 645db41cddcf..3057845061b7 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 b29bb3c2fc06..75ad948e42c2 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 76611e543068..ef5cea3f2a5c 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 fc389641fcd6..11fe144d1d2c 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 6e7d8db99c4d..5d60d6bc5e75 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 50980718e660..c57319869f3e 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 c861a56497e0..b57c275c7702 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 e7a4ac0f3d61..a2fe4734d476 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
-- 
GitLab